
我在用Ubuntu 18 最小映像使用 VirtualBox 创建 Ubuntu 服务器。我创建了一个仅主机网络,并将适配器与 NAT 适配器(已配置)一起添加到 vm。
netplan原来的配置如下:
network:
version: 2
renderer: networkd
ethernets:
enp0s3:
dhcp4: yes
我将此配置更改为以下内容以启用仅主机适配器(enp0s8):
network:
version: 2
renderer: networkd
ethernets:
enp0s3:
dhcp4: ye
enp0s8:
dhcp4: no
addresses: [192.168.56.101/24]
gateway4: 192.168.56.1
现在我可以通过网络成功从主机访问虚拟机。但VM 内的互联网停止工作 :(。我尝试了很多不同的解决方案,但要么通过禁用仅主机适配器来使互联网工作(由 NAT 适配器提供),要么通过启用仅主机适配器从主机访问虚拟机。
我怀疑虚拟机正在尝试通过主机专用适配器连接到互联网。我该如何改变这种情况?
答案1
我也遇到了同样的问题。我可以通过删除此行来使其正常工作:
gateway4: 192.168.56.1
还讨论了其他替代方案Ubuntu 17.04虚拟机上的netplan配置但是我需要的只是建立一个实验室环境进行测试,所以我没有尝试这些。
答案2
我的情况几乎非常相似,但并不完全相同。我想在这里分享我的设置的问题和解决方案,因为使其工作的最后一步是上面@victor6510 给出的答案。
我在 LinuxMint 主机内运行 Ubuntu Server (18.0.4) 客户机。我最初按如下方式设置服务器:
- 网络:桥接适配器(我家路由器网络上的固定 IP)
我在 LinuxMint 主机上有一个 VPN 客户端。我的目标是允许 Ubuntu 客户端通过 VPN 连接访问服务器。这并不容易,但经过一番阅读后,我决定 NAT 适配器选项是最有可能的解决方案。因此我做了以下事情:
- 在 VirtualBox 设置中为我的 Ubuntu 客户机 (NAT) 添加新的网络适配器
- 重启 Ubuntu 客户机
- 配置
netplan
Ubuntu 客户机的设置 - 做
netplan generate
&netplan apply
这是我在 Ubuntu 客户机中的 netplan 配置:
network:
ethernets:
enp0s3:
dhcp4: no
addresses: [192.168.1.200/24]
#gateway4: 192.168.1.254
nameservers:
addresses: [8.8.8.8,8.8.4.4]
enp0s8:
dhcp4: yes
version: 2
enp0s3
是桥接适配器
enp0s8
是 NAT 适配器
在我注释掉该行之前gateway4: 192.168.1.254
,互联网和 ping 都停止工作。注释掉该行之后,我就可以上网,并能够连接到 VPN 另一端的服务器。希望这能帮助任何面临类似情况的人。
注意:我不知道我连接到的 VPN 服务器的详细设置。
答案3
简而言之,当我们为 VM 同时拥有 NAT 和仅主机适配器时,请确保仅主机适配器没有定义网关 4。
例如在 yaml 文件中
network:
ethernets:
enps08:
addresses: [192.168.56.100/24]
dhcp: no
#gateway4: 192.168.56.1
version 2
上述配置有效。