首先说明VMware功能比 VirtualBox强大,网卡设置也更加灵活,并且可以一种模式搞定你所有的需求,如果能用VMware那就优先用VMware

VirtualBox的网络设置和VMware的网络设置不同

  • VMware的NAT 模式和 host-only模式都会在宿主机中映射一个虚拟网卡,这个网卡可以使宿主机使用虚拟机IP地址连接虚拟机。
  • VirtualBox只有host-only才会创建虚拟网卡,所以只有host-only模式可以方便的访问虚拟机。

host-only,NAT,桥接的区别

  • host-only 不能连外网,和宿主机处于不同网段,虚拟机位于独立的子网络,不能请求外网,可以通过宿主机虚拟网卡连接宿主机
  • NAT可以连接外网,和宿主机处于不同网端,虚拟机位于独立的子网络,并且这个网络可以连接外网(通过宿主机物理网卡请求外网)
  • 桥接,可以连外网,使用的数宿主机所在的网络,和宿主机处于一个网段,占用一个IP,通过虚拟机网卡请求外网

解释说明

一般我们的需求是宿主机可以通过虚拟机IP连接虚拟机,并且虚拟机可以上外网。这种需求其实只要使用桥接模式就行了,但是桥接模式会占用宿主机网络IP,不适合在公司使用(如果你虚拟机的IP被别人用了,你只能改IP),所以只能是虚拟机有一个独立的子网络。

VMware的NAT模式可以访问外网,并且为NAT模式的宿主机创建了虚拟网卡(通过这个网卡把宿主机加入到虚拟机的网络),所以可以很方便的实现宿主机请求虚拟机,这也是我推荐优先使用VMware的的原因。
如下图VMware宿主机网卡设置截图,VMware 有两个虚拟网卡,一个是个 host-only用的,一个给 NAT用的,VirtualBox只有一个,是个 host-only用的

Oracle VM VirtualBox网络设置_IP

VirtualBox只有host-only模式创建了宿主机虚拟网卡,所以需要host-only + NAT模式才能实现宿主机访问虚拟机,并且虚拟机可以访问外网。

VirtualBox全局网络设置

选择工具-->网络,然后进入网络设置

Oracle VM VirtualBox网络设置_IP_02

先修改host-only网络的网段,也可以不改,用默认的也行,修改网段是为了方便记忆,或者你有B类网的需求,一般A类网够了

默认是 192.168.56.1

Oracle VM VirtualBox网络设置_IP_03

新建一个NAT网络,如果有就不用新建,这个也是设置子网段,一般默认就可以了,因为这个字网络分配的IP不好改,一般用于连接外网。

Oracle VM VirtualBox网络设置_IP_04

虚拟机网络设置

先保持虚拟机关闭,这样才能设置多张网卡

网卡1:我建议设置为host-only,这样做的目的是第一网卡对应了虚拟机里面的一个物理网卡文件,可以很方便的修改并且固定IP,便于我们的宿主机访问固定的虚拟机IP。

网卡2:这个是VirtualBox虚拟的网卡,在虚拟机里面没有对应的网卡配置文件,所以把他设置成访问外网的NAT网络。

网卡3:你可以设置成桥接,但是没必要设置这么网络,如果你确定宿主机网段的IP不会冲突,可以直接用第一网卡设置为桥接,这样最省事。

如果不关机网卡选项是灰色的,不能选的

Oracle VM VirtualBox网络设置_IPV6_05

网卡1配置

Oracle VM VirtualBox网络设置_IP_06

网卡2配置

Oracle VM VirtualBox网络设置_外网_07

给虚拟机设置固定的IP,以便宿主机访问

首先开机

cd /etc/sysconfig/network-scripts
vi ifcfg-enp0s3
备注,这个名字不一定完全一样,一般是 ifcfg-en开头的文件,这个文件对应着我们前面配置网卡1

TYPE=Ethernet
PROXY_METHOD=none
BROWSER_ONLY=no
#这里本来是 DHCP,DHCP是 动态获取IP的协议,改成static,表示固定IP
BOOTPROTO=static
DEFROUTE=yes
IPV4_FAILURE_FATAL=no
IPV6INIT=yes
IPV6_AUTOCONF=yes
IPV6_DEFROUTE=yes
IPV6_FAILURE_FATAL=no
IPV6_ADDR_GEN_MODE=stable-privacy
NAME=enp0s3
UUID=ec760113-7932-4f46-996d-dadecca628b4
DEVICE=enp0s3
#这里本来是 on,改成yes,表示开启的时候启动网卡
ONBOOT=yes

#下面是手动加的
#虚拟机固定IP
IPADDR=192.168.110.200
#子网掩码
NETMASK=255.255.255.0
#网关
GATEWAY=192.168.110.1
  • 1.
  • 2.
  • 3.
  • 4.
  • 5.
  • 6.
  • 7.
  • 8.
  • 9.
  • 10.
  • 11.
  • 12.
  • 13.
  • 14.
  • 15.
  • 16.
  • 17.
  • 18.
  • 19.
  • 20.
  • 21.
  • 22.
  • 23.
  • 24.
  • 25.

重启网络设置,就能完成了

systemctl restart network
  • 1.

确认配置生效

在虚拟机上 ping baidu.com,能ping通表示可以连外网,NAT网络设置正确。

在宿主机上 ping 虚拟机IP,能ping通说明虚拟机的 host-only 网络设置正确。

如果有问题通过 ip addr 或者 ifconfig 查看IP是否正确

ifconfig 刚安装的centos可能没有,所以用 ip addr 查看,或者使用 yum install -y net-tools 安装

Oracle VM VirtualBox网络设置_IPV6_08

鼠标悬停在右下角的小电脑图标上面1秒,可以查看网卡是否开启,你也可以在这里启用停用网卡

右键点那个电脑小图标可以启用停用指定网卡

Oracle VM VirtualBox网络设置_外网_09

上面的配置有问题,每次都要重启网络服务才能正常使用

估计是启动时加载匹配顺序的关系

解决办法

网卡1设置为NAT,网卡2设置为host-only
如果反过来我试了一下不行。

修改网卡touch ifcfg-enp0s3

TYPE=Ethernet
PROXY_METHOD=none
BROWSER_ONLY=no
BOOTPROTO=static
DEFROUTE=yes
IPV4_FAILURE_FATAL=no
IPV6INIT=yes
IPV6_AUTOCONF=yes
IPV6_DEFROUTE=yes
IPV6_FAILURE_FATAL=no
IPV6_ADDR_GEN_MODE=stable-privacy
NAME=enp0s3
UUID=ec760113-7932-4f46-996d-dadecca628b5
DEVICE=enp0s3
ONBOOT=yes
IPADDR=10.0.2.66
NETMASK=255.255.255.0
GATEWAY=10.0.2.1
  • 1.
  • 2.
  • 3.
  • 4.
  • 5.
  • 6.
  • 7.
  • 8.
  • 9.
  • 10.
  • 11.
  • 12.
  • 13.
  • 14.
  • 15.
  • 16.
  • 17.
  • 18.

touch ifcfg-enp0s8 输入类似下面内容

TYPE=Ethernet
PROXY_METHOD=none
BROWSER_ONLY=no
BOOTPROTO=static
DEFROUTE=yes
IPV4_FAILURE_FATAL=no
IPV6INIT=yes
IPV6_AUTOCONF=yes
IPV6_DEFROUTE=yes
IPV6_FAILURE_FATAL=no
IPV6_ADDR_GEN_MODE=stable-privacy
NAME=enp0s8
UUID=ec760113-7932-4f46-996d-dadecca628b4
DEVICE=enp0s8
ONBOOT=yes
IPADDR=192.168.110.66
NETMASK=255.255.255.0
GATEWAY=192.168.110.1
  • 1.
  • 2.
  • 3.
  • 4.
  • 5.
  • 6.
  • 7.
  • 8.
  • 9.
  • 10.
  • 11.
  • 12.
  • 13.
  • 14.
  • 15.
  • 16.
  • 17.
  • 18.

重启网卡