Hosts
主機文件:在多行上使用相同的 IP 地址是否不正確?
有一段時間我一直在像這樣格式化我的主機文件。注意兩行相同的ip:
e.f.g.h foo.mydevsite.com e.f.g.h foo.myOtherDevSite.com
我最近讀到別名應該合併在一行上:
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
到目前為止,這一直執行良好;這有問題嗎?
我發現這個執行緒討論了按照這些構想做一些事情。該執行緒非常堅決地認為文件中沒有多行
/etc/hosts
。摘錄 -回复:/etc/hosts:兩行具有相同的 IP 地址?
不,它不會。解析器在第一個解析處停止。有類似的東西:
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 hosts
本手冊頁描述了 /etc/hosts 文件的格式。此文件是一個簡單的文本文件,它將 IP 地址與主機名相關聯,每個 IP 地址一行。對於每台主機,應有一行包含以下資訊:
IP_address canonical_hostname [aliases...]
話雖如此,如果您的主機名是 FQDN 並且它們不重疊,那麼您可能可以安全地做您正在做的事情。請記住,如果有任何重疊,例如上麵執行緒中提到的內容,那麼您可能會遇到解決問題。