Ubuntu Server 12.04(AMD64
)マシンを使用していますが、/etc/hosts
を変更すると、再起動しても変更が反映されません。 /usr/bin/Host
を使用してテストしていますが、他のプログラムもそれを取得していないようです。
これはサーバーであり、nscd
とdnsmasq
はインストールされていません。また、ファイル/etc/nsswitch.conf
には次の行が含まれています。
hosts: files dns
私はそれが機能することを期待するように。また、ファイルのmtime
が編集によって変化することを確認し、service networking restart
(すべての確率に対して)とresolvconf -u
を実行してみました。
必要に応じてroot
として実行されるすべてのコマンド。マシンのネットワークは、Network Managerを介さずに/etc/network/interfaces
で手動で構成されています(どちらもインストールされていません)。
基本的に私が達成したいのは、いくつかのホストのIPを操作できることです。その理由は、ネットワーク内でルートのないIPを取得していますが、HTTPSを介してそのサービスの外部IPを使用できるためです。
何が足りないのですか?
注:ローカルで実行されているDNSサーバーはなく、/etc/resolv.conf
のnameserver
行(およびinterfaces
のそれぞれの行)は、次のDNSサーバーを指しています。私は間違ったIPです。
注: Webで検索し、「同様の質問」を読みましたが、私のケースはカバーされていないようです。
/etc/Host.conf
は:
# The "order" line is only used by old versions of the C library.
order hosts,bind
multi on
Hostコマンドはhostsファイルをチェックしません。マンページから:
Host is a simple utility for performing DNS lookups.
ホストファイルを尊重しながらルックアップをテストする場合は、pingまたはgetentを使用します。
$ tail -1 /etc/hosts
127.0.0.1 google.com
$ ping -c1 google.com | head -1
PING google.com (127.0.0.1) 56(84) bytes of data.
$ getent ahosts google.com
127.0.0.1 STREAM google.com
127.0.0.1 DGRAM
127.0.0.1 RAW
Host
ユーティリティはDNSルックアップに使用されます。ホストファイルやホスト名を解決するDNS以外の方法は関係ありません。システムが通常の状況(nsswitch.confを考慮に入れる)でホスト名をどのように解決するかを確認したい場合は、getent
を使用できます。 Host
ユーティリティは、DNSテスト用に予約する必要があります。次に例を示します。
$ Host foobar.com
foobar.com has address 69.89.31.56
foobar.com mail is handled by 0 foobar.com.
$ getent hosts foobar.com
10.188.14.16 foobar.com
Dig
、Host
、nslookup
などのプログラムは、 [〜#〜] dns [〜#〜] のみをクエリします。 /etc/hosts
、NIS、LDAPなどの他のホスト名のソースを照会しません。
ほとんどのセットアップでは、ホスト名をローカルにスムーズに追加する最も簡単な方法は、DNSサーバーを実行することです。とにかくパフォーマンスのためにDNSキャッシュを実行することは良い考えです。つまり、DNSサーバーがローカルで実行されていないという事実は、回避するものではなく、修正するものです。
Dnsmasq は一般的な選択です。広く利用可能で、小さく(多くのLinuxベースのルーターで使用されています)、構成が簡単です。 DnsmasqはDNS要求をキャッシュし、hostsファイルから追加の名前を提供できます。また、小規模なネットワークに適した基本的なDHCPサーバーも提供しますが、その部分を使用する必要はありません。分離されたマシンがある場合は、そのマシンでDnsmasqを実行します。ローカルネットワークがある場合は、ルーターでDnsmasq(またはすでに存在する他の同等のソフトウェア)を実行します。 Dnsmasqの設定方法などの詳細については、 ホスト名を使用してLANからマシンにアクセスできるようにする方法 を参照してください。