虚拟机的三种网络模式详解
1、 桥接模式:
此模式下,虚拟机的操作系统就像和物理机同一段网络中的物理机一样,它可以访问网络中的任何机器,同时只要物理机可以访问网络,虚拟机也可以实现上网。此模式是懒人模式首选!但换来一个问题就是,如果你的物理机网络IP发生变化,虚拟机的IP也会相应的改变。如果IP变化对虚拟机有影响的环境,此模式慎用!
2、 Host-only主机模式:
在一些网络环境中,由于安全,调试等原因,可能需要将虚拟机和真实的物理环境隔离开来,那么此模式是首选。此模式下的所有虚拟机可以相互访问,但和真实的物理网络环境是隔离开的,此模式下的IP信息,是由host-only虚拟网络的DHCP服务器来分配的。当然了,此模式由于是和真实环境隔离开的,如果要上网,可能比较麻烦,小编还没试过,有兴趣的朋友可以自己研究下。
3、 NAT模式:
使用NAT模式,就是让虚拟机借助NAT(网络地址转换)功能,通过物理机来访问网络。此模式下,如果物理机可以访问互联网,那么虚拟机也可以,默认情况下和物理机同一网络中的其它机器不能访问虚拟机,但虚拟机可以访问其它物理机。
上面说默认情况下,物理机的其它机器不能访问NAT模式下的虚拟机,但是通过端口转发功能可以实现物理机和NAT模式下的虚拟机的相互通信功能。
4、分享一个实际案例来帮助读者理解Nat模式的设置
这是在一次做实验的时候遇到的问题,在vmware上搭建了两个虚拟机,一个win-server,一个是win-7,均使用的是net模式,加上我物理本机win-10,现在总结一下这三个系统之间的网络环境,还有,为了保证测试正常,请务必将物理机和虚拟机的系统的防火墙关闭。
Win-10通过虚拟网卡将IP分发给win-server和win-7,两个虚拟机处在同一个网段,具体由vmware虚拟网卡的设置来决定(ip、子网掩码、网关、起始ip、终止ip),我们可以在在VMware Workstation中选择“编辑”—“虚拟网络编辑器”,即可以进行设置:
从图中可以看到,我们设置的网段就是192.168.4.0/24了,再点到旁边的DHCP
就可以看到设置的起始ip和终止ip(这里设置的是192.168.4.128—192.168.4.254)。也就是说,使用Nat模式创建的虚拟机的ip都由这个DHCP来分配并且在这个ip范围内。在win-7系统里面查看一下ip,确实是这样的。
另外我们的物理机是通过VMnet8这块虚拟网卡来与虚拟机操作系统进行通信的,可以在宿主机的网络设置中看到这块虚拟网卡:
这里我们就能发现,在vmware中设置虚拟网卡的子网ip就是192.168.4.0/24这个网段,网卡的ip为192.168.4.1,我们可以把它认为是:当我们的物理主机与虚拟机操作系统进行通信时,是使用192.168.4.1这个源地址向虚拟机的操作系统发送数据包的。那么我们试试在虚拟机操作系统上去ping这个地址,发现通信是没有问题的:
那么查看虚拟机操作系统ip的时候,可以看到有个网关192.168.4.2,这个地址是在哪儿呢?
其实就是我们虚拟机net服务器的虚拟网卡地址,当然这个地址我们只能通过在虚拟机操作系统看到。
通过我们上面提及的地址和网段信息,对于虚拟机操作系统的网络通信就可以有很清楚的认识了:
a. 当虚拟机与物理主机进行通信时:其实就是192.168.4.0/24与192.168.1.0/24这两个之间的通信。
b. 当虚拟机与外网进行通信时:虚拟机要先把数据发到虚拟机的网关192.168.4.2,然后再通过net服务器,把地址转换到192.168.1.0/24这个网段(这一步我认为正是net模式的精髓所在),然后再与外网进行通信,这一流程是不通过虚拟网卡的。
c. 如果把vmnet8这块虚拟网卡禁用了,还是不影响虚拟机访问互联网的,只是物理主机与虚拟机的通信会受到影响。
需要补充的是,对于虚拟机提供的DHCP服务和net服务,其实在我们安装vmware的物理主机上是可以看到这些服务的,这样一来也可以和我们的理论有一定的对应。