CLI AI

用 dig 命令检查 DNS 记录

2026-07-09

检查 DNS 记录最快的方法是 dig +short cliai.tech A,只打印值,没有多余的表头。dig 剩下的部分都是为了回答改动之后真正的问题:到底是生效了,还是只是还没传到你这里?答案从来不是「再等等」,而是对比两个解析器,再看一眼 TTL。

1. 只要答案,别要噪音

clai
$ clai 显示 cliai.tech 的 ip 地址→ dig +short cliai.tech A104.21.58.232172.67.209.250

+short 只保留记录的值。dig 的完整输出适合调试和写脚本;想快速看一眼,用这个就够了。

2. 问一个指定的解析器

clai
$ clai google 的公共解析器对 cliai.tech 返回什么→ dig +short @8.8.8.8 cliai.tech172.67.209.250104.21.58.232

@ 完全绕过本机的解析器和它的缓存。这才是检查记录是否已经在「全世界」更新,而不只是在你自己的机器上更新的方法。

3. 对比两个解析器——这就是所谓的检查传播

clai
$ clai 对比一下 google 和 cloudflare 对 cliai.tech 的回答→ for r in 8.8.8.8 1.1.1.1; do printf '%-10s %s\n' "$r" "$(dig +short @$r cliai.tech | tail -1)"; done8.8.8.8    172.67.209.2501.1.1.1    172.67.209.250

结果一致,说明记录已经传播开了。不一致,说明某处的缓存里还留着旧值,只能等它的 TTL 过期。第三方的「DNS 传播检测」工具,做的也不过是这件事。

4. 邮件和文本记录

clai
$ clai 显示 cliai.tech 的 mx 和 txt 记录→ dig +short cliai.tech MX && dig +short cliai.tech TXT36 route3.mx.cloudflare.net.64 route1.mx.cloudflare.net.85 route2.mx.cloudflare.net."v=spf1 include:_spf.mx.cloudflare.net ~all"

记录类型作为最后一个参数给出。MX 那一行开头的数字是优先级,数字越小优先级越高。TXT 里通常放着 SPF 和域名归属验证信息。

5. 缓存还能活多久

clai
$ clai 显示记录的 ttl,好知道要等多久→ dig cliai.tech A +noall +answer

回答行里的第二个数字就是 TTL,单位是秒——解析器会保留这个值这么久,之后才会重新查询。如果打算修改记录,提前一天把 TTL 调低。

6. 找出问题出在哪一环

clai
$ clai 追踪 cliai.tech 的完整委派链→ dig +trace cliai.tech

+trace 从根服务器开始一路向下,显示是谁把这个区域委派给了谁。这是抓出「注册商那边登记的是一组 NS,而你实际改记录的是另一组」这种情况的办法。

常见坑

  • 不带 @ 的 dig 问的是本机解析器。 大多数系统上那是一个带缓存的 127.0.0.53,可能给你过期的值。检查改动的时候,永远显式指定解析器。
  • 缓存回答里的 TTL 是在倒数的。 显示的数字是剩余时间,不是最初的值。要看真实的 TTL,得去问该区域的权威服务器。
  • 「DNS 传播」不是一个过程,而是缓存过期。 没有任何东西在向外广播。改动会在每个解析器各自的 TTL 耗尽的那一刻变得可见。

相关问题

为什么我看到的是旧 IP,同事看到的却是新的? 因为用的解析器不同,各自剩余的 TTL 也不同。用 @ 分别检查两边,等更慢的那个过期就行。

dig 比 nslookup 好在哪? 它更精确地展示应答的各个部分和标志位,还支持 +trace 和 +short。nslookup 已经被认为过时了。

怎么查一个域名的权威服务器? dig +short cliai.tech NS——然后直接问它们要记录,绕开中间所有的缓存。

相关阅读

别再手写 dig 的参数了——描述你想检查什么,CliAI 帮你写命令。一行命令安装。