在 CentOS 上“无法访问域名”(如 ping www.baidu.com 失败、curl 域名报错)通常是网络配置或 DNS 解析问题。下面按常见原因逐一说明,并给出排查方法。
cat /etc/resolv.conf
正常应类似:
nameserver 8.8.8.8
nameserver 114.114.114.114
如果没有 nameserver,或 IP 不正确,就会无法解析域名。
echo "nameserver 8.8.8.8" > /etc/resolv.conf
如果是 NetworkManager 管理网络:
nmcli con mod eth0 ipv4.dns "8.8.8.8 114.114.114.114"
nmcli con up eth0
(eth0 换成你的网卡名)
如果你用的是静态 IP:
cat /etc/sysconfig/network-scripts/ifcfg-eth0
确保有:
BOOTPROTO=static
DNS1=8.8.8.8
DNS2=114.114.114.114
ONBOOT=yes
然后重启网络:
systemctl restart network
ping 8.8.8.8
systemctl status firewalld
临时关闭测试:
systemctl stop firewalld
getenforce
CentOS 8 有时使用:
systemctl status systemd-resolved
若启用,可:
systemctl enable --now systemd-resolved
cat /etc/hosts
错误示例:
127.0.0.1 www.baidu.com
ip addr
ip route
cat /etc/resolv.conf
ping 8.8.8.8
ping www.baidu.com
nslookup www.baidu.com
如果你愿意,可以把下面信息发我,我可以精准判断:
cat /etc/redhat-release)ip addr 输出cat /etc/resolv.conf我可以一步一步帮你定位。