我正在使用VirtualBox 5.0.20。主机是运行OS X 10.11.5(El Capitan)的MacBook。来宾操作系统是64位Arch Linux。当我从ISO安装Arch时,客人的互联网连接很好。但是,一旦启动到已安装的系统,我将无法再访问Internet(例如,对8.8.8.8进行ping操作会无限期地挂起)。
虚拟机具有两个网络适配器:一个桥接器和一个仅主机的适配器。我尝试过将桥接器更改为NAT适配器,以及一次将桥接器连接到主机的无线接口,另一次连接到主机的有线接口。在任何这些设置下,访客都无法访问Internet。
来宾操作系统已启用systemd-networkd.service和systemd-resolved.service。它没有启用我知道的任何其他网络服务。如果可能的话,我想坚持使用这些服务,而不是切换到其他服务,但是如果这些服务中存在某些固有的缺陷是我的问题的根源,我会切换。
在来宾操作系统中,桥接适配器的网络文件的内容:
[root@arch64 ~]# cat /etc/systemd/network/bridged.network
[Match]
Name=enp0s3
[Network]
DHCP=ipv4
以及仅主机适配器的网络文件的内容:
[root@arch64 ~]# cat /etc/systemd/network/host-only.network
[Match]
Name=enp0s8
[Network]
Address=192.168.56.2/24
Gateway=192.168.56.1
桥接适配器成功获取了DHCP租约,并且我可以另外ping通我LAN上的主机,但是我不能ping通LAN路由器以外的任何设备。主机的互联网连接很好。
答案来自于我收到的有关Unix&Linux StackExchange中相同问题的提示。
按照我的设置,我有两个系统化的网络单元文件:一个用于桥接适配器,一个用于仅主机的适配器。我希望桥接适配器具有动态地址,因为虚拟机位于在网络之间移动的便携式计算机上,并且我希望仅主机适配器具有静态地址,以便我可以通过诸如ssh来访问它,而无需手动确定地址。
但是,在创建网络单元文件时,我盲目复制了我在Wiki教程中找到的内容-一个部分描述了如何快速设置动态地址,另一部分描述了如何快速设置静态地址。显然,本教程假定我将使用一个或另一个简单的设置-不能同时使用,这是一个更复杂的场景。
可以说仅主机适配器的网络文件指定了“网关”选项,而桥接适配器的文件则没有。因此,似乎仅主机适配器的网关已成为来自虚拟机的流量的首选路由。从网络文件中删除此选项解决了该问题。
修复后的仅主机适配器网络文件(删除了“网关”选项):
[root@arch64 ~]# cat /etc/systemd/network/host-only.network
[Match]
Name=enp0s8
[Network]
Address=192.168.56.2/24
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句