我当前的设置:
- VMWare Workstation 10.0.3
- 主机操作系统是 Windows 8.1 x64
- 客户虚拟机是 Windows 8.1 x64
- 主机有 1 个有线以太网和 1 个内部无线网卡
- 未安装任何防病毒软件(Windows Defender 除外)
- 主机操作系统和客户虚拟机上的防火墙均已关闭
我想要实现的是让主机操作系统使用有线以太网连接到内部专用网络,并让客户虚拟机使用桥接模式的无线网卡访问互联网,但仍保持主机操作系统与互联网隔离。
我已经关注了 VMWare指导它指示我禁用一切在无线网卡上,除了VMWare Bridge Protocol
。我从自动桥接更改VMNet 0
为桥接特定的无线网卡,并将我的客户虚拟机设置为使用桥接。我从主机操作系统连接到无线网络,然后尝试在客户虚拟机内获取 DHCP 地址,但它不起作用。我甚至尝试分配静态 IP 并 ping 网关,但这也不起作用。
我尝试卸载无线网卡驱动程序,重新安装它们,重置 winsock 目录和 ip 堆栈,卸载并重新安装 VMWare,但似乎没有任何效果。我还尝试通过主机上的同一无线网卡(启用所有适当的协议)连接到无线网络,主机能够连接并从路由器中提取 DHCP 地址;它在 VM 中不起作用。
知道我做错了什么吗?
编辑: 这里的网络拓扑结构是面向互联网的网络仅是无线的,而私有内部网络仅是有线的,因此无法在有线网卡上测试互联网连接。另外,这是一台笔记本电脑,它只有 1 个有线网卡,因此使用外部无线以太网桥之类的东西是不可能的。
我正在使用无线 USB 适配器并将其直接连接到客户虚拟机,这虽然可行,但却带来了巨大的麻烦,因为随着时间的推移,USB 适配器似乎在虚拟机内停止工作,我不断地需要拔下适配器,再重新插入,有时甚至不得不在客户虚拟机的设备管理器中禁用该设备并重新启用它(是的,该设备的驱动程序是为 Windows 8 制作的,并且该设备完全兼容)。
编辑2:如果有帮助的话,无线网卡是 Broadcom 802.11n,我猜它是 BCM43XX 芯片组。
更新如果我选中无线网卡属性中的所有内容(ipv4、ipv6、文件共享等),桥接就会起作用。一旦我删除除 VMWare 桥接协议之外的所有内容,它就会失效。
答案1
无线连接无法桥接。OpenWrt wiki 提供了很好的解释:
802.11 标准仅使用三个 MAC 地址来在接入点和站点之间传输帧。从站点传输到 AP 的帧不包含请求主机的以太网源 MAC,响应帧缺少目标以太网 MAC,无法寻址客户端桥后面的目标主机。
- 桥接主机向目标主机发送数据包
- 帧通过 W-LAN 客户端中继,传输无线适配器的 MAC 地址用作源 MAC,发送以太网 MAC 被丢弃
- W-LAN AP 接收帧并将其重定向到目标
- 目标接收帧并生成响应
- 目标使用(错误的)源 MAC 作为目的地来响应接收到的帧
- W-LAN AP 将帧中继到具有指定目标 MAC 地址的 W-LAN 客户端
- W-LAN 客户端接收该帧并假定它是最终目的地,因为该帧中使用了它的无线 MAC 地址,因此不会转发该数据包
- 由于 W-LAN 客户端成为目的地,桥接主机从未看到响应帧,因此无法建立连接
在您的情况下,“桥接主机”是虚拟的这一事实并不重要。
OS X 上的 VMware Fusion 可以桥接无线,它可能使用某种 MAC NAT。
“媒体桥”和通用 WiFi 中继器使用不同的 MAC 地址与上游 AP 打开多个连接,从而规避了这个问题。
解决您的问题的一个非常简单的方法是使用 USB WiFi 适配器。您可以将整个 USB 设备连接到您的虚拟机,并在虚拟机内使用“原生 WiFi”。
答案2
我在尝试使用无线网络桥接模式时遇到了同样的问题。我通过设置两个网络(网络 0 和网络 9)解决了这个问题。然后,您可以将它们设置为桥接模式,但不要自动选择,而是选择网络连接。我将 0 设置为桥接到有线 NIC,将 9 设置为桥接到我的无线适配器,效果很好。