無法使用 OSX hostname.local ssh 到筆記型電腦,但可以透過 ip 連接

無法使用 OSX hostname.local ssh 到筆記型電腦,但可以透過 ip 連接

我正在嘗試透過 ssh 從我的伺服器連接到我的 macbook,但我在網路上找不到它的主機名稱。我啟用了遠端登入系統偏好設定 > 共享我的 Mac 聲稱:

Computers on your local network can access your computer at: macbook.local

然而,當我嘗試透過它連接時,它告訴我:ssh [email protected]

ssh: Could not resolve hostname macbook.local: Name or service not known

但當我輸入給定的 IP 位址(即 )時,我可以透過 ssh 進入它。問題是這個 IP 位址發生了變化,我想透過 ssh 新增遠端 git 儲存庫,所以這是行不通的。我缺什麼?ssh [email protected]

答案1

你的伺服器是什麼作業系統?如果不是 Mac OS X,那麼您需要安裝 Avahi 並在中進行以下設置/etc/nsswitch.conf

hosts:    files dns mdns

或者

hosts:    files mdns_minimal [NOTFOUND=return] dns mdns 

答案2

您的伺服器運行什麼作業系統?它需要支援 Bonjour 又名 mDNS,這是為 .local 主機名稱提供支援的技術。您可以了解有關 mDNS 的更多信息這裡。有多種適用於 UNIX、Linux 和 Windows 的 mDNS 實作。我推薦 Apple 的 mDNSResponder 和類別 Unix 系統的開源 Avahi 守護程式。

如果您的伺服器上已經有 mDNS,那麼我建議您查看您的網路設定。 mDNS 不能跨某些 VPN 系統(包括 L2TP/IPsec)使用,也不能跨不同子網路使用。 mDNS 主頁有設定廣域 mDNS 的設定說明,這需要使用名稱伺服器,但我的努力尚未成功。

一種更簡單、更容易的方法可能是為您的 MacBook 提供靜態 IP 位址。大多數路由器允許您使用 DHCP 用戶端 ID 或介面的 MAC 位址指派靜態 IP。

我自己最近一直在爭論一些 mDNS 問題。

相關內容