DNS配置错误怎么排查:从本机到域名解析逐层定位

更新于 2026-10-25 · sansui-r.com

简答:DNS配置错误先区分本机、域名解析和网站服务三层:检查IP与DNS地址,再用nslookup或dig对比递归DNS和权威DNS,最后核对域名状态、NS。

定义:DNS配置错误,是设备、路由器、递归DNS、权威DNS或域名记录之间的配置不一致,导致域名无法解析、解析到错误地址或解析正常但网页仍打不开。

先用错误提示判断故障层级

如果你看到“无法访问此网站”“DNS服务器未响应”“DNS_PROBE_FINISHED_NXDOMAIN”,不要先反复修改DNS地址。先判断问题发生在本机、域名解析,还是网站服务本身。DNS只负责把域名转换成IP;解析已经得到IP后,后续还要经过TCP、TLS和HTTP,网页返回403、404或500时,通常不再是单纯的DNS配置错误。

DNS配置错误现象速查
现象优先判断第一步验证处理方向
DNS服务器未响应、请求超时本机到DNS服务器的连接、路由器或DNS服务ipconfig /all、ping DNS服务器IP、nslookup example.com检查网关、DNS地址、防火墙,以及UDP/TCP 53端口
NXDOMAIN、找不到域名域名不存在、NS委派错误、域名处于暂停解析状态,或负缓存nslookup example.com,再查询权威DNS核对域名状态、NS、权威区域和负缓存
解析不生效,仍返回旧IP缓存、TTL、查询的DNS线路或记录未保存分别查询本地DNS、其他递归DNS和权威DNS先确认权威DNS是否已更新,再处理本地和路由器缓存
解析得到IP但网页打不开TCP、TLS、HTTP、IPv4/IPv6或网站服务curl -I https://example.com或浏览器开发者工具转到连接、证书、HTTP状态码和服务器日志排查
只有一个设备打不开设备DNS、hosts、浏览器或本地网络用另一台设备或移动数据对照检查设备DNS、缓存、hosts和浏览器设置

Microsoft的客户端排查顺序也是先看IP配置、网关和DNS服务器,再用nslookup验证名称解析;如果缓存中显示“名称不存在”,可清理客户端DNS缓存。可参考对 DNS 客户端进行故障排除。

第一步:核对设备、路由器和系统DNS地址

先不要修改域名解析后台。假如所有网站都打不开,或者同一个Wi-Fi下多台设备同时提示DNS错误,优先检查本地网络。假如只有一个域名异常,而其他网站正常,再进入域名状态和权威DNS检查。

Windows

  1. 打开“命令提示符”,执行ipconfig /all。
  2. 确认当前网卡有有效的IPv4地址、子网掩码、默认网关,并记录“DNS服务器”地址。
  3. 执行ping 你的DNS服务器IP。不通时,先检查设备与路由器的连接;但要注意,禁用ICMP时,ping失败不等于DNS服务一定不可用。
  4. 执行nslookup example.com,观察使用的是哪个DNS服务器,以及是否返回地址。
  5. 确认是缓存问题后,再执行ipconfig /flushdns,然后重新查询。

macOS

打开“苹果菜单”→“系统设置”→“网络”→选择当前网络服务→“详细信息”→“DNS”,检查DNS服务器列表和搜索域。菜单名称以当前界面为准。Apple官方路径见在 Mac 上更改 DNS 设置。

终端中可执行scutil --dns查看系统当前使用的解析器;如果系统使用systemd-resolved的Linux环境,可执行resolvectl status查看DNS服务器,必要时用sudo resolvectl flush-caches清理缓存。

Android和iPhone

Android设备可打开“设置”→“网络和互联网”→“专用DNS”,选择“自动”或核对“专用DNS提供商主机名”。不同品牌菜单可能放在“连接与共享”“更多连接设置”中,优先在设置中搜索“专用DNS”。Google官方说明指出,专用DNS只保护DNS问答,不能替代其他网络安全措施,详见控制专用 DNS 和其他网络设置。

iPhone可打开“设置”→“无线局域网”→当前网络右侧的“信息”按钮→“配置DNS”,检查是否使用了手动DNS。若设备只在某个Wi-Fi下异常,可先点“忽略此网络”,重新加入后再测试;菜单名称以当前界面为准。Apple的无线局域网设置说明见在 iPhone 上管理无线局域网设置。

家用路由器

登录路由器管理页面,依次检查“网络设置”“WAN口设置”或“LAN/DHCP设置”中的DNS服务器。确认没有把一个不可访问的地址填写为首选DNS,也没有在多台设备上同时启用DHCP。Apple的路由器设置文档提醒,同一网络通常只应有一个DHCP服务器,多个DHCP服务器可能造成地址冲突;可参考Wi-Fi 路由器和接入点的推荐设置。

第二步:用nslookup或dig区分递归DNS与权威DNS

本机查询成功,不代表域名的权威数据正确;本机查询失败,也不一定代表域名记录不存在。要缩短判断路径,至少做“当前DNS”和“权威DNS”两次查询。

Windows命令

  1. 查询当前配置的DNS:nslookup example.com。
  2. 查询指定DNS:nslookup example.com DNS服务器IP。
  3. 查询NS记录:nslookup -type=NS example.com。
  4. 分别检查记录类型:nslookup -type=A example.com、nslookup -type=AAAA example.com、nslookup -type=CNAME www.example.com、nslookup -type=MX example.com、nslookup -type=TXT example.com。

macOS或Linux命令

  1. 查询A记录:dig example.com A。
  2. 指定DNS服务器:dig @DNS服务器IP example.com A。
  3. 查询NS:dig example.com NS。
  4. 查询权威服务器返回的结果:先从NS结果得到权威DNS地址,再执行dig @权威DNSIP example.com A。
  5. 需要检查委派链时执行dig +trace example.com A。

不要把dig ... +noall +answer +authority当作唯一排查命令:+noall会隐藏头部状态,读者可能看不到status: NXDOMAIN或status: NOERROR。排查时先使用完整输出的dig @DNS服务器IP example.com A,再根据ANSWER和AUTHORITY判断结果。Microsoft的DNS查询文档说明,A、AAAA、SOA等记录类型对应不同查询目标,DNS服务器还可能通过递归查询其他服务器取得答案,详见Windows 和 Windows Server 中的 DNS 查询和查找。

递归DNS与权威DNS对比
对比项当前配置的递归DNS域名权威DNS
查询方式nslookup example.com或dig example.com Adig @权威DNSIP example.com A
返回旧IP可能仍在缓存中如果也返回旧IP,优先检查权威区域或记录保存状态
返回NXDOMAIN可能是负缓存,也可能是上游真实返回权威DNS返回NXDOMAIN时,检查域名、区域和记录名称
权威DNS正常、递归DNS异常缓存、线路、递归服务或委派更新路径存在差异不宜继续修改权威记录,先换查询位置复核

第三步:核对域名状态、NS和记录内容

如果多个DNS服务器都无法得到正确结果,进入域名管理和权威区域检查。先看域名是否过期、是否被暂停解析、是否完成必要的注册信息流程,再确认当前生效的NS是否就是你正在修改的那组DNS服务器。ICANN说明,clientHold会使域名不在DNS中激活,因此域名不会解析;可参考ICANN EPP Status Codes。

常见DNS记录配置核对
记录作用常见核对点
A把主机名指向IPv4地址记录值是否为正确IPv4;根域名和www是否分别配置
AAAA把主机名指向IPv6地址IPv6地址是否真实可达;IPv6失败而IPv4正常时单独测试
CNAME把别名指向另一个域名目标域名是否存在;同一主机名是否又配置了冲突记录
MX指定邮件接收服务器目标通常应是域名;邮件故障不能只检查A记录
TXT保存验证或策略文本主机名、引号、空格和多条记录是否按要求填写

根域名通常在控制台中用“@”表示,www则是独立的子域名。例如,给根域名配置A记录不一定会自动生成www记录;应分别查询example.com和www.example.com。如果控制台使用完整域名填写主机记录,要避免把后缀重复写成类似www.example.com.example.com的名称。

修改记录后,不要只看管理后台的“已保存”。应直接查询权威DNS确认结果,再查询本地DNS和其他网络位置。TTL只决定缓存答案可保留多久,不能证明记录已经写入权威区域。RFC 2308明确规定,NXDOMAIN或没有所请求类型数据的NODATA响应会携带SOA信息用于负缓存;SOA的MINIMUM在现代语义下主要用于负响应缓存时间,不是整个区域记录的默认TTL,详见RFC 2308:DNS负缓存。

第四步:处理缓存、IPv6和后续网站错误

当权威DNS已经返回新记录,而本机仍返回旧结果时,按“浏览器→系统→路由器→递归DNS”顺序清理或更换查询位置,不要连续修改多项配置。Windows可执行ipconfig /flushdns;Linux使用systemd-resolved时可执行sudo resolvectl flush-caches;浏览器则先关闭页面、重新打开隐私窗口或重启浏览器。DNS缓存清理后仍旧不一致,应再次使用dig @权威DNSIP 域名 A与dig @当前DNSIP 域名 A对比。

如果A记录正常、AAAA记录也存在,但部分设备打不开,分别测试IPv4和IPv6。Windows可用ping -4 example.com和ping -6 example.com做基础对照;Linux或macOS可用curl -4 -I https://example.com和curl -6 -I https://example.com。只有IPv6失败时,重点检查AAAA记录、路由器IPv6、终端IPv6地址和上游链路,不要直接删除A记录。

如果DNS查询已经得到正确IP,但浏览器显示403、404、500、证书错误或连接超时,说明排查重点应转移到HTTP、TLS、TCP或网站服务器。此时可执行curl -I https://example.com查看HTTP响应头;若连不上,再根据“拒绝、重置、超时、TLS警报”的差异继续分层定位。本站的五层连接路线:DNS、TCP、TLS、HTTP、浏览器可用于继续排查。

一条可复现的最短排查路径

一条可复现的最短排查路径
  1. 确认范围:记录是所有网站异常、一个域名异常,还是只有一台设备异常。
  2. 检查本机:Windows执行ipconfig /all,macOS/Linux查看当前DNS和网关,手机检查当前Wi-Fi与DNS设置。
  3. 测试当前DNS:执行nslookup example.com或dig example.com A,记录服务器地址、状态和返回IP。
  4. 查询NS:执行nslookup -type=NS example.com或dig example.com NS,确认委派是否指向正在维护的权威DNS。
  5. 查询权威结果:执行dig @权威DNSIP example.com A,同时检查AAAA、CNAME、MX或TXT等实际需要的记录类型。
  6. 检查域名状态:确认域名没有过期、暂停解析或其他注册状态限制。
  7. 处理缓存:清理系统和浏览器缓存,必要时重启路由器,再从另一台设备或另一条网络复核。
  8. 转交下一层:解析得到正确IP后,使用curl -I、IPv4/IPv6对照和浏览器开发者工具继续检查TCP、TLS与HTTP。

如果你担心改错配置,先保存原DNS地址、网关、NS和现有记录,再一次只改一个变量。修改后保留查询输出,便于判断是记录内容变化、缓存过期,还是网络位置不同造成的结果差异。

相关排查入口

如果本文确认问题不止是DNS配置错误,可以按下面顺序继续:先看域名解析失败:区分超时、无记录与错误地址,再看DNS缓存异常:按浏览器、系统、路由器顺序清理;若记录已经修改但仍返回旧IP,可进入DNS记录修改后仍解析旧IP或NXDOMAIN。如果只有浏览器打不开而命令查询正常,再检查系统代理与浏览器代理冲突排查。

常见问题

DNS配置错误和网站服务器故障有什么区别?

DNS配置错误通常表现为域名无法解析、NXDOMAIN、DNS超时或返回错误IP;服务器故障则可能已经解析出正确IP,但出现连接超时、证书错误、403、404或500。先用nslookup或dig确认是否有正确IP,再决定排查DNS还是网站服务。

为什么DNS记录改了,电脑上还是旧IP?

先查询权威DNS。如果权威DNS已经返回新IP,旧结果通常来自本机、路由器或递归DNS缓存;如果权威DNS仍返回旧IP,应检查是否改错了NS、区域或主机记录。TTL影响缓存保留时间,但不存在所有DNS修改都固定等待同样时长的规则。

NXDOMAIN是不是一定说明域名不存在?

不一定。NXDOMAIN表示查询的名称不存在,但用户看到的结果也可能来自负缓存、错误的NS委派、域名暂停解析或查询名称拼写错误。应直接查询权威DNS,并检查域名状态和SOA负缓存信息。

A记录、AAAA记录和CNAME记录怎么选?

A记录用于IPv4地址,AAAA记录用于IPv6地址,CNAME用于把别名指向另一个域名。根域名和www通常需要分别核对;如果配置了AAAA但IPv6链路不可用,可能出现IPv4正常而部分设备访问失败的现象。

手机显示DNS异常,应该改哪里?

先确认是所有Wi-Fi都异常,还是某一个无线网络异常。Android可在“设置→网络和互联网→专用DNS”检查;iPhone可在“设置→无线局域网→信息→配置DNS”检查。不同品牌和系统版本菜单可能不同,以当前界面为准。

清理DNS缓存后仍然打不开网站怎么办?

重新查询A和AAAA记录,确认返回IP是否正确;如果解析正常,再用curl或浏览器检查TCP、TLS和HTTP。若只有浏览器异常,继续排查hosts、浏览器扩展、代理设置和Service Worker,而不是继续修改DNS记录。

相关阅读

参考资料

  1. 对 DNS 客户端进行故障排除
  2. 对 DNS 服务器进行故障排除
  3. Windows 和 Windows Server 中的 DNS 查询和查找
  4. 在 Mac 上更改 DNS 设置
  5. 在 iPhone 上管理无线局域网设置
  6. 控制专用 DNS 和其他网络设置
  7. Wi-Fi 路由器和接入点的推荐设置
  8. ICANN EPP Status Codes
  9. RFC 2308:DNS负缓存