Gentoo

Gentoo:如何設置本地網路的主機名?

  • October 9, 2019

我習慣了 debian/raspbian,設置電腦的主機名很簡單:

/etc/hostname:

my-computer

/etc/hosts:

127.0.0.1   localhost
::1     localhost ip6-localhost ip6-loopback
ff02::1     ip6-allnodes
ff02::2     ip6-allrouters

127.0.1.1   my-computer

在這些更改和重新啟動之後,我可以ssh username@my-computer.local從本地網路上的任何其他機器上。

我很難在新的 gentoo 系統上獲得這種行為。我已經嘗試了 gentoo 論壇上 2-3 歲文章中的其他一些設置,但沒有運氣。

為了ssh username@my-computer.local工作,必須具備兩件事:

  • my-computer必須正在執行avahi-daemon或其他多播 DNS 實現(簡稱 mDNS)。這將定期向本地網路宣布電腦的目前主機名和 IP,並且如果本地網路中的某些其他設備要求它,將響應該資訊。宣布的名稱將採用<short hostname>.local.
  • 帶有 SSH 客戶端的電腦必須包括mdnsmdns4_minimal或類似的 mDNS 主機名解析模組就hosts:行了/etc/nsswitch.conf。這使得 glibc 的主機名解析功能實際上使用 mDNS 作為主機名/IP 資訊的一種可能來源。

mDNS 與 Apple 的 Bonjour 系統兼容,顯然微軟也可能對它有一些支持——儘管現代版本的 Windows 似乎更喜歡 WS-Discovery,另一個基於多播的協議,用於類似目的。

頂級 DNS 域.local現在保留給 mDNS 使用,因此不應再將其用於正常私有 DNS 域。但是,為了向後兼容,有一些支持允許具有三個或更多部分的名稱(例如<hostname>.something.local)仍然可以與正常 DNS 一起使用;兩部分名稱 ( <hostname>.local) 將由 mDNS 在支持 mDNS 的系統上解析。

引用自:https://unix.stackexchange.com/questions/545940