使用 mDNS 在區域網中輕鬆發現系統

Paul W. Frields發表於2018-09-23

mDNS(多播 DNSMulticast DNS)允許系統在區域網中廣播查詢其他資源的名稱。Fedora 使用者經常在沒有複雜名稱服務的路由器上接有多個 Linux 系統。在這種情況下,mDNS 允許你按名稱與多個系統通訊 —— 多數情況下不用路由器。你也不必在所有本地系統上同步類似 /etc/hosts 之類的檔案。本文介紹如何設定它。

mDNS 是一個零配置網路服務,它已經誕生了很長一段時間。Fedora Workstation 帶有零配置系統 Avahi(它包含 mDNS)。 (mDNS 也是 Bonjour 的一部分,可在 Mac OS 上找到。)

本文假設你有兩個系統執行受支援的 Fedora 版本(27 或 28)。它們的主機名是 castor 和 pollux。

安裝包

確保系統上安裝了 nss-mdns 和 avahi 軟體包。你可能是不同的版本,這也沒問題:

$ rpm -q nss-mdns avahi
nss-mdns-0.14.1-1.fc28.x86_64
avahi-0.7-13.fc28.x86_64

Fedora Workstation 預設提供這兩個包。如果不存在,請安裝它們:

$ sudo dnf install nss-mdns avahi

確保 avahi-daemon.service 單元已啟用並正在執行。同樣,這是 Fedora Workstation 的預設設定。

$ sudo systemctl enable --now avahi-daemon.service

雖然是可選的,但你可能還需要安裝 avahi-tools 軟體包。該軟體包包括許多方便的程式,用於檢查系統上的零配置服務的工作情況。使用這個 sudo 命令:

$ sudo dnf install avahi-tools

/etc/nsswitch.conf 控制系統使用哪個服務用於解析,以及它們的順序。你應該在那個檔案中看到這樣的一行:

hosts: files mdns4_minimal [NOTFOUND=return] dns myhostname

注意命令 mdns4_minimal [NOTFOUND=return]。它們告訴你的系統使用多播 DNS 解析程式將主機名解析為 IP 地址。即使該服務有效,如果名稱無法解析,也會嘗試其餘服務。

如果你沒有看到與此類似的配置,則可以(以 root 使用者身份)對其進行編輯。但是,nss-mdns 包會為你處理此問題。如果你對自己編輯它感到不舒服,請刪除並重新安裝該軟體包以修復該檔案。

兩個系統中執行同樣的步驟 。

設定主機名並測試

現在你已完成常見的配置工作,請使用以下方法之一設定每個主機的名稱:

  1. 如果你正在使用 Fedora Workstation,你可以使用這個步驟
  2. 如果沒有,請使用 hostnamectl 來做。在第一臺機器上這麼做:$ hostnamectl set-hostname castor
  3. 你還可以編輯 /etc/avahi/avahi-daemon.conf,刪除主機名設定行上的註釋,並在那裡設定名稱。但是,預設情況下,Avahi 使用系統提供的主機名,因此你不應該需要此方法。

接下來,重啟 Avahi 守護程式,以便它接收更改:

$ sudo systemctl restart avahi-daemon.service

然後正確設定另一臺機器:

$ hostnamectl set-hostname pollux
$ sudo systemctl restart avahi-daemon.service

只要你的路由器沒有禁止 mDNS 流量,你現在應該能夠登入到 castor 並 ping 通另一臺機器。你應該使用預設的 .local 域名,以便解析正常工作:

$ ping pollux.local
PING pollux.local (192.168.0.1) 56(84) bytes of data.
64 bytes from 192.168.0.1 (192.168.0.1): icmp_seq=1 ttl=64 time=3.17 ms
64 bytes from 192.168.0.1 (192.168.0.1): icmp_seq=2 ttl=64 time=1.24 ms
...

如果你在 pollux ping castor.local,同樣的技巧也適用。現在在網路中訪問你的系統更方便了!

此外,如果你的路由器也支援這個服務,請不要感到驚訝。現代 WiFi 和有線路由器通常提供這些服務,以使消費者的生活更輕鬆。

此過程適用於大多數系統。但是,如果遇到麻煩,請使用 avahi-browse 和 avahi-tools 軟體包中的其他工具來檢視可用的服務。


via: https://fedoramagazine.org/find-systems-easily-lan-mdns/

作者:Paul W. Frields 選題:lujun9972 譯者:geekpi 校對:wxy

本文由 LCTT 原創編譯,Linux中國 榮譽推出

相關文章