Linux

Linux 伺服器的 /etc/hosts 和 DNS A 記錄之間的正確關係是什麼?

  • June 18, 2013

我有一個 Ubuntu 伺服器。它將是一個具有 URI 的 Web 伺服器www.example.com。我有一個指向www.example.com伺服器 IP 地址的 DNS A 記錄。

假設我選擇“trinity”作為該伺服器的主機名。

我想正確設置 DNS 記錄。我需要反向 DNS 到www.example.com,所以 CNAMEwww.example.com似乎不合適。這是我的問題:

設置兩個 DNS 記錄(在我的情況下可能是兩個 A 記錄),一個 forwww.example.com和一個 for trinity.example.com,都指向該伺服器的 IP 地址,是否被認為是最佳實踐?(或者,即使它不被接受為最佳實踐,這是一個好主意嗎?)

如果是這樣,以下是正確的 /etc/hosts 文件嗎?

$ cat /etc/hosts
127.0.1.1       trinity.local          trinity
99.100.101.102  trinity.example.com    trinity        www.example.com

該伺服器是一個 Linode,而 Linode 的文件似乎暗示上述方法是最好的(如果我正確閱讀它們的話)。這是相關部分。我將似乎適用於此的行加粗。

更新 /etc/hosts

接下來,編輯 /etc/hosts 文件以類似於以下範例,將“plato”替換為您選擇的主機名,將“example.com”替換為系統的域名,將“12.34.56.78”替換為系統的 IP 地址。與主機名一樣,您的 FQDN 的域名部分不一定需要與伺服器上託管的網站或其他服務有任何關係(儘管如果您願意,也可以這樣做)。例如,您可能在伺服器上託管“www.something.com”,但係統的 FQDN 可能是“mars.somethingelse.com”。

文件:/etc/hosts

127.0.0.1        localhost.localdomain    localhost
12.34.56.78      plato.example.com        plato

您分配為系統 FQDN 的值應該在 DNS 中有一條“A”記錄指向您的 Linode 的 IP 地址。有關配置 DNS 的更多資訊,請參閱我們的使用 Linode 管理器配置 DNS 的指南。

條目和 DNS之間的正確關係/etc/hosts是,如果您有工作的 DNS,/etc/hosts 應該只包含localhost(指向127.0.0.1::1)的條目。當您使用 DNS 時,使用主機文件只是一種在以後創建奇怪行為和麻煩的方法。1

如果您需要反向 DNS,請聯繫您的 ISP (Linode) 並要求他們為您的 IP 地址設置適當的PTR記錄。

PTR 記錄不需要匹配 A 記錄(或者實際上任何具有該名稱的主機都存在: 69.18.136.215反向為 cl136-215.invision.net,它沒有轉發地址),所以您可以將 PTR 名稱設置為匹配 A 記錄、CNAME 或任何您想要的有效 DNS 名稱。


1與所有規則一樣,也存在例外情況。你的案子聽起來不像其中之一。

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