當我的 LAN 有 DNS 時,在 Debian Jessie 上設置主機名的正確方法是什麼?
這是在我的家庭區域網路上,它有一個 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 伺服器的想法。