Virtualbox桥接网络无法访问


3

我正在尝试在最新版本的Virtualbox(v5.0.20)中为我的VM(新的Ubuntu服务器16.04 LTS安装)使用网桥适配器。运行 ifconfig -a 给出以下输出:

ifconfig

如您所见,IP地址为192.168.3.59,由我的主机网络(子网192.168.3)的DHCP服务器分配。所以一切似乎都运行得很好,但是当我试图ping到 8.8.8.8例如,我收到以下错误消息:

连接:网络无法访问

我尝试过不同的适配器设置,禁用防火墙,创建新的VM和Google搜索我能想到的一切;然而,没有解决问题。

一些可能有用的信息:

  • 主机PC在Windows 10上运行
  • 接口( /etc/network/interfaces )文件未受影响
  • 使用两个适配器(NAT和仅限主机)可以工作,但这不是我需要的
  • 我有一个旧的VM(Ubuntu 14.03)与桥接适配器一起正常工作

任何帮助/建议将不胜感激!

编辑:添加路由表

ip route show 输出以下内容:

172.23.23.0/24 via 192.168.3.108 dev enp0s3
192.168.3.0/24 dev enp0s3 proto kernel scope link src 192.168.3.59

这可能是路由表问题 - 您的VM不知道将目标发送到8.8.8.8的数据包的位置。请将此问题添加到问题中(例如通过粘贴'ip route show'的输出)
Marek Rost

@MarekRost我用路由表更新了我的答案。
JasonK

Answers:


2

您缺少子网范围之外的流量的默认路由。 以特权用户身份运行以下命令:

ip route通过ip-of-router-on-local-network dev enp0s3添加默认值

这应该允许您ping谷歌的服务器并进行外部连接。永久保留此设置(在重新启动后保持)取决于VM连接的方法,但这应该适用于大多数系统: http://www.linuxquestions.org/questions/linux-networking-3/permanently-add-static-route-16769/


你肯定用路由表指出了我正确的方向,非常感谢!我最后补充说 sudo ip route add default via 0.0.0.0 dev enp0s3etc/network/interfaces。非常奇怪的是,这条路线应该手动添加,我的旧VM默认添加了这条路线。
JasonK

别客气。我不确定你的解决方案是否会奏效。 /etc/network/interfaces 未被解析为常规shell脚本。即使 - sudo也不太可能正常工作,因为它不会由普通用户运行。而是尝试设置 GATEWAY 将此文件中的变量发送到您的路由器,希望这将创建默认路由。
Marek Rost

添加 up ip route add default via 0.0.0.0 dev enp0s3 工作,但设置网关似乎不起作用。另一个有趣的事实是这个问题只出现在Ubuntu 16.04上,一切正常,在14.04.4 LTS上。
JasonK

嗯 - 这可能是由于Ubuntu从upstart init转换到systemd init。在systemd中,静态网络配置从/etc/systemd/network/<your-name>.network加载。负责加载这些设置的服务是systemd-networkd。有关详细信息,请参阅手册页。
Marek Rost
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.