我有一个带有 VirtualBox v6.1.34 的 Win 10 物理主机和一个 CentOS 7 的来宾操作系统。
作为默认设置,VirtualBox Host-Only Ethernet Adapter 是 on 192.168.56.1/24
,guest 以自动模式连接到这个网络适配器。
启动后,guest 通过 DHCP 获取地址,我通过ifconfig
在 guest 上调用命令进行验证。简单来说,hostname
来宾操作系统的名称与虚拟机的名称相同。
我也跟着这个链接验证了 DHCP 租约的记录。顺便说一句,租赁记录包含 IP 和 MAC 地址,但我没有找到有关主机名、域名或 VirtualBox VM 名称的任何指示。
但是,我无法通过物理主机上的虚拟机名称 ping 来宾。如前所述,它与hostname
.
- 我试过了
ping hostname
,ping hostname.local
但他们没有用。 - 使用已知地址,
ping 192.168.56.xxx
可以正常工作。
如果您需要更多信息,请告诉我。
我是网络新手,因此我非常感谢您提供一些关于基本概念的建议,例如子网、网关、路由器、DNS、DHCP 等。
基于 DHCP 租约的名称查找是通过本地 DNS 完成的,本地 DNS 需要由相关 DHCP 服务器提供(即由 VirtualBox 的内部“仅主机”DHCP 服务)。将 DHCP 租约同步到 DNS 条目并不是 DHCP 固有的内置功能,而是需要由软件作者单独实现的功能,据我在 VirtualBox 的 Dhcpd 源代码中所见,这种集成并未实现一点也不。
(此外,客户端(即您的主机操作系统)还需要配置为实际使用该 DNS 服务器。这也不太可能是这种情况,因为 VirtualBox 的 DNS 是为虚拟机设计的,因此它将请求转发到主机操作系统的任何位置配置告诉它...所以如果主机尝试使用 VirtualBox 的 DNS,你将得到一个 DNS 请求循环,并且根本无法解决任何问题。)
直接(非 DNS)名称查找通常基于 mDNS 或 LLMNR 协议。要使裸机
host
或host.local
名称正常工作,虚拟机实际上需要至少为其中一种协议提供服务——通常通过avahi-daemon用于 mDNS,通过systemd-networkd用于 LLMNR(或两者兼而有之)。安装其中一项服务并确保 VM 的防火墙允许入站 UDP 查询数据包。