主要排查点
ping 不通主要从以下几个方面进行排查:
- DNS 是否配置
- 防火墙是否开启状态
- 网卡是否配置正确
- 路由是否配置正确
- 是否禁用了 ping
接下来,将对上述五点进行排查
DNS 是否配置
- 首先 ping 一下公网的 url(例如:ping www.baidu.com),判断是都能否 ping 通,若能ping 通说明 DNS 应该没问题
- 查看 /etc/resolv.conf, 文件中的 nameserer即为 DNS 服务器地址,若配置类似于“8.8.8.8、114.114.114.114”这种地址, 则说明 DNS 没有问题
防火墙是否关闭
- 使用 systemctl status firewalld查看防火墙状态,若处于开启状态,则关闭防火墙。如下为防火墙相关的操作命令:如果开启防火墙之后还是不行,则查看网卡配置1 
 2
 3
 4
 5
 6
 7
 8
 9
 10
 11
 12
 13
 14
 15
 16
 17
 18启动: 
 systemctl start firewalld
 查状态:
 systemctl status firewalld
 停止:
 systemctl disable firewalld
 禁用:
 systemctl stop firewalld
 在开机时启用防火墙:
 systemctl enable firewalld.service
 在开机时禁用防火墙:
 systemctl disable firewalld.service
 查看是否开机启动:
 systemctl is-enabled firewalld.service
 查看已启动的服务列表:
 systemctl list-unit-files|grep enabled
 查看启动失败的服务列表:
 systemctl --failed
网卡是否配置正确
- 进入 /etc/sysconfig/network-scripts/,此文件夹下以ifcfg-开头文件即网卡配置文件,找到以太网的配置文件,并且查看 ip 地址是和网关处于同一网段,示例图如下: 
 若配置符合上述要求,但是仍然无法 ping 通网络,再进行路由配置的检查
路由是否配置正确
- 查看路由表1 
 2
 3
 4
 5
 6
 7
 8
 9
 10route -n 
 Kernel IP routing table
 Destination Gateway Genmask Flags Metric Ref Use Iface
 0.0.0.0 10.18.13.254 0.0.0.0 UG 100 0 0 ens192
 10.18.13.0 0.0.0.0 255.255.255.0 U 0 0 0 br-0f6782a6360a
 10.18.13.0 0.0.0.0 255.255.255.0 U 100 0 0 ens192
 10.42.0.0 0.0.0.0 255.255.0.0 U 0 0 0 docker0
 169.254.169.250 0.0.0.0 255.255.255.255 UH 0 0 0 docker0
 172.17.0.0 0.0.0.0 255.255.0.0 U 0 0 0 docker0
 192.168.122.0 0.0.0.0 255.255.255.0 U 0 0 0 virbr0
- 删除异常路由
 由于我是 ping 10.18.13 网段出现失败,所以删除 10.18.13 网段的路由本人在这一步,解决了 ping 不通的问题1 route del -net 10.18.13.0 netmask 255.255.255.0 
查看是否禁用了 ping 服务
- ping 操作临时配置检查
 查看/proc/sys/net/ipv4/icmp_echo_ignore_all文件内的值,将文件内的值改为00: 表示允许临时使用 ping 服务1: 表示禁止使用 ping 服务
- ping 操作永久配置设置 
 /etc/sysctl.conf 中增加一行- 1 
 2- // 0表示允许,1表示禁止(同上) 
 net.ipv4.icmp_echo_ignore_all=0
- 生效ping 服务 - 1 - sysctl -p 
补充:对于 ping 不通的问题,基本是因为上述几种情况(对于翻墙问题,需要搭梯子,这里不做讨论),其中路由与防火墙属于最常见的原因。
 
         
              