域名无法解析或解析超时,本质是系统未能将域名转换为ip地址;需按“网络连通性→dns解析→本地配置→直连测试→dig诊断”顺序逐层验证,不跳步、不假设。

域名无法解析或解析超时,本质是系统没能把域名转成 IP 地址。排查要从“是不是 DNS 问题”开始,一层层验证,不跳步、不假设。
先确认是不是 DNS 层的问题
别一上来就查 DNS 配置,先做最直接的判断:
- 执行 ping -c 3 8.8.8.8:能通 → 网络层正常;不通 → 先查网卡、路由、防火墙
- 执行 ping -c 3 baidu.com:返回 unknown host → 锁定 DNS 解析失败;返回超时或 Network is unreachable → 不是 DNS 问题
- 再试 curl -I http://180.101.49.12(百度某真实 IP):能拿到 HTTP 头 → 进一步确认故障在 DNS 环节
检查本地 DNS 配置是否生效
/etc/resolv.conf 是起点,但它常被动态覆盖,不能只看内容:
Linux系统管理专家,覆盖12大模块:用户权限、SSH、存储、网络、systemd、防火墙、日志监控、备份恢复、TLS证书、Ansible、容器、IaC。提供配置、验证、加固、监控、备份、自动化、故障排查、回滚闭环。关键词:useradd、sudo、sshd_config、chmod、SEL...
- 运行 cat /etc/resolv.conf:确认有 nameserver 行,且地址合理(如 114.114.114.114 或内网 DNS)
- 运行 ls -l /etc/resolv.conf:若显示为软链接(如指向 /run/systemd/resolve/stub-resolv.conf),说明由 systemd-resolved 管理,需改用 resolvectl status 查真实配置
- 检查 /etc/nsswitch.conf 中的 hosts: 行:必须包含 dns,例如 hosts: files dns,否则系统压根不会查 DNS
绕过缓存和本地配置,直连测试 DNS 服务
用 dig 强制指定服务器,结果最真实:
- dig @114.114.114.114 example.com +short:能返回 IP → 本地到该 DNS 路径通畅,DNS 服务可用
- dig @10.1.1.10 example.local A(换成你配置的内网 DNS):无响应或超时 → 内网 DNS 宕了,或中间网络/防火墙阻断 UDP 53 端口
- 对比多个 DNS:dig @8.8.8.8 example.com A 和 dig @1.1.1.1 example.com A 结果不一致 → 某处缓存未更新或 DNS 劫持可能
看懂 dig 输出,快速识别故障类型
重点关注三处:
- status 字段:NOERROR 表示查询成功但答案为空(记录没配);NXDOMAIN 表示域名不存在或已过期;SERVFAIL 表示权威服务器异常或转发链断裂
- SERVER 字段:显示实际响应的 DNS 地址,确认没被重定向到错误服务器
- ANSWER SECTION:有 IP 才算真正解析成功;空且 status 是 NOERROR,说明 A 记录确实没设置










