前言:确保VMware上的虚拟机能够与物理主机通信,这是使虚拟机能够上外网的一大关键。可以这样说,解决虚拟机不能ping通物理机就是解决虚拟机不能上外网等的问题 。
问题描述:打开虚拟机终端,ping主机的任一网卡,都出现“Destination Host Unreachable”的情况;打开主机的CMD,ping虚拟机的IP地址,出现“请求超时”的情况。
问题分析:出现此类问题我们首先要查看虚拟机所使用的网卡和自己设置的IP地址是否在同一网段,接下来修改虚拟机的IP地址和掩码与其所使用的虚拟网卡在同一局域网下即可。
一、 查看和修改虚拟机所使用的网卡及网络信息
1. 双击编辑虚拟机设置,将网络适配器改成NAT模式,我这里已经是NAT模式了所以不用改,如下图所示。
2. 点击【编辑】=>【虚拟网络编辑器】,查看NAT模式下的网卡子网地址,如下图所示。
3. NAT模式下的虚拟网卡还可以当做DHCP服务器给同一局域网的主机分发IP(不必多言,做过ENSP网络实验的应该知道),为了让IP地址不必多次更改,我们手动指定虚拟机的IP。为了不影响IP的唯一性,我们在DHCP下保留一部分IP用于手动指定,如下表所示。
IP地址范围 | 手动指定/自动分发 |
192.168.80.3~192.168.80.127 | 手动指定 |
192.168.80.128~192.168.80.254 | 自动分发 |
双击NAT模式的虚拟网卡(我这里是VMnet8,以后都说VMnet8),点击更改设置,再次点击VMnet8,网卡的网络信息为192.168.80.0/24,勾选“将主机虚拟适配器连接到此网络”和“使用本地DHCP服务将IP地址分配给虚拟机”,如下图所示。
点击【DHCP设置】,设置192.168.80.0/24网段内的192.168.80.128~192.168.80.254IP地址用于自动分发,默认租用时间和最长租用时间自行设置,修改成功后按【确定】即可,如下图所示。
点击【NAT设置】,设置VMnet8网段网关,选择192.168.80.2~192.168.80.127其中一个即可(192.168.80.1这个网络地址一般被物理主机设为VMnet 8的IP,所以不使用,下面步骤会展示),我这里设置的网关是192.168.80.2,如下图所示。
4. 一路按【确定】即可。
5. 同时按住键盘上的【Win】+【R】,在弹出的弹窗中输入cmd,在主机终端输入ipconfig命令查看VMnet8的网络信息,如下图所示。
二、 在虚拟机终端查看和修改虚拟机的网络信息
1. 打开CentOS7.9终端,输入ifconfig命令,查看ens33网卡的网络信息(如果虚拟机只有一块虚拟网卡,CentOS虚拟机一般默认此网卡名为ens33),如下图所示。
此虚拟机网卡的IP是192.168.23.114,掩码为255.255.255.0,很显然与VMnet 8 不在同一网段,所以不能正常通信。因此,我们得修改ens33网卡的网络信息,确保其IP与VMnet 8 在同一网段。
2. 切换终端用户为root,转到ens33网卡文件目录下。
使用命令切换root用户: su root
转到ens33网卡配置文件目录下的使用命令为: cd /etc/sysconfig/network-scripts/,如下图所示。
3. 输入命令:vi ifcfg-ens33 ,修改ifcfg-ens33文件,设置ens33网卡的IP地址为192.168.80.114,掩码为24位,网关为192.168.80.2,DNS为8.8.8.8,如下所示。
//修改文件内容
ONBOOT="yes" //此项最好改为yes
IPADDR="192.168.80.114" //IP地址为192.168.80.114
PREFIX="24" //子网掩码为24位
GATEWAYA="192.168.80.2" //网关为192.168.80.2
DNS1="8.8.8.8" //DNS为"8.8.8.8"
4.此时IP地址还没生效,如下图所示。
5. 重启网络服务,使之生效,如下所示。
输入命令: systemctl restart network
后输入:ifconfig (如果暂时没出来修改后的网络信息,可以重复输入这两条命令)
三、 结果展示
1. 此时理论上来说,双方都可以ping通。物理主机ping虚拟机:ping 192.168.80.114,如下所示:
虚拟机ping物理主机的VMnet 8网卡:ping 192.168.80.1,如下所示:
2. 给物理机连上网络,虚拟机也可向外网通信,如下所示。
3. 还可以使用远程连接工具连接
四、 可能出现的问题
可能会出现物理主机ping虚拟机ping得通,但是虚拟机ping物理机ping不通的情况,这时候关闭物理主机的防火墙,即可解决。如下图所示,在专用网络设置和公用网络设置栏选择“关闭Winsows Defender防火墙”,然后点击【确定】即可。
按照我的步骤做下来,双方不能通信的问题基本解决。如有误,欢迎评论区或者私信指正,谢谢观看~