web-dev-qa-db-ja.com

Linuxでの/ etc / hostsのフォーマット(Windowsとは異なりますか?)

この質問の下に貼り付けられているのは、Linux(CentOS)およびWindowsマシンからの/etc/hostsファイルのサンプルです。 Linuxファイルには、IPアドレスの後に2つのタブ付きエントリ(つまり、localhost.localdomain localhost)があり、Windowsには1つしかありません。 Windowsでhostsファイルを編集してlocalhostではなくマシン名(etest)にしたい場合は、Wordのlocalhostを希望するマシン名に置き換えるだけです。マシンはドメインの一部である必要はありません。

Linuxマシンでは、2つのエントリlocalhost.localdomainおよびlocalhostは、マシンをドメインの一部にする必要があることを示しているようです。これは本当ですか?

両方のエントリを単にetestに編集して、次のようになりますか?

127.0.0.1       etest etest

または、1つのエントリをドメイン名に置き換える必要がありますか?

また、Linuxマシンの/etc/hostsファイルの2行目が何のためのものか教えてください。

::1     localhost6.localdomain6 localhost6

Linuxマシンのhostsファイル:

# Do not remove the following line, or various programs
# that require network functionality will fail.
127.0.0.1       localhost.localdomain localhost
::1     localhost6.localdomain6 localhost6

Windowsマシンのhostsファイル:

# Copyright (c) 1993-1999 Microsoft Corp.
#
# This is a sample HOSTS file used by Microsoft TCP/IP for Windows.
#
# This file contains the mappings of IP addresses to Host names. Each
# entry should be kept on an individual line. The IP address should
# be placed in the first column followed by the corresponding Host name.
# The IP address and the Host name should be separated by at least one
# space.
#
# Additionally, comments (such as these) may be inserted on individual
# lines or following the machine name denoted by a '#' symbol.
#
# For example:
#
#      102.54.94.97     rhino.acme.com          # source server
#       38.25.63.10     x.acme.com              # x client Host

127.0.0.1       localhost
24
Thomas

127.0.0.1アドレスを常に最初にlocalhostに解決する必要があります。ドメインがあればそれも使用できますが、localhostが2番目にリストされていることを確認してください。ループバックアドレスを検索するマシンのエイリアスを追加する場合は、その行にスペースで区切られた値としてエイリアスを追加し続けることができます。ここでのドメインの指定はオプションですが、オプションから「localhost」を削除しないでください。

14
Caleb

LinuxとWindowsでの/etc/hostsの形式は同じです。

IP address        hostname [hostalias]...

ここで、角かっこは、何かがオプションであることを示す通常の方法です(実際には入力しないでください)。ドット(...)は、複数あることを意味します。

ホストをドメインの一部にする必要はありません。試してみてください。ただし、実際のドメイン名がない場合は、.localdomainを使用することをお勧めします。 /etc/resolv.confndotsオプションにより、ホスト名の解決が少し速くなります。

この意味で、ドメインは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)man page を参照してください。

23
Mikel

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ネットワークでは、両方の回線に同じ名前を付けることができると言えます。

6
Angelo Babudro

スレーブのhostsファイルを

127.0.0.1 localhost

マスターホストファイルを

<private ip> master
<private ip> slave1
<private ip> slave2

100%働く

0
Puneet