Linux 伺服器的 /etc/hosts 和 DNS A 記錄之間的正確關係是什麼?
我有一個 Ubuntu 伺服器。它將是一個具有 URI 的 Web 伺服器
www.example.com
。我有一個指向www.example.com
伺服器 IP 地址的 DNS A 記錄。假設我選擇“trinity”作為該伺服器的主機名。
我想正確設置 DNS 記錄。我需要反向 DNS 到
www.example.com
,所以 CNAMEwww.example.com
似乎不合適。這是我的問題:設置兩個 DNS 記錄(在我的情況下可能是兩個 A 記錄),一個 for
www.example.com
和一個 fortrinity.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與所有規則一樣,也存在例外情況。你的案子聽起來不像其中之一。