本文参考《Vmware虚拟机三种网络模式详解》、《网络原理,以及对VMware Workstation虚拟网络VMnet0、VMnet1、VMnet8的图解》
VMware提供了3种网络工作模式:Bridged(桥接模式),NAT(网络地址装换模式),Host-Only(仅主机模式)。
VMware管理了3个特殊的虚拟交换机:VMnet0(用于桥接模式),VMnet8(用于NAT模式),VMnet1(用于仅主机模式)。打开VMware虚拟机,在顶部选项栏-[编辑]-[虚拟网络编辑器]-[更改设置]后即可看到3个虚拟交换机,如图1-1.1所示。
图1-1.1 在虚拟网络编辑器中查看3个特殊的虚拟交换机
VMware安装完成后会在宿主机上生成两块虚拟网卡,这两块网卡与虚拟机管理的两个虚拟交换机相连。如图1-2.1所示。
图 1-2.1 宿主机的网络环境
如果将宿主机上的这两块虚拟网卡卸载了,可通过VMware的顶部选项栏-[编辑]-[虚拟网络编辑器]-[还原默认设置],重新将虚拟网卡还原。
桥接模式:把宿主机的网卡通过虚拟网桥与VMware管理的虚拟交换机VMnet0相连,所有网络连接设置为桥接模式(如图2-1.1所示)的虚拟机都会连接到虚拟交换机VMnet0上,网络结构如图2-1.2所示。这样所有的虚拟机与宿主机以及与宿主机在同一个局域网下的主机之间都是可以相互访问的,其网络结构可逻辑理解为如图2-1.3所示的网络结构。在桥接模式下,虚拟机IP地址需要与宿主机在同一个网段,如果需要联网,则虚拟机的网关和DNS也需要与宿主机被桥接的网卡一致。
图2-1.1 网络连接设置为桥接模式
图2-1.2 桥接模式网络结构图
图 2-1.3 桥接模式逻辑网络结构图
注意:
1.进入VMware主页,选中安装完成的虚拟机。如图2-1.4所示。
图2-1.4 VMware主页
2.在开启系统之前,点击[编辑虚拟机设置]来设置虚拟机网卡的网络连接模式。如图2-1.5所示。
图2-1.5 虚拟机设置页
3.点击[网络适配器],选择[网络连接]为[桥接模式(B)]。如图2-1.6所示。
图2-1.6 设置网络连接为桥接模式
4.在开启虚拟机之前,先确认宿主机联网的网卡的IP地址、子网掩码、默认网关和DNS服务器信息。同时按住Win+R键-输入cmd-回车-输入ipconfig /all-回车。如图2-1.7所示。
图2-1.7 宿主机的网络信息
5.开启虚拟机进入系统,查看虚拟机的网卡接口的配置文件。命令为:
cd /etc/sysconfig/network-scripts ls
如图2-1.8所示。
图2-1.8 查看网卡接口配置文件
网卡接口的配置文件是以ifcfg开头的,ifcfg-lo为回环接口,不必关注。只需关注ifcfg-ens33。
6.编辑ifcfg-ens33文件,命令为:
vi ifcfg-ens33
初始内容如图2-1.9所示。
图2-1.9 ifcfg-ens33文件初始内容
7.修改ifcfg-ens33文件。如图2-1.10所示。
图2-1.10 ifcfg-ens33文件修改后的内容
注意:
8.编辑完成后,保存退出,重启虚拟机网卡,重启命令为
systemctl restart network.service
9.使用ping命令分ping宿主机的IP 192.168.1.6,测试虚拟机和宿主机是否联通,如图2-1.11所示;ping www.baidu.con,测试虚拟机和公网是否联通,如图2-1.12所示。
图2-1.11 测试虚拟机和宿主机是否联通
图2-1.12 测试虚拟机和公网是否联通
由图2-1.11和2-1.12可知,虚拟机通宿主机以及公网。
1.虚拟机ping不通宿主机。
①可能是宿主机防火墙的入站规则中未启用虚拟机监控(回显请求-ICMPv4-In)规则。通过[Windows安全中心]-[防火墙和网络保护]-[高级设置]-[入站规则] 找到虚拟机监控(回显请求-ICMPv4-In)规则,点击[右键]-[启用规则]。如图2-1.13所示。
图2-1.13 Windows防火墙入站规则
2.ping不通公网。
①检查[VMware主页]-[顶部标签栏]-[编辑]-[虚拟网络编辑器]中的虚拟交换机VMnet0桥接到的宿主机网卡是否为宿主机联网的网卡。比如我现在宿主机联网的网卡为Intel(R) Wireless-AC 9560 160MHz(如图2-1.14所示),那么虚拟交换机VMnet0就应该桥接到这个网卡上(或者为[自动])。如图2-1.15所示。如果选中的是[自动],那么在排查问题的过程中可将其修改为具体的网卡。
图2-1.14 宿主机联网的网卡
图2-1.15 虚拟交换机桥接到宿主机联网的网卡上
②使用桥接模式虚拟出来的虚拟机,像是宿主机所在局域网内的一台真实机器,它会占用真实的IP资源,并受此局域网络的管理规则约束。虚拟机ping不通公网可能就是因为虚拟机的IP可能需要通过你公司网络管理员的审批或者使用相关的网络访问软件后才可使用。
3.其他问题
可参考《设置虚拟机桥接模式以及解决桥接模式上不了网以及ping不通主机的问题》。
如2-1中所提到的:使用桥接模式虚拟出来的虚拟机,像是宿主机所在局域网内的一台真实机器,它会占用真实的IP资源,并受此局域网络的管理规则约束。如果你网络中的IP资源紧缺,或者是使用新的IP需要通过层层审批以满足管理规则,那么NAT模式就是更合适的选择,这种模式可以避免这些问题带来的困扰。
NAT模式借助虚拟NAT设备和虚拟DHCP服务器,使得虚拟机可以联网,其网络结构如图2-2.1所示。
图2-2.1 地址转换模式网络结构图
注意:
1.进入VMware主页,选中安装完成的虚拟机。如图2-2.2所示。
图2-2.2 VMware主页
2.查看NAT模式下的NAT设置和DHCP设置的参数。如图2-2.3所示。
图2-2.3 NAT设置和DHCP设置
3.在开启系统之前,点击[编辑虚拟机设置]来设置虚拟机网卡的网络连接模式,选择网络连接模式为[NAT模式(N)]。如图2-2.4所示。
图2-2.4 虚拟机设置页
4.开启虚拟机进入系统,查看虚拟机的网卡接口的配置文件。命令为:
cd /etc/sysconfig/network-scripts ls
如图2-2.5所示。
图2-2.5 查看网卡接口配置文件
网卡接口的配置文件是以ifcfg开头的,ifcfg-lo为回环接口,不必关注。只需关注ifcfg-ens33。
5.编辑ifcfg-ens33文件,命令为:
vi ifcfg-ens33
初始内容如图2-2.6所示。
图2-2.6 ifcfg-ens33文件初始内容
6.修改ifcfg-ens33文件。如图2-2.7所示。
图2-2.7 ifcfg-ens33的设置
注意:
图2-2.8 BOOTPROTO设置为dhcp
7.编辑完成后,保存退出,重启虚拟机网卡,重启命令为
systemctl restart network.service
8.使用ping命令分ping宿主机的IP 192.168.1.6,测试虚拟机和宿主机是否联通,如图2-2.9所示;ping www.baidu.con,测试虚拟机和公网是否联通,如图2-2.10所示。
图2-2.9 测试虚拟机和宿主机是否联通
图2-2.10 测试虚拟机和公网是否联通
由图2-2.9和图2-2.10可知,NAT模式下的虚拟机可以联通宿主机和公网的。
9.在图2-2.1下注意的第3点中提到过宿主机的虚拟网卡VMware Network Adapter VMnet8仅仅是用来宿主机和虚拟机通信的,如果禁用宿主机的这张虚拟网卡,不影响虚拟机访问公网、虚拟机访问宿主机,只影响宿主机访问虚拟机。网络逻辑图如图2-2.11所示。
图2-2.11 禁用宿主机虚拟网卡前后的网络逻辑图
在未禁用宿主机虚拟网卡VMware Network Adapter VMnet8时:
在禁用宿主机虚拟网卡VMware Network Adapter VMnet8后:
Host-Only模式其实就是NAT模式去掉了虚拟NAT设备,使虚拟机无法与公网进行通行,而宿主机使用虚拟网卡VMware Network Adapter VMnet1连接VMnet1虚拟交换机来与虚拟机进行通信。Host-Only模式将虚拟机与公网隔开,使虚拟机成为一个独立的系统,只能与宿主机相互通讯。其网络结构如图2-3.1所示。
图2-3.1 仅主机模式网络结构图
注意:
1.进入VMware主页,选中安装完成的虚拟机。如图2-3.2所示。
图2-3.2 VMware主页
2.查看Host-Only模式下的DHCP设置的参数。如图2-3.3所示。
3.在开启系统之前,点击[编辑虚拟机设置]来设置虚拟机网卡的网络连接模式,选择网络连接模式为[仅主机模式(H)]。如图2-3.4所示。
图2-3.4 虚拟机设置页
4.开启虚拟机进入系统,查看虚拟机的网卡接口的配置文件。命令为:
cd /etc/sysconfig/network-scripts ls
如图2-3.5所示。
图2-3.5 查看网卡接口配置文件
网卡接口的配置文件是以ifcfg开头的,ifcfg-lo为回环接口,不必关注。只需关注ifcfg-ens33。
5.编辑ifcfg-ens33文件,命令为:
vi ifcfg-ens33
初始内容如图2-3.6所示。
图2-3.6 ifcfg-ens33文件初始内容
6.修改ifcfg-ens33文件。如图2-3.7所示。
图2-3.7 ifcfg-ens33的设置
注意:
图2-3.8 BOOTPROTO设置为dhcp
7.编辑完成后,保存退出,重启虚拟机网卡,重启命令为
systemctl restart network.service
8.使用ping命令ping宿主机的IP 192.168.1.6,测试虚拟机和宿主机是否联通,如图2-3.9所示;ping www.baidu.con,测试虚拟机和公网是否联通,如图2-3.10所示。
图2-3.9 测试虚拟机和宿主机是否联通
图2-3.10 测试虚拟机和宿主机是否联通
由图2-3.9和图2-3.10可知,Host-Only模式下的虚拟机不可以联通宿主机和公网。
9.在宿主机上使用ping命令ping虚拟机IP 192.168.203.129,测试宿主机是否能联通虚拟机。如图2-3.11所示。
图2-3.11 宿主机ping虚拟机
由图2-3.11可知宿主机能联通虚拟机。
通过共享网卡使虚拟机可以连通公网。
1.共享宿主机上连入公网的网卡。如图2-3.12所示。
图2-3.12 共享宿主机连网的网卡
2.设置了共享网卡后,宿主机的虚拟网卡VMware Network Adapter VMnet1的IP将会被设置为一个固定的IP(192.168.137.1)。如图2-3.13所示。
图2-3.13 宿主机虚拟网卡VMware Network Adapter VMnet1的IP
3.共享宿主机的网卡就相当于让宿主机的网卡充当虚拟机网络的网关和虚拟NAT设备,所以需要修改VMware管理的虚拟交换机VMnet1的DHCP的子网和起始、结束IP地址。如图2-3.14所示。
图2-3.14 修改虚拟交换机VMnet1的DHCP设置
修改之前的DHCP设置如图2-3.15所示。
图2-3.15 修改前的DHCP设置
4.重新配置虚拟机的网卡ifcfg-ens33。如图2-3.16所示。
图2-3.16 ifcfg-ens33的设置
注意:
图2-3.17 BOOTPROTO设置为dhcp
5.编辑完成后,保存退出,重启虚拟机网卡,重启命令为
systemctl restart network.service
6.使用ping命令ping宿主机的IP 192.168.1.6,测试虚拟机和宿主机是否联通,如图2-3.9所示;ping www.baidu.con,测试虚拟机和公网是否联通,如图2-3.10所示。
图2-3.18 测试虚拟机和宿主机是否联通
图2-3.19 测试虚拟机和宿主机是否联通
由图2-3.18和图2-3.19可知,Host-Only模式下共享了网卡后的虚拟机可以联通宿主机和公网。