Networking

/etc/hosts 應該包含域名還是 FQDN?

  • November 5, 2014

如果我想添加一個條目來/etc/hosts解析 to 的所有流量example.com1.2.3.4是否需要添加

1.2.3.4    example.com
1.2.3.4    www.example.com
1.2.3.4    smtp.example.com
1.2.3.4    pop.example.com
...

或者只是添加

1.2.3.4    example.com

夠了嗎?

您將需要指定每個子域。如果這不是您想要的,您應該考慮安裝一個真正的 DNS 伺服器(例如 bind9)。

這很容易通過首先添加example.com/etc/hosts然後執行

ping -c 2 example.com
ping -c 2 www.example.com

第一個將使用提供的 IP 地址成功。第二個將轉到93.184.216.119(www.example.com 的網際網路 IP 地址)

/etc/hosts是/曾經是網際網路處於起步階段時的 DNS 系統的前身。它今天仍然用於諸如當您想要解析少量本地系統或在您尚未設置 DNS 的開發設置中的情況。

您將要解析為 IP 地址的所有主機名放入其中。您可以為一個 IP 地址分配多個名稱,因為localhost大多數發行版中的行具有:

127.0.0.1   localhost localhost.localdomain localhost4 localhost4.localdomain4

如果您想添加1.2.3.4為您的網路伺服器,該伺服器被呼叫www.example.com並通過更短的方式訪問它,請www添加:

1.2.3.4   www www.example.com

在您的實例中,您可以將所有名稱放在一行中:

1.2.3.4 www.example.com smtp.example.com pop.example.com

您的系統解析這些名稱的順序(/etc/hosts或 DNS 優先)可以在以下hosts:行中配置/etc/nsswitch.conf

但請記住,/etc/hosts僅適用於您的機器。如果您有幾個系統,/etc/hosts則在每個系統上進行編輯都會變得笨拙。

引用自:https://unix.stackexchange.com/questions/166083