/ etc / hostsでホスト名が127.0.0.1ではなくアドレス127.0.1.1で表示されるのはなぜですか?


205

これは少しばかりの質問かもしれませんが、新しいXubuntuインストールで/ etc / hostsを見ていて、これを見ました。

127.0.0.1 localhost
127.0.1.1 myhostname

私が使用したほとんどの「nix」では、2行目が省略されており、hostsファイルにホスト名を追加する場合は、次のようにします。

127.0.0.1 localhost myhostname

実用的な意味でこれらの2つのファイルに違いはありますか?


2行目を削除したり、debian / ubuntuのいくつかのプロセスで行を再生成して追加したりできますか?
simgineer

回答:


159

2つの間に大きな違いはありません。127/8(例:127.0.0.0=> 127.255.255.255)はすべてループバックインターフェイスにバインドされています。

理由はChの Debianマニュアルに記載されています5ネットワーク設定-5.1.1。ホスト名解決

最終的に、これはバグの回避策です。元のレポートは316099です。


5
実際の理由:「システムのホスト名を後者に関連付けると、「localhost.localdomain」をシステムのホスト名に関連付けられた標準ホスト名にするという望ましくない効果がありました。つまり、「hostname --fqdn」は「localhost.localdomain」を返しました。」
cmroanirgo

私は実際にこのドキュメントlist.debian.org/debian-boot/2005/06/msg00938.htmlにたどり着きましたが、トーマスは0.1ではなく1.1を使用する必要があると感じていたようです。私が間違っている場合、この答えは本当にパンくずリストにすぎないということですか?
ブライアントーマス

@BrianThomasそのメッセージは、それらが同等ではない理由を示唆しています。彼らはlocalhostmyhostname明確に区別したいと望んでいました。そうでなければ、一方は他方のエイリアスになります。これは、ループバックアドレスが1つしかないIPv6では機能しないことに注意してください。スレッドで説明されているように、NSSモジュールを使用することで回避できます。これは、/ etc / hostsよりも柔軟性があり、同じIPアドレスを持っているにもかかわらず、異なる正規名を返すためです。私のシステムはそのようなNSSモジュールを使用して構成されているので、私はこれを知っています
sourcejedi

46

リンク先の情報を要約するには:

  • (議論の余地なく)/etc/hostsマシンの完全修飾ドメイン名を永続的なIPアドレスに変換する際にエントリを用意しておくと便利です。
  • debian-installer、より具体的にはnetcfg、現在(少なくとも2013年3月まで)そのコンポーネントがこのエントリを作成します。
  • マシンが永続的なIPアドレスを持っていることがわからない場合でも、debian-installerはその種のエントリが必要です。
  • このアドレス127.0.1.1は、ループバックインターフェイスを使用し、独自のマシンによって応答されます127.0.0.1が、必要な場合/etc/hostsとは別に127.0.0.1必要に応じて考慮することができる別個のエントリです。

Thomas Hoodは、このエントリの追加について次のように説明しています。

[これ]は、UNIXホスト名解決された場合、常に独自の標準ホスト名になるようにします。

しかし:

長い目で見れば、UNIXホスト名は/ etc / hostsに置かないでください。


.. など... ?fdqnに127.0.0.1を使用する必要がありますか?または127.0.1.1?または静的LAN IP?
-realtebo

1
@realtebo:1.便利なので、インストーラーによって追加されます。2.ここには「必須」はありません。FQDNに永続的なアドレスがない場合にのみ関連します。
アインポクラム

9

私は自分自身に興味があり、他の回答は好きではありませんでした。

回答: このドキュメントを振り返ると、トーマスがループバックに別の専用IPを与えていると述べているように見えます。

どちらもループバックを指します。次の127.0.1.1を使用すると、ループバックで実際のIPが使用されますが、127.0.0.1はデバイス自体か、ループバックで別のIPのいずれかです。どちらもループバックを表す同じサブネット上にありますが、IPで区切られています。これらは同等のDNSですが、専用のIPがあるため分離されています。

ポイントは、このようにすべてのエントリを1行で入力できることです

127.0.0.1 localhost localhost.domain www.myfakednsname.com myakednsname.com 

あなたのホスト名がローカルの場合、意味は、実際のインターネットIPにマッピングされたグローバルなインターネットのDNSエントリを持っていない、この場合のトーマスは、あなたが言っていたする必要があります(正規のために)そこを捧げるために、このように、第二のエントリーラインを持っています。

127.0.0.1 localhost localhost.localdomain
127.0.1.1 myfakednsname

公平に言えば、私がこれを最終的に私にとって意味のある方法で構成した後、アインポクラムがそれを説明しようとしていたことは、後知恵のように見えます。
ブライアントーマス

否定的な投票をしてください。理由はわかりません。ここに着陸した後、これが最良の答えであると信じています。元の答えは役立ちましたが、すべての詳細を把握できませんでした。私はこれで行きます。
ブライアントーマス
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.