在 Ubuntu 10.04 上,/etc/hostname 是否應該包含伺服器的 FQDN?

在 Ubuntu 10.04 上,/etc/hostname 是否應該包含伺服器的 FQDN?

在 Ubuntu 10.04 上,/etc/hostname 是否應該包含伺服器的完全限定網域名稱?

答案1

不,只是主機名稱部分。根據 Ubuntu 的手冊頁/etc/hostname應僅包含主機名稱的主機名稱部分,而非 FQDN:

完全限定域名

您無法使用此命令變更 FQDN(由 hostname --fqdn 傳回)或 DNS 網域名稱(由 dnsdomainname 傳回)。系統的 FQDN 是解析器 (3) 傳回的主機名稱名稱。

從技術上講:FQDN 是 gethostbyname(2) 針對 gethostname(2) 傳回的主機名稱傳回的名稱。 DNS 網域名稱是第一個點之後的部分。

因此,這取決於如何更改它的配置(通常在 /etc/host.conf 中)。通常(如果主機檔案在 DNS 或 NIS 之前解析)您可以在 /etc/hosts 中變更它。

筆記

尋找 FQDN 時嘗試的位址族主機名稱、主機的別名和網路位址由解析器的配置決定。例如,在 GNU Libc 系統上,可以使用 /etc/resolv.conf 中的 inet6 選項指示解析器先嘗試 IPv6 尋找。

文件

/etc/hosts /etc/hostname 此檔案應僅包含域名,而不包含完整的 FQDN。

答案2

Josh 指出了 Ubuntu 的建議,但我不確定這是一個硬性規定。

/etc/hostname用於設定係統的主機名,與hostname或列印的內容相同uname -n。該名稱將在登入提示中使用,例如在虛擬控制台或 Gnome GDM 登入畫面上。

hostname --fqdn如手冊頁所述,執行or操作時,它也用作 DNS 查詢的輸入dnsdomainname

Technically: The FQDN is the name gethostbyname(2) returns for the host name
returned by gethostname(2). The DNS domain name is the part after the first dot.

這意味著如果它是一個裸詞,解析器將附加searchdomain設定中列出的域/etc/resolv.conf以嘗試尋找 FQDN。如果 /etc/hostname 中有一個 FQDN,則表示它不必嘗試附加一個或多個網域:該名稱是明確的。

所以我想說兩者都是有效的。如果有人能證明其他情況,我會非常感興趣。

答案3

libnss-myhostname安裝完畢後,您可以寫入 FQDN/etc/hostname並完成。否則,您還需要進行編輯/etc/hosts以匹配短名稱並將其對應到完全限定名稱(您也可以將其放入 dns 中,但這並不安全)。使用非預設環回接口,如下所示:

127.0.0.2 hostname.fully.qualified hostname

相關內容