用VMWare搭建服务器集群不能上外网的三种模式下对应解决办法
前言
决心要花费宝贵时间写下这篇心得,是因为从昨天晚上到今天上午被这个VMWare模拟搭建的服务器集群不能上外网的问题搞得很心烦,最后决定跟它杠上了!上午还通过远程连接得到了“空白”同学的帮助,在此表示十分感谢。虽然到今天中午的时候经过帮助能上外网了,但是自己感觉还是没有彻底弄懂,对三种模式下的网络结构还是一知半解,上网查了很多资料,但是发现网上很多文章有许多误导。于是自己又从VMWare的三种模式出发,查资料,最后终于算是捋顺了。
写下这篇文章,一是让自己的逻辑得到锻炼,二是希望能帮到部分同学。如果是网络结构方面的大神该文可以略过。
主要内容
VMWare搭建虚拟机有三种模式:桥接模式、NAT模式和仅主机模式。在三种模式下,都有对应的上外网的解决办法(并且能够与本地主机通信)。
打开vmware虚拟机,我们可以在选项栏的“编辑”下的“虚拟网络编辑器”中看到VMnet0(桥接模式)、VMnet1(仅主机模式)、VMnet8(NAT模式),那么这些都是有什么作用呢?其实,我们现在看到的VMnet0表示的是用于桥接模式下的虚拟交换机;VMnet1表示的是用于仅主机模式下的虚拟交换机;VMnet8表示的是用于NAT模式下的虚拟交换机。
同时,在主机上对应的有VMware Network Adapter VMnet1和VMware Network Adapter VMnet8两块虚拟网卡,它们分别作用于仅主机模式与NAT模式下。在“网络连接”中我们可以看到这两块虚拟网卡,如果将这两块卸载了,可以在vmware的“编辑”下的“虚拟网络编辑器”中点击“还原默认设置”,可重新将虚拟网卡还原。
1、NAT模式
刚刚我们说到,如果你的网络ip资源紧缺,但是你又希望你的虚拟机能够联网,这时候NAT模式是最好的选择。NAT模式借助虚拟NAT设备和虚拟DHCP服务器,使得虚拟机可以联网。其网络结构如下图所示:
在NAT模式中,主机网卡直接与虚拟NAT设备相连,然后虚拟NAT设备与虚拟DHCP服务器一起连接在虚拟交换机VMnet8上,这样就实现了虚拟机联网。那么我们会觉得很奇怪,为什么需要虚拟网卡VMware Network Adapter VMnet8呢?原来我们的VMware Network Adapter VMnet8虚拟网卡主要是为了实现主机与虚拟机之间的通信。在之后的设置步骤中,我们可以加以验证。
1)打开VMWare,“编辑”-->“虚拟网络编辑器”,设置NAT参数和DHCP参数。
更改网络连接模式为NAT,这里若虚拟机已经启动,直接更改,不需重启。
进入系统后,设置自己的IP、掩码、网关、DNS。
若系统开启了交互界面:
若系统没有开启交互界面,可以编辑网卡配置文件:
命令行模式下重启网卡:/etc/init.d/network restart
ping外网,可以通信。
为了验证上外网不需要VMnet8这个网卡,在物理主机系统下将该网卡禁用
再次测试,发现依然能上外网。
那VMnet8虚拟网卡是用来干什么用的呢?VMnet8虚拟网卡主要是为了实现主机与虚拟机之间的通信。
在VMnet8网卡禁用状态下,物理主机不能与虚拟机进行通信
当启用后,可以:
注意:在设置NAT的网关IP时,不能与v8的网卡ip相同,否则不能通信。
2、仅主机模式
Host-Only模式其实就是NAT模式去除了虚拟NAT设备,然后使用VMware Network Adapter VMnet1虚拟网卡连接VMnet1虚拟交换机来与虚拟机通信的,Host-Only模式将虚拟机与外网隔开,使得虚拟机成为一个独立的系统,只与主机相互通讯。其网络结构如下图所示:
打开虚拟网络编辑器,设置DHCP
将虚拟机的网络模式设置为仅主机模式,进入linux系统,设置ip、掩码、网关、DNS(若linux没有配置交互模式,可以用命令行,同理NAT)
将物理主机的网卡共享给虚拟网卡V1
测试,虚拟机能与外网通信:
3、桥接模式
桥接模式就是将主机网卡与虚拟机虚拟的网卡利用虚拟网桥进行通信。在桥接的作用下,类似于把物理主机虚拟为一个交换机,所有桥接设置的虚拟机连接到这个交换机的一个接口上,物理主机也同样插在这个交换机当中,所以所有桥接下的网卡与网卡都是交换模式的,相互可以访问而不干扰。
这种模式下,虚拟机的ip必须与物理主机的网卡的ip在一个网段里,且子网掩码、网关、DNS须与主机保持一致。所以该模式下,虚拟机不能自己定义网段。桥接模式下网络结构图如下所示。
下面讲解具体步骤:
查看自己物理主机的IP信息
将虚拟机模式设置为桥接模式。
3)进入虚拟机系统,将ip,子网掩码,默认网关,DNS改成与物理主机一致。
ping外网,发现可以通信。但经测试,发现这种方法可能会影响自己物理主机上网的稳定性(自己的见解)。
说明:文章理论部分摘自https://www.linuxidc.com/Linux/2016-09/135521.htm,特此说明,同时在此表示感谢。