背景:
win10安装虚拟机CentOS7,为了用MobaXterm访问静态IP不用每次系统分配IP,登录时还要换IP就设置了静态的IP
问题描述
前几天还用的好好的,百度也可以ping通,但是今天突然ping百度失败了,提示网络不可达。折腾了好久都不行,命令用了好几次都不行。
systemctl restart network
原因分析:
- 首先想到了网卡的静态IP配置文件被改,遂打开文件排查
vim /etc/sysconfig/network-scripts/ifcfg-ens33
文件内容如下:
TYPE=Ethernet
PROXY_METHOD=none
BROWSER_ONLY=no
BOOTPROTO=static
DEFROUTE=yes
IPV4_FAILURE_FATAL=no
IPV6INIT=yes
IPV6_AUTOCONF=yes
IPV6_DEFROUTE=yes
IPV6_FAILURE_FATAL=no
IPV6_ADDR_GEN_MODE=stable-privacy
NAME=ens33
UUID=1e30765a-f8f4-42a3-b8a7-bfaa0dbbc57f
DEVICE=ens33
ONBOOT=yes
#ip地址
IPADDR=192.168.88.188
#网关
GATWAY=192.168.88.2
#DNS
DNS1=192.168.88.2
#子网掩码
NETMASK=255.255.255.0
NM_CONTROLLED=no
确实没有异常
重启服务再ping 百度,依旧不行
systemctl restart network
2.然后查看了虚拟机网络设置
都是正常的,特意还取消勾选了这里
重启服务再ping 百度,依旧不行
systemctl restart network
这时想到了其他设置,请继续往下看,一般情况的机器按上面的设置都不会有问题。
解决方案:
- 查看受网络管理器托管的设备
nmcli dev status
以太网ens33未托管说明依旧正常。
如果你的机器这里已连接可以如下修改,在ifcfg-ens33文件最后添加NM_CONTROLLED = no;取消托管:
vim /etc/sysconfig/network-scripts/ifcfg-ens33
NM_CONTROLLED=no
至此,CentOS7可以Ping通网关,但Ping不过外面的主机.也就相当于二层路由器.这是因为CentOS7没有默认路由的原因
2. 检查路由
route -n
- 查看DNS
vim /etc/resolv.conf
# Generated by NetworkManager
nameserver 192.168.88.2
如果你的设备没有,请按格式添加!
- 添加永久静态路由
vim /etc/sysconfig/network-scripts/route-ens33
打开路由文件,如果没有会新建文件
192.168.88.0/24 via 192.168.88.2
0.0.0.0/0 via 192.168.88.2
按我上述的填写,添加永久静态路由
虚拟机网关192.168.237.2是电脑虚拟出来的,能ping通网关(192.168.237.2)就相当于能与真实电脑通讯,理论上真实电脑能上网,虚拟机就能上网。
那为什么虚拟机不能上网呢?因为虚拟机只是电脑,他接收到网络数据包不知道该发给谁,这时咱门添加路由,指定发给网关(192.168.88.2
),也就是发给外面的真实电脑,真实电脑会通过自己的外网解析,把外网数据返回来。
- 测试网络
更多推荐
【Linux】设置centos7静态IP以及解决CentOS7使用静态IP地址不能上网问题
发布评论