问题描述
- 环境:centos7,静态ip
- VM版本:VMware Workstation 16 pro,网络为nat映射模式
- 问题: - 一开始,虚拟机可以ping通宿主机,也可以ping通,也可以ping通外网(如 ping www.baidu.com)
- 再后来,宿主机可以ping通虚拟机,虚拟机无法ping通外网(如 ping www.baidu.comping 110.242.68.66),但可以ping通网关
 
- 一开始,虚拟机可以ping通宿主机,也可以ping通,也可以ping通外网(如 
解决方法
首先查看VM网络配置
进入编辑-虚拟网络编辑器
 
 点击NAT设置
 
 可以看到网卡名为VMnet1
- 记录网关IP
  
这里网关ip为192.168.188.2
 子网ip为192.168.188.0
 子网掩码为255.255.255.0
查看虚拟机网络配置
-  查看网卡 ip addr
  
 这里的ip地址为192.168.188.131
-  查看网关 ip route
  
 可以看到网关是对的,为192.168.188.2,如果不对则需要进行下一步修改VM网络配置的操作
-  ping 网关 ping 192.168.188.2(这里填写上一步得到的网关)

 可以看到能ping通
- 查看DNS配置
 sudo vim /etc/NetworkManager/NetworkManager.conf
  
 看到dns=none,如果不是,则修改成上面步骤
查看dns nameserversudo vim /etc/resolv.conf
 
 可以看到nameserver地址和网关地址一致,如果不是则改成网关地址
如果上面两步dns配置有修改,则使用 sudo systemctl restart network 重启网络服务
修改虚拟机网络配置(如果查看网络配置没问题则跳过)
sudo vim /etc/sysconfig/network-scripts/ifcfg-ens33(ens33改为自己的网卡)
 
 BOOTPROTO=static
 ONBOOT=yes
 IPADDR=自己的ip地址,需要在自己的子网内
 NETMASK是VM上看的子网掩码
 GATEWAY是VM上看的网关地址
如果有异常,请修改成正确的
修改后使用 sudo systemctl restart network 重启网络服务
宿主机虚拟机互ping
- 宿主机ping虚拟机
  
第一个ip192.168.188.1是网卡的ip地址,能ping通
 第二个ip192.168.188.2 是网关地址,ping不通就有问题了
 第三个ip 192.168.188.131 是虚拟机地址,ping不通,因为网关ping不通,虚拟机自然也ping不通了
- 虚拟机ping宿主机
  
 第一个ip192.168.31.136是宿主机地址,可以再宿主机上通过cmd 输入ipconfig查看,ping不通
 第二个ip192.168.188.2是网关地址,能ping通,说明VM网关配置是正常的
 第三个ip192.168.188.1是网卡ip,不能ping通,返回了目的主机不可达
目的主机不可达是啥原因?使用上古搜索引擎寻找一下答案
 
 其实这里的12,通过上面的ping的情况来看,都被排除了,只剩下3和4了
修改网卡配置
我是win10用户,进入控制面板(可以左下角搜索进入)- 网络和Internet - 网络和共享中心 - 更改适配器设置进入下面界面
 
VM的自定义网卡为VMnet1这个网卡,可以在第一步看到
 右键VMnet1这个网卡,点击属性

找到Internet协议版本4后点击它,再点击属性

 好家伙,默认网关没配。。。。
这里ip地址改成同一子网下其他地址就行,不要跟网关和虚拟机ip地址冲突了,这里配成192.168.188.1
 子网掩码和VM上网络配置子网掩码相同
 默认网关为VM上的网关地址
 DNS可以配一下两个:
 114.114.114.114
 8.8.8.8
 如下图所示
 
-  禁用网卡再启用,再ping一下虚拟机地址 
  
 可以看到正常
-  虚拟机ping外网 
  
也可以看到正常
至此,问题解决
参考资料
- Left_Zzzz 的个人博客qwq - VM centos 环境安装笔记
- CSDN - 虚拟机能访问互联网,能ping通主机,主机ping不通虚拟机,虚拟机访问不了局域网内网址