文章资讯 / 常见问题 / 域名解析不生效排查:nslookup查询DNS状态,TTL未刷新等24小时再检查

域名解析不生效排查:nslookup查询DNS状态,TTL未刷新等24小时再检查

发布时间: 分类:常见问题 作者:188mi 来源:互联网 阅读:115

域名解析不生效,先别急着重配:用 nslookup 确认权威 DNS 是否已返回新记录,再看 TTL 还剩多少。多数情况是本地或运营商缓存没到期,等一个 TTL 周期(常见几十分钟到约 24 小时)再复查即可。

解析不生效,先分清是哪一层卡住了

排查的第一步不是改记录,而是定位。域名解析链路有三段:权威 DNS(你域名 NS 指向的那台服务器)、递归 DNS(运营商或公共解析服务器)、本地缓存(操作系统、浏览器、路由器)。三段里任何一段没刷新,访问端看到的都是旧结果。

定位方法是绕过递归和本地缓存,直接问权威:

nslookup www.example.com ns1.yourdns.com

(把 ns1.yourdns.com 换成 nslookup -type=NS example.com 返回的那台 NS。)返回新 IP,说明记录已写对,问题在缓存传播;返回旧 IP,说明改动没保存,或者主机记录、线路、记录类型选错了;返回 NXDOMAIN,说明这条记录根本不存在。

nslookup 的结果怎么读?

先看本机默认解析链路:

nslookup www.example.com

输出里的 Server 与 Address 两行,是你实际询问的递归服务器地址。它给的是缓存答案,标注 Non-authoritative answer 属于正常现象,不是报错。

再换两个不同来源的公共 DNS 交叉对比:

nslookup www.example.com 8.8.8.8
nslookup www.example.com 223.5.5.5

几种返回对应的问题:

  • 两家都给旧 IP,权威那边已是新 IP:缓存未到期,等待即可。
  • 只有一家给旧 IP:该解析器刷新策略滞后,通常几小时内收敛。
  • NXDOMAIN:记录不存在。常见原因是主机记录填成了 www.example.com 而不是 www。
  • SERVFAIL、REFUSED 或查询超时:NS 配置错误、权威服务器不可达,或域名状态异常。
  • 只返回 CNAME 没有后续 A 记录:CNAME 指向的目标不存在或拼写错误。

想看完整递归路径,用:

dig www.example.com +trace

Windows 自带工具没有 dig,可改用 whatsmydns.net、DNSChecker 这类在线多点检测,从不同地区节点看返回是否一致。

TTL 要等多久,等待时间由谁决定?

TTL 的含义是「这条答案可以被缓存多少秒」,递归服务器在 TTL 内不会回头问权威。常见量级:600 秒(10 分钟)、3600 秒(1 小时)、86400 秒(约 24 小时,接近一天),各服务商默认值基本落在这个区间。

关键在于:修改记录后要等多久,取决于修改前的旧 TTL,而不是你新设置的 TTL。把 TTL 从 86400 改成 300,并不会让已经缓存的老答案立刻失效。

客户端本地缓存也要清:

  • Windows:ipconfig /flushdns
  • macOS:sudo dscacheutil -flushcache; sudo killall -HUP mDNSResponder
  • Chrome:打开 chrome://net-internals/#dns,点 Clear host cache
  • 路由器:重启,或在管理页清空 DNS 缓存
  • 手机:切飞行模式,或换移动网络验证

操作习惯上,建议在计划变更前把 TTL 调小(比如 300 秒),等一个旧 TTL 周期再改记录,变更完成后再调回去。这样切换窗口能从一天压缩到几分钟。

一次完整的记录变更流程与易错点

以阿里云为例:控制台 → 域名 → 解析设置 → 添加记录,填主机记录、记录类型、线路、记录值、TTL,保存后在列表页确认状态为「正常」。腾讯云 DNSPod 路径类似:DNS 解析 DNSPod → 我的域名 → 记录管理。

几个反复出问题的地方:

  • CNAME 与 A 记录在同一主机记录上冲突,同名 CNAME 不能与其他记录类型并存。
  • 泛解析 * 会把所有未定义子域一并指过去,排查时容易误判。
  • 邮件相关记录(MX、TXT 里的 SPF/DKIM)生效同样受 TTL 影响,发信验证失败时先别怀疑对方。
  • 部分服务商要求域名先完成实名认证,未通过时解析会被暂停且不一定给出明显提示。

具体 TTL 可选值与是否收费,以各平台页面为准,免费版和套餐版的限制并不一样。

什么情况根本不是缓存问题?

如果连权威查询都失败,那问题就不在缓存。检查顺序如下。

先确认 NS 是不是你以为的那一组:

nslookup -type=NS example.com 1.1.1.1

返回的 NS 与解析面板显示的不一致,说明 NS 变更还没生效或改错了——NS 切换的扩散时间通常比普通记录长,量级在数小时到两天。

再查域名状态与到期时间。状态里出现 clientHold、serverHold、pendingDelete 时,解析会整体停止,改记录没有任何意义;域名过期、未实名、涉诉冻结都会走到这一步。

还有一种经常被误判:换服务器后只改了 A 记录,但网站服务端本身返回 502,用户却以为是解析没生效。把「解析是否生效」和「站点是否可访问」分开验证,能避免在错误方向上白等 TTL。

相关工具与阅读

  • DNS解析查询:查看各地递归与权威的返回结果,快速区分缓存滞后和配置错误
  • WHOIS查询:确认域名状态与到期时间,排除 hold、pendingDelete 这类硬故障
  • 百度收录批量查询:解析恢复正常后,核对搜索引擎抓取是否跟上
  • 页面SEO分析:把解析问题和服务端可访问性问题分开定位