![无线网络导致虚拟机无法被外界访问](https://linux22.com/image/1532966/%E6%97%A0%E7%BA%BF%E7%BD%91%E7%BB%9C%E5%AF%BC%E8%87%B4%E8%99%9A%E6%8B%9F%E6%9C%BA%E6%97%A0%E6%B3%95%E8%A2%AB%E5%A4%96%E7%95%8C%E8%AE%BF%E9%97%AE.png)
我目前有两个在 Windows 7 主机上运行的 Ubuntu 14.04 虚拟机。虚拟机配置为使用桥接网络适配器。
当主机硬连接到互联网时,虚拟机能够 ping 通外界,并且可被外界 ping 通。
当宿主机处于无线网络中时,虚拟机无法ping通外界,外界也无法ping通虚拟机。
当连接到无线网络时,从虚拟机 ping 到外部或从外部 ping 到虚拟机时,收到“目标主机不可达”错误。
值得注意的是,这些虚拟机是在 VirtualBox 中运行的。这里可能适用的是,VirtualBox 手册第 6.5 节状态:
桥接到无线接口与桥接到有线接口的方式不同,因为大多数无线适配器不支持混杂模式。所有流量都必须使用主机无线适配器的 MAC 地址,因此 VirtualBox 需要替换传出数据包以太网报头中的源 MAC 地址,以确保将回复发送到主机接口。当 VirtualBox 看到传入数据包的目标 IP 地址属于虚拟机适配器之一时,它会将以太网报头中的目标 MAC 地址替换为 VM 适配器的 MAC 地址并将其传递。VirtualBox 检查 ARP 和 DHCP 数据包以了解虚拟机的 IP 地址。
我不确定是什么原因导致了这个问题。在我的情况下,在网络之间切换时需要从外部世界访问这些虚拟机。有什么想法可以解释一下可能发生了什么吗?
提前感谢你的帮助!
答案1
只是为了给那些将来可能偶然发现这个问题的人提供一些价值:这个问题的根源来自 virtualbox 中的设置。打开 virtualbox,在“设置”>“网络”>“适配器”页面下,有一个名称字段。如果尝试通过有线连接连接到虚拟机,请选择主机的以太网适配器。如果尝试通过无线连接连接到虚拟机,请选择主机的无线适配器。希望这对某些人有所帮助!