Linuxの/ etc / hostsの形式(Windowsとは違う?)


22

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

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

次のetestように両方のエントリを編集するだけでいいですか?

127.0.0.1       etest etest

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

さらに、/etc/hostsLinuxマシンのファイルの2行目が何のためにあるのか教えてください。

::1     localhost6.localdomain6 localhost6

hosts Linuxマシン上のファイル:

# 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

hosts Windowsマシン上のファイル:

# 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

最近、同様の質問を投稿しましたが、あまり興味を引かれませんでした。unix.stackexchange.com/questions/11844/etc-hosts-for-debian。しかし、これはより良く書かれています。
ファヒムミタ

回答:


13

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


5
また、「:: 1」は、127.0.0.1(ipv4の場合)に相当するipv6です。
XQYZ

これは、私の質問で投稿したものの代わりにこのような行を持つ方が賢明であることを意味しますか?localhost.localdomain localhostをそのままにして、スペースで区切られたエイリアス(ホスト名をテスト)を含めました。そうでない場合は、マシンのホスト名を含め、hostsファイルにlocalhostエントリを含めるための理想的なエントリとして提案する例を投稿してください。
トーマス

1
127.0.0.1 localhost.localdomain localhost etest
トーマス

1
@Thomas:あなたの例はそうあるべきです。それに進み、テスト用にエイリアスを追加する必要がある場合(たとえば、Apacheで仮想ホストの名前を使用する場合)、それらを行に追加し続けることができます。
カレブ

22

/etc/hostsLinuxとWindows のフォーマットは同じです:

IP address        hostname [hostalias]...

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

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

この意味で、ドメインはDNSドメイン(google.comまたはなどstackexchange.com)を意味し、Windowsドメインなどではないことに注意してください。

で始まる行::1IPv6用です。 新しいアドレス体系の下に::1127.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)のマニュアルページ参照してください。


(...)は、複数ある場合があることを意味します。エクストラはスペースまたはコンマ、あるいはその両方で区切られていますか?
ガイ14

1
スペース。もっと正しいと思う、それはhostname [hostalias[,hostalias]*]
ミケル14

6

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


0

スレーブファイルを次のように保持します

127.0.0.1 localhost

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

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

100%働く


答えを明確にし、適切なフォーマットを使用してください。回答に名前を入れる必要はありません。
ランバート
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.