CentOS 7 DNS Ping 不通问题分析与解决
在 CentOS 7 系统中,遇到 DNS ping 不通的情况时,可能涉及多个方面的因素,以下是对该问题的详细分析、排查步骤以及相应的解决方法。
可能的原因
序号 | 原因分类 | 具体描述 |
---|---|---|
1 | 网络连接问题 | 网线未插好或损坏 网卡驱动故障 交换机端口故障 |
2 | 防火墙设置 | 阻止了 ICMP 协议(ping 协议)的传输 SELinux 安全策略限制 |
3 | 路由配置错误 | 缺少默认路由 路由表指向错误 |
4 | DNS 配置问题 | /etc/resolv.conf 文件配置错误或为空DNS 服务器地址不可用 |
5 | 系统配置错误 | 网络接口未激活或配置错误 相关服务未启动(如 NetworkManager) |
排查与解决步骤
(一)检查网络连接
-
物理连接检查:
- 确保网线已正确插入服务器和交换机的对应端口。
- 尝试更换网线,排除网线故障。
- 检查交换机指示灯状态,确认端口正常工作。
-
网络接口状态查看:
ip addr show
- 确认网络接口(如
ens33
)已获取到正确的 IP 地址。 - 若未获取到 IP,检查
/etc/sysconfig/networkscripts/ifcfgens33
文件配置是否正确。
- 确认网络接口(如
(二)检查防火墙设置
-
查看防火墙状态:
firewallcmd state
-
允许 ICMP 协议:
firewallcmd permanent addicmpblock=echorequest firewallcmd reload
-
临时关闭防火墙进行测试(完成后记得恢复):
systemctl stop firewalld
-
检查 SELinux 状态:
sestatus
- 若 SELinux 处于 enforcing 模式,可暂时设置为 permissive 模式测试:
setenforce 0
- 若 SELinux 处于 enforcing 模式,可暂时设置为 permissive 模式测试:
(三)检查路由配置
-
查看路由表:
route n
- 确认是否存在默认路由(
0.0.0
或default
)。 - 若缺少默认路由,添加临时路由进行测试:
ip route add default via <网关IP>
- 确认是否存在默认路由(
-
添加永久路由: 编辑
/etc/sysconfig/staticroutes
文件,添加如下内容:any net 0.0.0.0/0 gw <网关IP>
然后重启网络服务:
systemctl restart network
(四)检查 DNS 配置
-
查看
/etc/resolv.conf
文件:cat /etc/resolv.conf
- 确保文件中有有效的 DNS 服务器地址,
nameserver 8.8.8.8 nameserver 8.8.4.4
- 确保文件中有有效的 DNS 服务器地址,
-
修改 DNS 配置: 编辑
/etc/sysconfig/networkscripts/ifcfgens33
文件,添加或修改 DNS 配置:DNS1=114.114.114.114
保存后重启网络服务:
systemctl restart network
-
测试 DNS 解析: 使用
nslookup
或dig
命令测试域名解析是否正常:nslookup www.baidu.com
(五)检查系统配置
-
激活网络接口: 使用
nmcli
或ifup
命令激活网络接口:nmcli con up id ens33
或
ifup ens33
-
检查 NetworkManager 服务状态:
systemctl status NetworkManager
- 若服务未运行,启动服务:
systemctl start NetworkManager
- 若服务未运行,启动服务:
相关问题与解答
问题1:如何确定 CentOS 7 系统中哪个网络接口是活动的?
解答:可以使用 ip addr show
命令查看所有网络接口的状态,带有 inet
后面跟着 IP 地址的接口即为活动的网络接口。ens33
接口显示类似 inet 192.168.1.100/24
的信息,则表示该接口已激活并获取到 IP 地址。
问题2:如果防火墙和 SELinux 都已放行 ICMP,但依然无法 ping 通外网,该怎么办?
解答:此时应重点检查路由配置和 DNS 设置,使用 route n
命令确认默认路由是否正确指向网关,如果没有默认路由,需添加正确的默认路由,检查 /etc/resolv.conf
文件中的 DNS 服务器地址是否有效,可以尝试更换为公共 DNS(如 8.8.8.8)进行测试,确保网络接口已正确激活并获取到 IP 地址。