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的配置:
1
2
3
4
5
6
7
8
|
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的配置:
1
2
3
4
5
6
|
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的配置:
1
2
3
4
5
6
7
8
|
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,需要自己手动设置。