Linuxの/ etc / hosts形式(Windowsとは異なりますか?)

Linuxの/ etc / hosts形式(Windowsとは異なりますか?)

/etc/hostsこの質問の下には、Linux(CentOS)とWindowsシステムのサンプルファイルがあります。 Linuxファイルには、IPアドレスの後に2つのタブエントリ(つまりlocalhost.localdomain localhost)がありますが、Windowsには1つしかありません。 Windowsでホストファイルを編集してlocalhostの代わりにコンピュータ名(etest)を使用するには、localhostという単語を目的のコンピュータ名に置き換えます。マシンがドメインの一部である必要はありません。

Linuxシステムでは、これら2つの項目は、そのシステムがドメインの一部でなければならないことを示すようlocalhost.localdomainです。localhostこれは本当ですか?

これら2つの項目を簡単に編集して、etest次のように読み取ることができます。

127.0.0.1       etest etest

または、アイテムをドメイン名に変更する必要がありますか?

/etc/hostsまた、Linuxシステムでファイルの2行目の目的を教えてください。

::1     localhost6.localdomain6 localhost6

hostsLinuxシステムのファイル:

# 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

hostsWindowsシステム上のファイル:

# 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

答え1

フォーマットはLinuxとWindowsで/etc/hosts同じです。

IP address        hostname [hostalias]...

角かっこは(実際には入力せずに)オプションであることを示す一般的な方法であり、点(...)は複数を持つことができることを意味します。

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

この意味で、ドメインはWindowsドメインまたは同様のドメインではなく、DNSドメイン(たとえば、google.comまたは)を表します。stackexchange.com

次に::1始まる行IPv6。新しいアドレス指定方式と同じです::1127.0.0.1実行してみると、ifconfig lo2つのアドレスがあることがわかります。で始まる項目を参照してください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
...

よりHost(5) マニュアルページ詳細については。

答え2

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

答え3

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ネットワークには同じ名前の2行がある可能性があることです。

答え4

スレーブホストファイルを次のように残します。

127.0.0.1 localhost

デフォルトのホストファイルを次のように残します。

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

100%稼働中

関連情報