/etc/hosts
のフォーマット Linux と Windows では同じです:
IP address hostname [hostalias]...
ここで、括弧はオプションであることを示す通常の方法であり (実際には入力しないでください)、ドット (...
) は、複数存在する可能性があることを意味します。
ホストをドメインの一部にする必要はありません。試してみてください。 .localdomain
を使用することをお勧めします。 実際のドメイン名を持っていない場合。 ndots
により、ホスト名の解決を少し速くすることができます /etc/resolv.conf
のオプション .
この意味で、ドメインは DNS ドメイン (google.com
など) を意味することに注意してください。 または stackexchange.com
)、Windows ドメインなどではありません。
::1
で始まる行 はIPv6用です。 ::1
127.0.0.1
のようなものです 新しいアドレス指定スキームの下で。 ifconfig lo
を実行 2 つのアドレスがあることがわかります。 inet6
で始まるエントリに注意してください .
$ ifconfig lo
lo Link encap:Local Loopback
inet addr:127.0.0.1 Mask:255.0.0.0
inet6 addr: ::1/128 Scope:Host
...
詳細については、hosts(5) のマニュアル ページを参照してください。
常に 127.0.0.1 アドレスを最初に localhost に解決する必要があります。ドメインがある場合はそれも使用できますが、localhost が 2 番目にリストされていることを確認してください。ループバック アドレスを検索するマシンのエイリアスを追加する場合は、その行にスペースで区切られた値としてそれらを追加し続けることができます。ここでのドメインの指定はオプションですが、オプションから「localhost」を削除しないでください。
Windows が Linux とどのように異なるかについては言えませんが、ローカル マシンの定義の形式は、'hostname' コマンドから得られる結果に影響します。
私が最も一貫してうまく機能するフォーマットはこれです:
127.0.0.1 etest.mydomain.com etest localhost
私が発見した重要なことは、最初に FQDN を配置し、その後に任意の順序でエイリアスを配置することです。
IP アドレスの後に名前を並べ替えてから、'hostname -s' (短縮名) および 'hostname -f' (完全修飾ドメイン名または FQDN) コマンドを使用して実験すると、私の言いたいことがわかるでしょう。次のようになります:
$ hostname -s
etest
$ hostname -f
etest.mydomain.com
'hostname' 自体は、/etc/conf.d/hostname または /etc/hostname に入力したホストの名前を返す必要があります (ファイルの場所はディストリビューションによって異なりますが、/etc の下のどこかにあるはずです)。
名前の順序を変更すると、「hostname -f」で「localhost」や「hostname:system error」などの応答が返されることがあります。正しく機能する唯一の配置は、FQDN を最初に配置することです。
私は常に IPv6 ローカル アドレス行 (::1) を同じように設定します。つまり:
::1 etest.mydomain.com etest localhost
一部のディストリビューションでは、IPv6 名を ip6-localhost などに設定していることを知っています。私はまだ IPv6 を実際に使用していないので、この行の最適な設定についてコメントすることはできません。私が言えることは、IPv4 ネットワークでは、両方の回線に同じ名前を付けることができるということです。