web-dev-qa-db-ja.com

Hostsファイル:複数の行に同じIPアドレスを含めるのは間違っていますか?

しばらくの間、hostsファイルを次のようにフォーマットしています。 2つの行に同じIPがあることに注意してください。

e.f.g.h foo.mydevsite.com
e.f.g.h foo.myOtherDevSite.com

私は最近、エイリアスが1行に統合されることになっていることを読みました:

e.f.g.h foo.mydevsite.com foo.myOtherDevSite.com 

ただし、次のように特定のエイリアスを簡単にコメントアウトしたり、特定のエイリアスにコメントを追加したりすることができないため、この方法は好きではありません。

  a.b.c.d foo.mydevsite.com          # myDevSite on box 1
# a.b.c.d foo.myOtherSite.com        # myOtherSite on box 1 
  a.b.c.d ubuntuBox                  

  e.f.g.h foo.myOtherSite.com        # myOtherSite testing environment

これまでのところ、これは問題なく機能しています。これに問題はありますか?

28
AlexMA

私はこれらの線に沿って何かをすることを議論するこのスレッドを見つけました。スレッドは、複数行を/etc/hostsファイル。

抜粋- Re:/ etc/hosts:同じIPアドレスを持つ2つの行?

いいえ、それはしません。リゾルバーは最初の解決で停止します。次のようなものを持つ:

   127.0.0.1 localhost.localdomain localhost
   127.0.0.1 somenode.somedom.com somenode

あなたが話していることをしません。しかし、持っている:

   127.0.0.1 somenode.somedom.com somenode
   127.0.0.1 localhost.localdomain localhost

あらゆる種類の混乱を引き起こします。転送を含みます。

私は通常、あなたがしようとしていることをしません。より多くの証拠が必要な場合は、manページでこれを行わないようにさえ言っています:

抜粋man hosts

このマニュアルページでは、/ etc/hostsファイルの形式について説明しています。このファイルは、IPアドレスをホスト名に関連付ける単純なテキストファイルで、IPアドレスごとに1行です。ホストごとに、次の情報を含む1行が表示されます。

         IP_address canonical_hostname [aliases...]

このすべてが言われている、あなたのホスト名がFQDNであり、それらが重複しない場合、あなたはおそらくあなたがしていることをするのに安全です。上記のスレッドで述べたような重複がある場合は、問題を解決する可能性があることに注意してください。

29
slm

3番目の方法は問題なく機能していると思います。これに問題はありますか?

私は常に少しずつ行ってきましたが、man gethostbyaddrによると、システムコールはIPアドレスを名前に関連付けるために/etc/hostsを使用する可能性があるため、潜在的な問題があります。はるかに一般的なケースはその逆(名前からアドレスを取得)ですが、何かおかしいことが起こった場合に備えて、これに注意してください。

5
goldilocks

Apache 2.4がUnixシステムでの起動を拒否しました。根本的な原因は、/ etc/hosts内の重複行です。重複した行を削除した後、Webサーバーを起動できました。

0
user275926