问题描述
- 环境:centos7,静态ip
- VM版本:VMware Workstation 16 pro,网络为nat映射模式
- 问题:
- 一开始,虚拟机可以ping通宿主机,也可以ping通,也可以ping通外网(如
ping www.baidu.com
) - 再后来,宿主机可以ping通虚拟机,虚拟机无法ping通外网(如
ping www.baidu.com
ping 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外网
也可以看到正常
至此,问题解决