Hostname

當我的 LAN 有 DNS 時,在 Debian Jessie 上設置主機名的正確方法是什麼?

  • March 21, 2016

這是在我的家庭區域網路上,它有一個 DNS 伺服器(Bind9)和一個 DHCP 伺服器(dhcpd)。

我的台式機從 DHCP 伺服器獲取其 IP 地址,其中包括mylan.

所以,我的台式機的 FQDN 是mydesktop.mylan.

Debian 約定似乎是/etc/hostname應該只包含主機的短名稱,所以mydesktop.

但是呢/etc/hosts

條目應該是什麼,short 或 FQDN?

127.0.0.1  localhost
127.0.1.1  mydesktop.mylan  mydesktop

有約定嗎?推薦?

如果 FQDN 在其中/etc/hosts不會“覆蓋”DNS 解析嗎?這有關係嗎?

如果您查看hostname的聯機幫助頁,它可能會為您指明正確的方向。還從 Linux Network Administrator’s Guide, 2nd Edition 中設置主機名和配置名稱服務以及 O’reilly 的名稱服務和解析器配置很好地解釋了 linux 中的名稱解析問題。我想這是足夠好的資源來幫助你開始。

問題是,網際網路以及名稱解析和 dns 的概念隨著時間的推移而發展,我們今天發現的許多事情都有歷史原因。

要回答您的問題,您可以簡單地在/etc/hostname文件中設置您的主機規範名稱。核心可以通過hostname命令訪問該名稱。現在這通常與dns無關。

/etc/hosts文件的存在是為了幫助少數客戶端(以及本地系統)進行名稱解析,並且當沒有可用的 dns 伺服器時。

現在,文件中定義了 linux 系統將如何決定使用什麼來進行名稱解析/etc/nsswitch.conf。文件的部分內容範例可能如下所示:

# /etc/nsswitch.conf
#
# Example configuration of GNU Name Service Switch functionality.
# Information about this file is available in the `libc6-doc' package.

hosts:          files dns

第一行hosts表示,系統會/etc/hosts先查詢文件,再查詢dns伺服器進行名稱解析。

如您所見,如果您有一個可用的 dns,則無需在/etc/hosts文件中添加主機名條目。哪個優先,由/etc/nsswitch文件定義。

/etc/hosts 文件的限制是,它僅對本地系統可見,並且必須手動維護它(編輯/添加/刪除 ip/主機名),並且無法幫助網路中的其他系統從中解析主機名文件。這就是 LAN 中所有電腦都可以訪問的集中式主機文件的想法出現的原因,並由此演變出了 DNS 伺服器的想法。

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