指南 / Network

DNS 查询到底在查什么?

看懂 A、AAAA、CNAME、MX、TXT、NS,以及为什么改完解析还要等。

发布 · 更新 · 8 MIN

工具站里一打开 DNS 查询,屏幕上就是 A、AAAA、CNAME、MX、TXT、NS。看起来很高级,下一秒也很容易让人产生“打扰了”的感觉。

它其实没那么玄:DNS 查询是在问互联网的“通讯录”,一个域名登记了什么信息。

浏览器为什么需要 DNS

人更习惯输入 example.com,服务器通信却需要 IP 地址。浏览器通常会先问系统或递归 DNS 解析器,解析器查缓存;缓存没有时,再沿着 DNS 层级找到负责这个域名的权威服务器,拿回记录。

所以“查询 DNS”不一定每次都从头问到尾。你看到的结果可能来自缓存,也可能因所在网络、使用的解析器或 CDN 调度而不同。

A 和 AAAA:域名对应哪个地址

A 记录把名称指向 IPv4 地址,例如 example.com → 93.184.216.34。AAAA 做同样的事,只是结果为 IPv6。

这里最容易闹乌龙的是:查到的 IP 不一定是网站源服务器。网站使用 Cloudflare 等代理或 CDN 后,公开 DNS 往往返回边缘节点地址。有人看到结果后兴奋地说“源站 IP 找到了”,Cloudflare 大概只会回一句:“不,你没有。”

如果设备能拿到 IPv6 但网页时好时坏,可以接着看IPv6 从 DNS 开始的排查清单。

CNAME:别名,不是网页跳转

CNAME 表示这个名称是另一个名称的别名。例如 www.example.com 可能指向某个 Pages 服务域名,解析器会继续查询目标。

CNAME 不会让浏览器地址栏自动换成另一个域名。地址栏跳转通常是 HTTP 301 或 302 的工作。DNS 只负责告诉网络“这个名字该去哪里找”,不会突然抢浏览器方向盘。

MX:邮件往哪送

向 hello@example.com 发信时,发送服务器会查询 example.com 的 MX 记录,确定接收邮件的服务器。MX 改错后经常出现一种很安静的故障:网站完全正常,邮件就是收不到。

TXT:DNS 的便利贴墙

TXT 用来放文本,于是域名所有权验证、SPF、DKIM、DMARC 等都喜欢往这里塞。记录多起来就像便利贴墙。

TXT 内容经常包含验证字符串,但“能公开查询”不等于可以随便删除。清理之前先确认是哪项服务在使用,尤其别误删邮件验证记录。

NS:谁负责回答这个域名

NS 记录指出哪些权威 DNS 服务器负责这个区域。把域名托管到 Cloudflare 后,注册商处通常要换成 Cloudflare 分配的 NS。可以理解为注册商说:“这个域名的解析问题以后问他们。”

为什么你和朋友查到的不一样

最常见的原因是缓存和 TTL。TTL 告诉解析器一条结果可以缓存多久。你刚改完记录,自己用的解析器已经拿到新值,朋友的解析器还守着旧缓存,这并不稀奇。

另外还有几种情况:

“DNS 传播”听起来像新记录在全世界慢慢旅行。很多时候更准确的解释是:旧缓存还没过期。别在等待期间连续改五次配置,那会让排查彻底失去参照物。

一次查询不能证明什么

DNS 查询能告诉你解析记录,不等于网站一定可访问,也不等于 TLS 证书、HTTP 服务和源站都正常。它更不能凭空“扫描”出隐藏在代理后的服务器。

排查网站时可以按这个顺序拆开:

  1. DNS 是否返回预期记录。
  2. 网络是否能连到返回的地址。
  3. TLS 证书是否匹配域名。
  4. HTTP 最终返回什么状态和内容。

如果问题发生在 Pages 发布环节,可以再看Cloudflare Pages + GitHub 的发布流程。把解析和部署分开检查,比一出错就改 DNS 靠谱得多。

一分钟记住常见记录

说到底,DNS 查询不是在“黑服务器”。它只是在问:这个名字在互联网的通讯录里登记了什么。