Ubuntu 服务器无法 ping 通网站域名的问题解决备忘 ——通常与网络配置有关(DNS解析)
政安晨的个人主页:政安晨
欢迎 👍点赞✍评论⭐收藏
希望政安晨的博客能够对您有所裨益,如有不足之处,欢迎在评论区提出指正!
目录
一、基础排查:确认网络接口状态
二、检查路由配置(网关是否正确)
三、排查 DNS 解析问题
四、检查防火墙是否阻止 ICMP(ping)
五、进一步测试:排除域名解析外的问题
总结步骤
我们在调试AI服务框架的过程中,难免遇到点网络问题,在这个问题中,服务器无法Ping通如www.baidu.com等网站,排查及解决办法如下:
一、基础排查:确认网络接口状态
首先检查服务器是否正确获取了 IP 地址,网络接口是否启用。
查看网络接口状态
执行命令:
ip addr # 或 ifconfig(需安装net-tools)
- 确认目标网卡(如
eth0
、ens33
)是否有inet
(IPv4 地址),且状态为UP
(如<BROADCAST,MULTICAST,UP,LOWER_UP>
)。
-
若接口未启用 / 无 IP
- 临时启用接口:
sudo ip link set eth0 up
(替换eth0
为实际网卡名) - 手动获取 IP(DHCP):
sudo dhclient eth0
- 或手动配置静态 IP(编辑
/etc/netplan/*.yaml
,具体参考 Ubuntu 版本的网络配置文档)。
- 临时启用接口:
二、检查路由配置(网关是否正确)
若网络接口正常但无法访问外部,可能是默认网关未配置。
查看路由表
执行命令:
ip route # 或 route -n
- 检查是否有
default via x.x.x.x
(默认网关),x.x.x.x
应为网关 IP(如路由器 / 网关地址)。
若缺少默认网关
临时添加网关(替换192.168.1.1
为实际网关 IP):
sudo ip route add default via 192.168.1.1 dev eth0
- 永久生效需配置网络文件(如
netplan
或/etc/network/interfaces
,依 Ubuntu 版本而定)。
三、排查 DNS 解析问题
ping www.baidu.com
需要先通过 DNS 解析域名到 IP,若解析失败会直接不通。
测试 DNS 解析
执行命令:
nslookup www.baidu.com # 或 dig www.baidu.com
- 若显示
** server can't find www.baidu.com: NXDOMAIN
,说明 DNS 解析失败。
配置正确的 DNS 服务器
编辑 DNS 配置文件(Ubuntu 20.04 + 通常用systemd-resolved
,旧版本可能直接编辑/etc/resolv.conf
):
- 临时生效:直接修改
/etc/resolv.conf
(注意:部分系统可能被systemd-resolved
覆盖):
sudo vim /etc/resolv.conf
添加国内常用 DNS(如):
nameserver 114.114.114.114 # 国内DNS
nameserver 8.8.8.8 # Google DNS(备用)
永久生效(Ubuntu 20.04 + 用 netplan):
编辑/etc/netplan/00-installer-config.yaml
(文件名可能不同),在ethernets
下添加:
ethernets:eth0: # 替换为实际网卡名nameservers:addresses: [114.114.114.114, 8.8.8.8]
应用配置:sudo netplan apply
。
四、检查防火墙是否阻止 ICMP(ping)
Ubuntu 的防火墙(如ufw
或iptables
)可能默认禁止 ICMP 协议(ping 依赖 ICMP)。
查看防火墙状态
- 若用
ufw
:
sudo ufw status
若用iptables
:
sudo iptables -L | grep ICMP
允许 ICMP(ping)通过
ufw
允许 ping:
sudo ufw allow in proto icmp --icmp-type echo-request # 允许入站ping
sudo ufw allow out proto icmp --icmp-type echo-reply # 允许出站ping回复
iptables
允许 ping(临时生效):
sudo iptables -A INPUT -p icmp --icmp-type echo-request -j ACCEPT
sudo iptables -A OUTPUT -p icmp --icmp-type echo-reply -j ACCEPT
- 永久生效需保存 iptables 规则(如
iptables-save > /etc/iptables/rules.v4
,依系统而定)。
五、进一步测试:排除域名解析外的问题
若上述步骤无效,测试直接 ping 百度的 IP(绕开 DNS),判断是否为网络连通性问题:
ping 百度 IP
百度的 IP 之一为180.101.50.242
(可通过其他设备查询):
ping 180.101.50.242
- 若能 ping 通:确认是 DNS 解析问题(回到步骤三)。
- 若仍不通:可能是网关、路由或上游网络(如机房 / 运营商)限制,需联系网络管理员。
总结步骤
- 确认网络接口启用且有 IP;
- 检查默认网关是否配置;
- 测试 DNS 解析并配置正确 DNS;
- 检查防火墙是否允许 ICMP;
- 直接 ping IP 排查网络连通性。
按以上步骤逐步排查,通常能解决大部分 ping 不通的问题。