在入门使用VMware搭建Linux的环境时,对于网络的设置时不可避免的,因为linux搭建完成后,或多或少的回去访问外部资源或者被外部资源访问。这时候设置的虚拟机网络连接方式就显得尤为重要,所以在这里整理了一下虚拟机的三种连接方式,以供后续配置的时候可以参考。
一、NAT模式
这是最简单的一种网络连接模式,此模式下虚拟机和主机可以不在同一个网段上,但是虚拟机还是能够正常的访问网络。值得注意的是,在VMware中使用这种方式会默认创建一个新的网络适配器——VMware Virtual Ethernet Adapter for VMnet8,其对应的IP地址也会默认在虚拟机所在网段上。
有一点需要注意的是默认创建的VMware Virtual Ethernet Adapter for VMnet8,并不是虚拟机访问外部网络的关键,它只是作为虚拟机和主机之间通信的一个接口。访问外部网络的关键是这种方式会创建一个虚拟交换机VMnet8,虚拟交换机会将默认创建的网卡与虚拟NAT设备、虚拟DHCP服务器上。
这里值得提一点的是,在VMware和VirtualBox中的NAT是有所不同的,不同之处就是虚拟机和主机之间的访问。在VMware中虚拟机和主机之间是能够相互访问的,因为有了第一张图的VMware Virtual Ethernet Adapter for VMnet8,所以他们是可以访问的,如果禁用,则主机不能访问到虚拟机,但是虚拟机仍然能够正常访问网络,正如上面所说的,这个虚拟网卡并不是虚拟机访问外网的关键。而在VirtualBox中会发现虚拟机和宿主机之间是无法通信的,因为VirtualBox并没有提供类似VMware的vmnet8虚拟网卡,而只有一个NAT服务器。所以下方表格与网上的其他表格会有所不一致,下方的知识针对的VMware。
NAT | |
虚拟机==》主机 | √ |
主机==》虚拟机 | √ |
虚拟机==》其他主机 | √ |
其他主机==》虚拟机 | × |
二、桥接模式
在这种模式下,VMare中的虚拟机与网络中真实的主机相差不大,两者之间的IP都是在同一个网段,因此相互之间是可以正常Ping的通,每一个虚拟机都有一个网络中独立的IP地址。之所以能够这样是因为此模式下会通过主机网卡与虚拟机网络搭建了一个桥梁(虚拟网桥),虚拟机才能直接访问网络。
虚拟网桥会自动转发主机网卡上所接受到的所有广播和组播信息,以及目标为虚拟机的单播。所以每一个虚拟机的虚拟网卡都会通过虚拟交换机VMnet0接受到由路由器发出的DHCP信息以及路由信息更新。
此外桥接模式是通过虚拟网桥将主机上的网卡与虚拟交换机Vmnet0连接在一起,而虚拟机上的虚拟网卡 (并不是VMware Network AdapterVMnet1和VMware Network Adapter VMnet8)都连接在虚拟交换机vmnet0上,所以桥接模式的虚拟机IP必须与主机在同一网段且子网掩码网关与DNS也要与主机网卡一致。
桥接 | ||
虚拟机==》主机 | √ | |
主机==》虚拟机 | √ | |
虚拟机==》其他主机 | √ | |
其他主机==》虚拟机 | √ |
三、仅主机模式
仅主机模式其实就是NAT模式去除了虚拟NAT设备,然后使用VMware Network Adapter VMnet1虚拟网卡连接VMnet1虚拟交换机来与虚拟机通信的,此模式下将虚拟机与外网隔开,使得虚拟机成为一个独立的系统,只与主机相互通讯。
如果要想在仅主机模式下访问网络,只能将联网的主机网卡共享给VMware Network Adapter VMnet1。
仅主机 | |
虚拟机==》主机 | √ |
主机==》虚拟机 | √ |
虚拟机==》其他主机 | × |
其他主机==》虚拟机 | × |
四、总结
对于三种方式可以用一下的例子做个最后的总结:
NAT模式:公司的员工连接公司的WIFI,然后通过公用的一个外网IP地址进行上网。
桥接模式:他跟主机在一个网段,有自己的独立ip,相当于单独一台主机,跟主机处于同一级别,相当于同一层楼两家公司的其中一家。
仅主机模式:这个就像公司的外网断掉,公司的员工通过局域网的方式,相互之间通信、资源访问。但是就是不能访问外网。