温馨提示×

centos为何无法访问域名

小樊
46
2026-09-24 01:49:10
栏目: 云计算

在 CentOS 上“无法访问域名”(如 ping www.baidu.com 失败、curl 域名报错)通常是网络配置或 DNS 解析问题。下面按常见原因逐一说明,并给出排查方法。


一、最常见原因:DNS 配置不正确

1. 检查 DNS 是否配置

cat /etc/resolv.conf

正常应类似:

nameserver 8.8.8.8
nameserver 114.114.114.114

如果没有 nameserver,或 IP 不正确,就会无法解析域名。

2. 临时修复(重启可能失效)

echo "nameserver 8.8.8.8" > /etc/resolv.conf

3. 永久修复(CentOS 7/8)

如果是 NetworkManager 管理网络:

nmcli con mod eth0 ipv4.dns "8.8.8.8 114.114.114.114"
nmcli con up eth0

(eth0 换成你的网卡名)


二、网卡未配置 DNS(静态 IP 常见)

如果你用的是静态 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

三、网络本身不通(不是 DNS 问题)

1. 测试 IP 是否通

ping 8.8.8.8
  • 能 ping IP,但不能 ping 域名 → DNS 问题
  • IP 也 ping 不通 → 网络/路由问题

四、防火墙或安全策略限制

1. 防火墙

systemctl status firewalld

临时关闭测试:

systemctl stop firewalld

2. SELinux(一般不影响 DNS)

getenforce

五、DNS 服务被禁用(systemd-resolved)

CentOS 8 有时使用:

systemctl status systemd-resolved

若启用,可:

systemctl enable --now systemd-resolved

六、/etc/hosts 被错误配置

cat /etc/hosts

错误示例:

127.0.0.1 www.baidu.com

七、虚拟机常见原因

  • NAT 模式未开启
  • 桥接网卡未选对
  • 宿主机防火墙拦截

八、快速排查命令总结

ip addr
ip route
cat /etc/resolv.conf
ping 8.8.8.8
ping www.baidu.com
nslookup www.baidu.com

如果你愿意,可以把下面信息发我,我可以精准判断:

  1. CentOS 版本(cat /etc/redhat-release)
  2. ip addr 输出
  3. cat /etc/resolv.conf
  4. 报错信息(ping / curl 的完整输出)

我可以一步一步帮你定位。

0 踩