VirtualBox中有四种网络连接方式:
- NAT
- Bridged Adapter
- Internal
- Host-only Adapter
VMWare中有三种,其实它跟VMWare的网络连接方式都是一样的概念,只是比VMWare多了Internal方式
在介绍四种工作模式之前,先说下虚拟网卡,虚拟机安装好之后,会自动添加两张网卡(VMnet1和VMnet8),VMnet1用户Host-only网络连接,VMnet8用NAT方式的网络连接,原先的VMnet0用桥接网络连接。
1.Bridged 桥接模式
1.1 特点
虚拟机和主机是处于同等地位的机器,所以网络功能也无异于主机。并且和主机处于同一网段。
1.2 原理
桥接模式,使用的是VMnet0虚拟网卡。
vmnet0实际上就是一个虚拟的网桥(2层交换机),这个网桥有若干个接口,一个端口用于连接你的Host主机,其余端口可以用于连接虚拟机,他们的位置是对等的,谁也不是谁的网关。所以桥接模式下,虚拟机和Host主机是同等地位的主机。
1.3 示例图
主机A上的两个虚拟机1和虚拟机2,和主机A、B同处于一个网段,能够相互通信
1.4 配置
虚拟机1的配置:
DEVICE="eth0"
BOOTPROTO=“static" #设置静态ip,动态为dhcp
IPADDR="192.168.1.3"
GATEWAY="192.168.1.1"
HWADDR="08:00:27:C7:1B:22"
DNS1="8.8.8.8"
NETMASK="255.255.255.0"
ONBOOT="yes"
2.Host-only模式
2.1 特点
只能和主机相互通信,不能上网,也不能访问其他主机,用于建立与外部隔离的网络环境
2.2 原理
Host-only模式使用的是VMnet1网卡。
这种方式下,虚拟机连接到VMnet1上,但系统并不为其提供任何路由服务,因此虚拟机只能和宿主机进行通信,而不能连接到真正的网络上。
2.3 示例图
虚拟机1和2之间可以相互通信,主机A能和虚拟机1和2通信,虚拟机1和2不能和主机通信(需要设置),虚拟机不能和B主机以及外网通信
2.4 配置
虚拟机1的配置:
DEVICE="eth0"
BOOTPROTO=“static" #设置静态ip,动态为dhcp
IPADDR="192.168.56.3"
HWADDR="08:00:27:C7:1B:22"
NETMASK="255.255.255.0"
ONBOOT="yes"
3.NAT
3.1 特点
- 主机ping不通虚拟机(包括宿主)
- 同一宿主的虚拟机可以相互ping通
- 宿主能够联网,虚拟机也能联网(其他主机)。宿主没有联网,虚拟机也不能联网
- 虚拟机能够ping通主机
其他主机不能访问虚拟机
3.2 原理
网络地址转换类似于家庭路由器的方式工作。使用NAT模式,就是让虚拟系统借助NAT(网路地址转换)功能,通过宿主机器所在的网络来访问公网。
其实就是虚拟机的网卡连接到宿主的VMnet8虚拟机交换机上,VMnet8充当了路由器的作用,负责将虚拟机转发到VMnet8的包进行地址转换之后发送到实际的网络中,再降实际网络上返回的包进行地址转换后通过VMnet8发送给虚拟机。
其实相比Host-only模式只不过增加一层路由功能。
注意:
看VirtualBox官方文档,如果VMnet8网卡地址段是10.0.2.0/8 那么默认网关是10.0.2.1,而且我这样配置也对。但是看网上VMVare使用的网关都是10.0.2.2,没有看VMVare官方文档,也不清楚,希望知道的同学告知一下。
3.3 示例图
主机A和虚拟机1和2能相互通信,虚拟机1和2能访问主机B和外网,主机B不能访问虚拟机1和2,虚拟机1和2能相互通信
3.4 配置
虚拟机1的配置:
DEVICE="eth0"
BOOTPROTO=“static" #设置静态ip,动态为dhcp
IPADDR="10.0.2.5"
GATEWAY="10.0.2.1"
HWADDR="08:00:27:C7:1B:22"
DNS1="10.0.2.1"
NETMASK="255.255.255.0"
ONBOOT="yes"
4.内部网络
内部网络类似于桥接网络,虚拟机可以直接与外部通信。但是外部仅限于连接到统一主机上的其他虚拟机。
即使在技术上,使用内部网络可以完成的一切也可以使用桥接网络,内部网络有安全优势。在桥接网络模式下,所有流量都通过主机系统的物理接口。
默认不分配IP,需要自己手动设置。
参考:
【1】虚拟机网络拓扑http://wangchunhai.blog.51cto.com/225186/381225/