无法访问公网或 DNS 解析失败怎么办?
当云服务器无法访问公网或DNS 解析失败时,可能会导致无法 ping
外网、不能下载软件或无法访问网站。下面是详细的排查和解决方法:
莱卡云
🧭 一、问题现象说明
问题 | 表现 |
---|---|
无法访问公网 | ping 8.8.8.8 不通 |
DNS 解析失败 | ping www.baidu.com 报错“Temporary failure in name resolution” |
✅ 二、解决步骤
🔹1. 检查网络连接(公网是否可达)
测试 IP 是否可访问:
bash
复制编辑
ping 8.8.8.8
-
不通说明公网网络不通,继续往下排查。
🔹2. 检查默认网关和路由
查看当前路由配置:
ip route
正常输出应包含:
default via 192.168.X.1 dev eth0
如果缺失默认网关,则添加:
sudo ip route add default via <你的网关IP> dev eth0
🔹3. 检查 DNS 配置
查看 DNS 设置:
cat /etc/resolv.conf
确保包含如下类似内容:
nameserver 8.8.8.8 nameserver 223.5.5.5 # 阿里DNS(可选)
如果文件为空或配置错误,修改方式如下:
sudo bash -c 'echo "nameserver 8.8.8.8" > /etc/resolv.conf'
⚠️ 注意:某些系统(如 Ubuntu)会被
systemd-resolved
管理,修改需在/etc/systemd/resolved.conf
🔹4. 检查防火墙设置(iptables/UFW)是否限制了出站访问
对于 iptables:
sudo iptables -L -v -n
-
查看是否有 REJECT 或 DROP 的出站规则。
对于 UFW(如果启用了):
sudo ufw status
-
若默认拒绝出站连接,可使用:
sudo ufw default allow outgoing
🔹5. 云服务商网络设置问题
登录云服务器控制台,确认:
-
是否绑定了公网 IP
-
网络是否正常(VPC、子网配置是否正确)
-
出站带宽是否设置为 0(无公网访问权限)
🛠️ 常见修复命令(快速版)
# 修复 resolv.conf echo "nameserver 8.8.8.8" | sudo tee /etc/resolv.conf # 添加默认网关(示例 IP,请根据实际修改) sudo ip route add default via 192.168.0.1 dev eth0 # 重启网络(适用于 Debian/Ubuntu) sudo systemctl restart networking # 或适用于 CentOS/RHEL sudo systemctl restart network
🧩 附:如果你使用的是国内云服务商(如腾讯云、阿里云)
-
需要绑定公网 IP + 设置公网出站带宽
-
检查是否配置了NAT 网关或启用了SNAT
-
某些低配轻量云主机默认没有公网出站权限,需要后台开启