通过主机名而不是 IP 与本地 VM 进行 ssh 连接

通过主机名而不是 IP 与本地 VM 进行 ssh 连接

我有一个运行 Ubuntu 的虚拟机。该虚拟机在我的 Ubuntu 计算机上的 Virtualbox 中本地运行。我可以通过 ssh 连接并提供虚拟机的 IP。但我想使用主机名,因为虚拟机的IP可以改变。所以我尝试了“ssh[电子邮件受保护]”但它给了我“名称或服务未知”同样的方法适用于网络中的树莓派:“ssh[电子邮件受保护]“ 连接没有问题。

这里有什么区别呢?为什么这不适用于我的本地虚拟机? VM 的网络适配器处于桥接模式,它通过 DHCP 从我的路由器获取 IP。

编辑更多信息:主机名位于我的路由器上连接的设备列表中。 “ping hostname.local”也失败,但“ping hostIP”有效。一定是 DNS 问题。

感谢您的任何提示!赫布西

答案1

您需要名称解析才能使其工作。它可能是 DNS,但如果您运行自己的 DNS 服务器,您会问一个不同的问题。所以我猜你不知道。没有 DNS 服务器,没有基于 DNS 的名称解析。

另一种名称解析方法是/etc/hosts.您只需添加hostname.local/etc/hosts虚拟机管理程序主机上的文件即可。可能是最简单的解决方案,特别是如果您不从其他计算机访问虚拟机。

第三种常用的方法是组播DNS。它依赖于虚拟机上运行的服务来响应“谁有名字hostname.local?”类型的查询。在 Linux 上,此服务通常命名为“Avahi”。也许您的 Raspberry Pi 运行它,而您的 VM 不运行。或者 mDNS 查询可能无法到达虚拟机。

要了解启用了哪些名称解析方法,请参阅主机文件中的条款/etc/nsswitch.conf

相关内容