欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

VirtualBox多个虚拟机时网络设置

程序员文章站 2022-04-11 10:22:46
...
  • 环境:主机Win7 + VirtualBox + Ubuntu14.04 + Ubuntu16.04

      使用VirtualBox安装虚拟机时,网络配置我们一般选择双网卡,一个用于虚拟机与外部通信(NAT),另一个用于与主机通信(Host-Only),通过VirtualBox手册我们可以看到这么做的合理性:

VirtualBox多个虚拟机时网络设置

Host-Only:可以实现与主机和其他虚拟机互相通信

NAT:可以实现自身与外部进行通信

对每台虚拟机设备进行一下设置:

添加第一块网卡:NAT模式

VirtualBox多个虚拟机时网络设置

添加第二块网卡:Host-Only模式

VirtualBox多个虚拟机时网络设置

在虚拟机系统中可以查看

Ubuntu14.04:

VirtualBox多个虚拟机时网络设置

VirtualBox多个虚拟机时网络设置

Ubuntu16.04:

VirtualBox多个虚拟机时网络设置

VirtualBox多个虚拟机时网络设置

由上图可知每个虚拟机可以 ping通外部网络,主机(192.168.56.199),其他虚拟机。

以上为每个网卡自动获取IP,即DHCP

VirtualBox多个虚拟机时网络设置

Host-Only是为了和主机和其他虚拟机通信,我们希望每台虚拟机有固定的IP,因此我们将Host-Only网卡设置为静态IP模式,可以用以下方式设置:

1.通过界面设置,点击右上角的网络图标,选择编辑,然后进入下面界面,进入IPv4设置,选择手动设置:

VirtualBox多个虚拟机时网络设置

2.通过网络配置文件设置,Ubuntu在/etc/network/interfaces中编辑对应的Host-Only接口(我的Ubuntu14.04为eth1,16.04为enps8):

Ubuntu14.04:

auto eth1
iface eth1 inet static
address 192.168.56.101
netmask 255.255.255.0
gateway 192.168.56.1

 Ubuntu16.04:

​auto enp0s8
iface enp0s8 inet static
address 192.168.56.102
netmask 255.255.255.0
gateway 192.168.56.1

 设置好后,重启网络服务:service network-manager restart 或者重启机器

 再次开机后查看网络,发现问题:

VirtualBox多个虚拟机时网络设置

VirtualBox多个虚拟机时网络设置

只有一台虚拟机能连上外部网络了,另一台只能ping通主机和其他虚拟机

解决方法:取消网关设置,即gateway默认即可

将 gateway 192.168.56.1去掉后其他不变然后重启

auto enp0s8
iface enp0s8 inet static
address 192.168.56.102
netmask 255.255.255.0
# gateway 192.168.56.1

再次测试通过:

VirtualBox多个虚拟机时网络设置

原因:双网卡时设置Host-Only网关后,重启机器,外部网络连接默认使用Host-Only设置的网关而非NAT自动获取的网关


欢迎讨论!