主要排查点
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
文件内的值,将文件内的值改为0
0
: 表示允许临时使用 ping 服务1
: 表示禁止使用 ping 服务
ping 操作永久配置设置
/etc/sysctl.conf 中增加一行1
2// 0表示允许,1表示禁止(同上)
net.ipv4.icmp_echo_ignore_all=0生效ping 服务
1
sysctl -p
补充:对于 ping 不通的问题,基本是因为上述几种情况(对于翻墙问题,需要搭梯子,这里不做讨论),其中路由与防火墙属于最常见的原因。