目录

实现静态网络配置方法:

0.网络配置目标

1. VirtualBox的四种网络连接方式

2.桥接模式的各种坑

2.1 桥接网络无法获取ipv4地址

2.2 桥接网络可以获取ipv4地址,但是无法ping宿主机

2.3 桥接网络可以ping通宿主机,但是无法ping通网关

2.4桥接网络可以ping通网关和访问internet,但是内网ip是动态的

2.5大功告成,为VM配置独立静态内网IP实现所有网络目标



安装过程已在这篇博客分享 

本篇专门总结ubuntu VM网络配置的各种坑

环境:

Windows10Pro + VirtualBox6.1 + Ubuntu-server18.04 & 20.04

实现静态网络配置方法:

路由器DHCP,不要为VM设置IP-MAC绑定

在宿主机设置:打开控制面板,找到Windows Defender 防火墙,点击高级设置,在入站规则里找到文件和打印机共享(回显请求 - ICMPv4-In),右键启用规则

在VM上配置静态IP

# vim /etc/netplan/50-cloud-init.yaml
# netplan apply
network:
    ethernets:
        enp0s3:
            addresses: [192.168.1.20/24,]
            dhcp4: false
            gateway4: 192.168.1.1
            nameservers:
                addresses: [211.162.130.33,211.162.130.33,114.114.114.114]
    version: 2

0.网络配置目标

  1. VM跟宿主机可以互相ping通
  2. 多个VM之间可以互相ping通
  3. VM可以通过宿主机访问internet
  4. VM需要静态内网IP,以便搭建内网集群和实现xshell登录

1. VirtualBox的四种网络连接方式

ubuntu kvm配置网桥_虚拟机

可以看到桥接模式是最佳选项,它支持所有情况的访问,让VM成为一台完全独立的主机,多台VM通过这种网络设置可以组成HOST内网可见的集群

2.桥接模式的各种坑

虚拟机网络设置

ubuntu kvm配置网桥_VBOX_02

2.1 桥接网络无法获取ipv4地址

具体怎么出现的没有注意,最后解决方法是重启宿主机路由器

2.2 桥接网络可以获取ipv4地址,但是无法ping宿主机

参考 

解决办法是设置宿主机:

打开控制面板,找到Windows Defender 防火墙,点击高级设置,在入站规则里找到文件和打印机共享(回显请求 - ICMPv4-In),右键启用规则

2.3 桥接网络可以ping通宿主机,但是无法ping通网关

为了实现xshell登录VM,所以在路由器设置了IP-MAC绑定规则,让路由器在DHCP模式下可以给VM分配静态内网IP

但是这样设置后,VM网络出现问题:

宿主机可以ping通VM并实现xshell登录,VM可以ping通宿主机

但是VM无法ping通网关,也无法访问internet

ubuntu kvm配置网桥_ubuntu_03

2.4桥接网络可以ping通网关和访问internet,但是内网ip是动态的

去掉路由器的IP-MAC绑定后,VM通过路由器的DHCP动态获得内网IP

宿主机可以ping通VM并实现xshell登录,VM可以ping通宿主机

VM可以ping通网关,也可以访问internet

但是因为VM的内网IP是动态分配的,搭建内网集群不方便,也不方便xshell登录

ubuntu kvm配置网桥_虚拟机_04

2.5大功告成,为VM配置独立静态内网IP实现所有网络目标

通过在VM配置静态IP,实现VM获取静态内网IP并互相可以ping通

ubuntu kvm配置网桥_网络配置_05

ubuntu kvm配置网桥_网络配置_06

ubuntu kvm配置网桥_ubuntu kvm配置网桥_07

ubuntu kvm配置网桥_ubuntu kvm配置网桥_08