![VirtualBox 桥接适配器在某些情况下不工作](https://linux22.com/image/1264829/VirtualBox%20%E6%A1%A5%E6%8E%A5%E9%80%82%E9%85%8D%E5%99%A8%E5%9C%A8%E6%9F%90%E4%BA%9B%E6%83%85%E5%86%B5%E4%B8%8B%E4%B8%8D%E5%B7%A5%E4%BD%9C.png)
我在 Ubuntu 10.04 主机上运行 VirtualBox 3.2.12。通常,在工作时,我将 eth0 连接到具有静态 IP 的 LAN。如果我将笔记本电脑带回家,我会通过 WiFi 连接到互联网,并将 WLAN 卡配置为 DHCP。
在我的客户系统上,我将 eth0 配置为 NAT,并将 eth1 配置为桥接适配器。
现在在工作中(电缆连接到主机上的 eth0),我与我的客户机建立了网络连接,我可以 ping、ssh 等等。在家里,我没有网络连接。NAT 正在运行,我可以从我的客户机内部访问互联网,但主机和客户机之间没有直接连接。我无法从主机 ping 我的客户机,反之亦然。
一开始我以为可能是路由问题,但事实似乎并非如此:工作时和在家时的路线都相同(或者我可以让它们相同,但没有任何影响)。
此外,虚拟 192.168.0.0 网络上的多个客户机可以互相访问。只是主机无法访问。
在我的主机上,我有两个虚拟网络适配器:
eth0:1 Link encap:Ethernet HWaddr 00:22:68:11:32:f8
inet addr:192.168.0.1 Bcast:192.168.0.255 Mask:255.255.255.0
vboxnet0 Link encap:Ethernet HWaddr 0a:00:27:00:00:00
inet addr:192.168.0.101 Bcast:192.168.0.255 Mask:255.255.255.0
两者似乎都可以工作,我可以 ping 它们的地址(也许这并没有多大意义?)。
现在我有点不知道该在哪里继续搜索。任何建议都将不胜感激。
答案1
在客户机端网络设置:
适配器 1 = eth0 = NAT(您已经有此设置,这就是您始终可以访问互联网的原因)
适配器 2 = eth1 = 桥接,这是你的问题,我猜是你的主机网络设备是否桥接也是 eth0(这就是它在工作时工作的原因),但是当你回到家时你的 wifi 不是主机 eth0 网络设备,它可能是 wlan0,或者 eth1,这取决于你的计算机 NIC)。
如果您的设置如您所述,那么您根本没有使用 vboxnet0,只有当您为客户机执行“仅主机”以太网适配器设置时才使用该 vbox 网络接口。
我不明白的是为什么您有 NAT 和桥接适配器??按照您的设置配置方式同时拥有这两者是没有意义的。如果您严格将虚拟机用于内部服务(例如托管 iscsi 卷,或者可能作为仅位于主机本地的 svn 服务器),那么您应该做的是 NAT 第一个适配器(如您所拥有的),然后“仅主机”第二个客户适配器...第二个适配器对互联网不可见,但对您的主机和配置为共享该仅主机网络的任何其他虚拟机都可见。您的虚拟机仍然能够通过 NAT 访问互联网,但会更安全,因为互联网将无法访问它。
我还会放弃那个虚拟 eth0.1 接口,因为我也看不出有什么意义,而且很可能会搞乱你的 tcp/ip 堆栈,因为它可能会混淆要从哪个接口发送请求,因为 eth0.1 与 vboxnet0 是相同的 ip 范围...坏主意。(我认为技术术语是多宿主你的网络...但我不是 100% 确定)
如果这对您有帮助,请告诉我...如果您的虚拟机设置或原因不同,您可以更详细地解释它们的用途,我可以协助您建议最佳的网络配置设置。
答案2
抱歉回复这么晚,我没有意识到(或者没有收到回复通知)..
我认为您说的没错,仍然存在路由问题,在看完您的原始帖子后,我发现了一些可能需要更改的细节。
在我自己的 VBox 配置中,仅主机网络范围与桥接范围不同......
我将提供一个解决方案供您尝试:
由于您在工作时有一个静态 IP,我们将您的主机保留在 eth0:192.168.0.1
现在编辑 VBoxManager->File->Prerences...->Network->vboxnet0 下的 IPv4 仅主机地址
将该 IP 地址更改为:192.168.120.1
然后为您的客户机将第一个适配器设置为 NAT,然后将第二个适配器设置为仅主机
当您打开此虚拟机时,您应该获得一个在 192.168.120.X 范围内的客户 eth1 的 IP 地址,如果没有,请尝试刷新或静态设置该 IP 地址。
完成上述操作后,尝试使用新的 192.168.120.x 范围 IP 地址通过 SSH 进入虚拟网络。您应该会成功。如果此方法有效,但不是您想要实现的,请更具体一些,也许我可以为您提供一些正确的指导。