域名解析失败(ERR_NAME_NOT_RESOLVED)意味着浏览器无法将域名转换为IP地址,网站自然无法访问。本文介绍DNS问题的排查方法和正确的DNS记录配置。
# 基本查询
nslookup yourdomain.com
# 指定DNS服务器查询
nslookup yourdomain.com 8.8.8.8 # Google DNS
nslookup yourdomain.com 1.1.1.1 # Cloudflare DNS
nslookup yourdomain.com 223.5.5.5 # 阿里DNS
# 查询特定记录类型
nslookup -type=MX yourdomain.com
nslookup -type=TXT yourdomain.com
nslookup -type=NS yourdomain.com
# 完整查询
dig yourdomain.com
# 查询A记录
dig yourdomain.com A
# 查询NS记录(看域名使用的DNS服务器)
dig yourdomain.com NS
# 追踪解析路径(最有用的排查命令)
dig +trace yourdomain.com
# 查询特定DNS服务器
dig @8.8.8.8 yourdomain.com
dnschecker.org - 全球DNS传播检查mxtoolbox.com - DNS/MX/SPF综合检查whatsmydns.net - 全球DNS解析结果对比新注册的域名或修改了NS后未生效:
# 检查NS记录
dig yourdomain.com NS
# 如果返回空,说明NS未设置
# 到域名注册商处设置Nameserver
# Cloudflare: ns1.cloudflare.com / ns2.cloudflare.com
# Namecheap默认DNS: dns1.namecheap.com / dns2.namecheap.com
NS修改后全球生效通常需要数小时到48小时。
# 检查A记录
dig yourdomain.com A +short
# 如果返回空或错误IP,到DNS管理面板添加/修改A记录
# 类型: A
# 名称: @ (根域名) 或 www
# 值: 你的VPS IP地址
# TTL: 自动 或 300
# Windows清除DNS缓存
ipconfig /flushdns
# macOS清除DNS缓存
sudo dscacheutil -flushcache; sudo killall -HUP mDNSResponder
# Linux清除DNS缓存
systemd-resolve --flush-caches
# 或
resolvectl flush-caches
域名过期后解析会失效。检查域名状态:
# 查看域名WHOIS信息
whois yourdomain.com
# 或使用在线工具 who.is 查询
# 关注:Expiry Date、Status等字段
如果域名状态为clientHold或serverHold,联系注册商解决。
常用DNS记录类型说明:
| 记录类型 | 用途 | 示例值 | 说明 |
|---|---|---|---|
| A | 域名指向IPv4 | 1.2.3.4 | 最基础的记录 |
| AAAA | 域名指向IPv6 | 2001:db8::1 | IPv6地址 |
| CNAME | 域名别名 | example.com | 不能与其他记录共存于根域名 |
| MX | 邮件接收 | mail.yourdomain.com | 需设置优先级 |
| TXT | 文本记录 | v=spf1 mx ~all | SPF/DKIM/验证用 |
| NS | DNS服务器 | ns1.cloudflare.com | 在注册商处设置 |
# 基本网站配置
@ A 你的VPS_IP # 根域名
www A 你的VPS_IP # www子域名
# 或者用CNAME
www CNAME yourdomain.com # www指向根域名
# 邮件配置
@ MX mail.yourdomain.com (优先级10)
mail A 你的VPS_IP
# SPF记录(防邮件伪造)
@ TXT v=spf1 mx ip4:你的IP ~all
VPS自身的DNS解析也可能出问题:
# 检查VPS的DNS配置
cat /etc/resolv.conf
# 如果DNS服务器有问题,修改为公共DNS
echo "nameserver 8.8.8.8" > /etc/resolv.conf
echo "nameserver 1.1.1.1" >> /etc/resolv.conf
# 测试VPS的DNS解析
dig google.com @127.0.0.1
使用Cloudflare时的常见DNS问题:
Tip: DNS问题通常修改后需要等待生效。如果急需验证,使用 dig @8.8.8.8 查询Google DNS是否已更新。更多教程请查看新手教程。