Ssh

通過主機名而不是 IP 連接到本地 VM

  • January 7, 2021

我有一個執行 Ubuntu 的虛擬機。該虛擬機在我的 Ubuntu 機器上的 Virtualbox 中本地執行。我可以通過 ssh 提供虛擬機的 IP 進行連接。但我想使用主機名,因為虛擬機的 IP 可以更改。所以我嘗試了“ssh user@hostname.local”,但它給了我“名稱或服務未知”同樣的方法適用於網路中的樹莓:“ssh user@raspberrypi.local”連接沒有問題。

這裡有什麼區別?為什麼這不適用於我的本地虛擬機?VM 的網路適配器處於橋接模式,它通過 DHCP 從我的路由器獲取其 IP。

編輯更多資訊:主機名在我的路由器上連接的設備列表中。“ping hostname.local”也失敗,但“ping hostIP”有效。一定是DNS問題。

感謝您的任何提示!霍布西

您需要名稱解析才能正常工作。它可能是 DNS,但如果您執行自己的 DNS 伺服器,您會問一個不同的問題。所以我猜你不會。沒有 DNS 伺服器,沒有基於 DNS 的名稱解析。

另一種名稱解析方法是/etc/hosts. 您可以簡單地添加hostname.local/etc/hosts管理程序主機上的文件中。可能是最簡單的解決方案,特別是如果您不從其他電腦訪問 VM。

第三種常用的方法是mDNS。它依賴於執行在 VM 上的服務,該服務響應“誰有名字hostname.local?”類型的查詢。在 Linux 上,此服務通常命名為“Avahi”。也許您的 Raspberry Pi 執行它,而您的 VM 沒有。或者 mDNS 查詢可能無法到達 VM。

要了解啟用了哪些名稱解析方法,請參閱文件中的hosts子句/etc/nsswitch.conf

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