DNS查询
同时通过两个独立的公共解析器查询一个域名的任意DNS记录——A、AAAA、MX、TXT、NS、SOA、CNAME、CAA等——这样您就能看到它们是否一致,以及最近的更改是否已经生效。
查询DNS记录
输入域名,选择记录类型(或所有常见类型),然后点击查询。每条应答显示记录数据、TTL以及返回它的解析器(通过DNS over HTTPS访问Cloudflare 1.1.1.1和Google 8.8.8.8);两者之间的差异会被高亮显示。
记录类型说明
每种记录类型回答关于域名的一个不同问题。
A与AAAA
主机名指向的IPv4(A)和IPv6(AAAA)地址。没有AAAA记录的网站无法通过IPv6访问。
MX
为该域名接收邮件的邮件服务器,带优先级;数字最小的最先尝试。
TXT(SPF、DKIM、DMARC)
用于验证和邮件认证的自由格式文本:SPF(v=spf1 …)列出允许使用该域名的发件方,DKIM选择器发布签名密钥,DMARC(_dmarc.子域名)规定如何处理两项都未通过的邮件。
NS与SOA
NS记录指明权威域名服务器;SOA记录保存区域的序列号和计时器,可用于检查所有域名服务器是否提供同一版本。
CNAME
别名:这个名称指向另一个名称,解析器会跟随它。CNAME不能与同一名称下的其他记录共存,这就是域名顶点不能是CNAME的原因。
CAA
哪些证书颁发机构可以为该域名签发证书。没有记录意味着任何CA都可以。
nslookup与dig
nslookup(Windows,macOS/Linux上也有)和dig(macOS/Linux,BIND工具)从命令行查询DNS;dig example.com MX +short相当于在这里做一次MX查询。除非您指定解析器(dig @1.1.1.1 …),否则两者都会询问您配置的解析器。
DNS传播
更改一条记录之后,世界各地的解析器会继续提供旧的应答,直到它的TTL过期;没有集中推送机制。在这里比较两个解析器,可以看出更改是否已经到达它们;权威查询(直接向该域名的域名服务器查询)则显示缓存过期后将会提供的内容。如果某个解析器仍然显示旧值,请等待旧的TTL过期——这正是在计划变更的前一天调低TTL是个好习惯的原因。
DNS查询的原理
常见问题
为什么要进行DNS查询?
为了检查域名的记录是否设置正确(迁移网站或配置邮件之后)、查看更改是否已经生效、查找域名的邮件服务器或域名服务器,或者诊断网站或邮件为什么无法工作。
DNS是如何一步步工作的?
您的设备询问它的解析器;解析器向根服务器询问哪些域名服务器负责该顶级域,向这些服务器询问哪些域名服务器负责该域名,再向后者询问记录,按TTL缓存全部内容并返回应答。之后的查询在TTL过期前都由缓存提供。
DNS查询使用TCP还是UDP?
为了速度,大多使用53端口的UDP;当应答太大、一个UDP数据包装不下时(区域传送、大型记录集、DNSSEC)或解析器选择时,使用TCP。加密DNS(DoH、DoT)运行在TCP/TLS之上。
nslookup的主要用途是什么?
从命令行查询DNS记录并查看是哪个解析器应答的——与本页的工作相同,支持任意记录类型和任意服务器。
什么取代了nslookup?
BIND工具中的dig(以及用于DNSSEC的delv);在Windows上是PowerShell的Resolve-DnsName。nslookup仍然随处可用,做简单查询没有问题。
可以用nslookup查询IP地址吗?
可以——nslookup 203.0.113.42会执行反向查询,返回该地址的PTR主机名(如果存在)。反向DNS查询页面做的是同样的事。
向两个独立的公共解析器发起查询,并逐条比较它们的应答(忽略TTL和顺序);显示的TTL是解析器剩余的缓存时间,而不是区域中设定的值。 查询网站的IP