Networking

/etc/hosts 文件用於多宿主、多域機器?

  • January 11, 2021

我有一個伺服器(debian),有兩個網路介面,我想在上面託管多個服務和域;我並不完全清楚應該如何設置主機文件。例子:

eth0, bound to WAN interface 1.2.3.4:
  mail.example.com
  www.example.com
eth0:1, bound to WAN interface 1.2.3.5:
  www.other-domain.com
eth1, bound to LAN 192.168.1.123:
  some-clever-hostname

我的主機文件應該是什麼樣的?(包括 localhost、localhost.localdomain 等)我應該對其中一些條目使用 DNS 嗎?哪個?

謝謝!

編輯:如果我無法使用 DNS 伺服器,例如在測試環境中怎麼辦?

投入和localhost_/etc/hostname

127.0.0.1 localhost.localdomain localhost

/etc/hosts很好。映射可以在 DNS 中設置,您可以明確設置其餘的(apache 將在虛擬主機中配置 ServerName 等)。

多宿主系統與 Linux(或 Windows,或任何其他使用 TCP/IP 的機器)上的多域系統相比,這是兩個非常獨立的東西。

多域系統:

伺服器本身只需要一個主機名,如果它不是 Web 伺服器名稱,它會更好地工作。無論您是否在 NAT 路由器後面,它都需要指向標識伺服器的公共 IP 地址,而不是私有 IP 地址。對於多個 IP 地址,它需要指向伺服器的主 IP 地址。然後發布要在 DNS 中解析的給定主機名。較大的公司可能有一個編號系統。server001、server002、server003 等。

12.34.56.78 server001.mydomain.com server001
127.0.0.1 localhost.localdomain.local localhost

將 .local 添加到 localhost.localdomain 不是必需的,但它是設置多宿主系統的先決條件。我傾向於添加它只是出於習慣。如果設置正確,任何其他域都將通過 Web 伺服器進行處理。除了 Web 伺服器之外,只要 DNS IP 地址指向所需的伺服器(電子郵件等)即可。如果您在 NAT 路由器後面,則可以使用 .local 設置內部主機名。大多數時候這不是必需的,但可能會解決更困難的系統上的一些問題。

12.34.56.78 server001.mydomain.com server001
10.0.0.78 server001.mydomain.local server001
127.0.0.1 localhost.localdomain.local localhost

多宿主系統:

這是您物理上有多個網卡連接到不同網路的地方。最常見的是一個介面上的公共網路,另一個介面上的安全專用網路。因此,例如,您可能在公共介面上擁有 Web 服務,而在私有介面上的單獨伺服器上擁有安全數據庫。這將在不設置多宿主系統的情況下工作,但如果負載過重,它將清除大量的 SYN TIMEOUT 連接。假設我們在 12.34.56.50 : 10.0.0.50 上有一個 Web 伺服器 (server001),在 10.0.0.51 上有一個內部數據庫伺服器 (server002) 兩個伺服器都需要使用 .local 指令映射到 /etc/hosts 中的另一個

/etc/hosts server001

12.34.56.50 server001.mydomain.com server001
127.0.0.1 localhost.localdomain.local localhost
10.0.0.50 server.001.mydomain.local server001
10.0.0.51 server002.mydomain.local server002

/etc/hosts server002

10.0.0.1 server002.mydomain.local server002
127.0.0.1 localhost.localdomain.local localhost
10.0.0.50 server.001.mydomain.local server001

引用自:https://serverfault.com/questions/151780