在 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.
這意味著如果它是一個裸詞,解析器將附加search
或domain
設定中列出的域/etc/resolv.conf
以嘗試尋找 FQDN。如果 /etc/hostname 中有一個 FQDN,則表示它不必嘗試附加一個或多個網域:該名稱是明確的。
所以我想說兩者都是有效的。如果有人能證明其他情況,我會非常感興趣。
答案3
和libnss-myhostname安裝完畢後,您可以寫入 FQDN/etc/hostname
並完成。否則,您還需要進行編輯/etc/hosts
以匹配短名稱並將其對應到完全限定名稱(您也可以將其放入 dns 中,但這並不安全)。使用非預設環回接口,如下所示:
127.0.0.2 hostname.fully.qualified hostname