我有一台运行Ubuntu的虚拟开发服务器,它使用Apache和在Mac上的VirtualBox下运行(主机OS是OSX 10.8.1)。 我configuration了一个桥接适配器,试图使我的testing设备(iPhone和Android)在networking中可见。
当我从运行它的“真实”机器连接到服务器时,一切正常 – 可以加载网页等。但是,从我的任何testing设备连接到此服务器的连接尝试超时。
我尝试设置混杂模式=允许所有和重新启动客户操作系统,但它似乎没有任何影响。 我也validation了主机箱的防火墙完全closures(在命令行使用“sudo ipfw list”和系统首选项>安全>防火墙)。
为了使这项工作有什么额外的设置,我应该做些什么? 我错过了哪些其他的故障排除步骤?
好的,早些时候我写道,使用Mac的无线接口en1根本不用桥接。 我只有轶事证据,但是既然你能证实,我们可以把它当成事实。
但让我们来看看可用的文档,这本身就很有趣。 也许别人可以对此发表评论?
我看了一下VirtualBox 4.1.20(r80170)附带的文档。 它在第6.4 Bridged networking
章中6.4 Bridged networking
:
要启用桥接networking,只需打开虚拟机的“设置”对话框,进入“networking”页面,并在“连接到”字段的下拉列表中select“桥接networking”。 最后,从页面底部的列表中select所需的主机接口,其中包含系统的物理networking接口。 例如,在典型的MacBook上,您可以在“en1:AirPort”(无线接口)和“en0:Ethernet”之间进行select,即代表网线的接口。
好吧,这似乎意味着, en1
应该工作。 但是,下一段说:
注意:由于大多数无线适配器不支持混杂模式,因此桥接到无线接口与桥接到有线接口完全不同。 所有stream量必须使用主机无线适配器的MAC地址,因此VirtualBox需要replace出站数据包的以太网报头中的源MAC地址,以确保将回复发送到主机接口。 当VirtualBox看到一个目标IP地址属于其中一个虚拟机适配器的传入数据包时,它将使用VM适配器的MAC地址replace以太网头中的目标MAC地址并将其传递。 VirtualBox检查ARP和DHCP数据包,以了解虚拟机的IP地址。
好? 我不太清楚机场卡的function,但是当我运行tcpdump的时候,我看到了en1: promiscuous mode enable succeeded
的消息en1: promiscuous mode enable succeeded
在dmesg
en1: promiscuous mode enable succeeded
。 (虽然我看不到任何不是我的,或多或广播的stream量)
现在,有趣的部分:
根据您的主机操作系统,应该记住以下限制:在Macintosh主机上,使用AirPort(Mac无线networking)进行桥接networking时,function受到限制。 目前,VirtualBox仅通过AirPort支持IPv4。 对于其他协议,如IPv6和IPX,您必须select有线接口。
我可以想象,甲骨文对能力做了假设 。 或者,它曾经在某些时候 (当SUN还在负责的时候)开始工作,而且在最近的Mac或OSX版本中不再使用。 我疯狂猜测,因为它从来没有为我工作。