这段时间需要用VirtualBox搭建一个小的网络环境做Linux系统优化的测试实验,需要了解VirtualBox的网络各种配置方式,百度了网上的各种介绍,发现有的不太全面,有的介绍的有偏差,于是自己结合VirtualBox官网的文档整理了一下,希望能够帮助之后需要查找此类信息的朋友。
操作系统:macOS Mojave Version 10.14.6
VirtualBox版本:6.1.2 r135662 (Qt5.6.3)
安装的测试系统:Ubuntu 18.04
官网文档地址:https://www.virtualbox.org/manual/ch06.html
这是几种网络配置的总体示意图,之后将结合此图分别进行介绍,此表中纵坐标指的是5种网络配置方式,横坐标指的是5中网络访问方式,他们分别是:
VM->Host 虚拟机访问宿主机
Host->VM 宿主机访问虚拟机
VM1->VM2 虚拟机1访问虚拟机2(即虚拟机之间互相访问)
VM->Net/LAN 虚拟机访问外网
Net/LAN->VM 外网访问虚拟机
一、 NAT(Network Address Translation)模式
这是VirtualBox虚拟机的默认网络配置模式,虚拟机可以通过NAT的方式连接外网,如果外网需要访问虚拟机,可以通过端口映射的方式。
在图形用户界面,可通过如下方式配置:
选择要进行配置的虚拟机,单击设置->网络,网络连接方式选择NAT,之后选择高级->端口映射。
如图,添加相应的映射规则,然后保存(端口映射可以在虚拟机运行时添加,即时生效)
二、 NAT Service(Network Address Translation Service)模式
NAT Service是NAT网络的进阶版本,处理具有NAT网络的所用功能之外,虚拟机之间也可以进行通信,在VirtualBox的图形用户界面中,配置方式如下所示:
添加NAT Service网络
选择VirtualBox->偏好设置
选择网络,添加NAT网络,可以在配置网络时确定网络的地址和子网掩码,注意:使用NAT Service时,如果需要配置端口映射的话,在NAT Network中进行配置,如下图所示:
配置方法和之前相同,这里不再赘述。
虚拟机在配置时选择NAT Service,同时网络选择刚刚新建的NAT Network --- "NatNetwork-alpha"
采用这种配置方式,虚拟机不但可以访问外网,外网也可以通过端口映射访问虚拟机,并且,同一个网络下的虚拟机之间也可以互相访问。
三、 Bridged模式(桥接模式)
采用桥接方式,VirtualBox会在宿主机中为虚拟机新建一个虚拟网卡,启动虚拟机后,会为虚拟机分配一个和宿主机同网段的ip地址,就好像是该虚拟机是接入到宿主机网络的一台实体主机一样。
配置方式很简单,只要在虚拟机的网络配置中选择桥接模式即可。
这里有一点需要注意,在选择了桥接模式之后,还需要选择你的宿主机中的一个网卡,你的主机可能有多个网卡,比如我的主机上同时有有线网卡和无线网卡,此时,我正在使用无线网卡上网,所以选择的是无线网卡en0: Wi-Fi (Air Port),此时虚拟机启动后,会分配一个和无线网卡同网段的ip地址给虚拟机。(桥接模式的原理其实是虚拟机共用了宿主机的物理网卡,虚拟机收发数据包实际上是基于宿主机的物理网卡来实现的)
四、Internal 模式
Internal其实是创造了一个封闭的网络环境,虚拟机之间可以进行通信,虚拟机和外界无法进行通信。
注意:如果两台配置了Internal的虚拟机需要通信的话,必须在下方配置相同的“名称”,然后在两台虚拟机中静态配置同网段的ip地址,两台虚拟机就可以进行通信了。
五、Host-Only模式
在Host-Only模式下,虚拟机之间可以进行通信,虚拟机和宿主机之间也可以进行通信,但是虚拟机和外部网络无法进行通信(一说通过宿主机共享网络连接可以让虚拟机和外部进行通信,未证实,感兴趣的读者可以自行证实 https://www.jianshu.com/p/abda384bcae6)
这张图说明了Host-Only的实现原理,使用Host-Only时,宿主机相当于一个有两个网卡的主机,物理网卡连接我们的正常上网网络,然后虚拟出一个虚拟网卡连接虚拟机的网络,集体配置如下:
首先,创建Host-Only网络
具体进行配置
注意:这里配置的ip地址实际上就是宿主机中虚拟网卡的ip地址,这里的地址是192.168.56.1,根据需要,可以对DHCP也进行配置。
最后,在虚拟机中选择使用Host-Only模式,网络选择我们刚刚创建的Host-Only网络vboxnet0,配置完成。以上便是对VirtualBox五种网络配置的介绍,如果有错误的地方,也欢迎大家指正。