工具站里一打开 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 告诉解析器一条结果可以缓存多久。你刚改完记录,自己用的解析器已经拿到新值,朋友的解析器还守着旧缓存,这并不稀奇。
另外还有几种情况:
- CDN 会按网络和地区返回不同边缘地址。
- 公司、校园网或家庭路由器可能使用内部 DNS。
- 有的网络只返回 A,有的同时使用 AAAA。
- 不存在的域名也可能被“负缓存”一段时间。
一次查询不能证明什么
DNS 查询能告诉你解析记录,不等于网站一定可访问,也不等于 TLS 证书、HTTP 服务和源站都正常。它更不能凭空“扫描”出隐藏在代理后的服务器。
排查网站时可以按这个顺序拆开:
- DNS 是否返回预期记录。
- 网络是否能连到返回的地址。
- TLS 证书是否匹配域名。
- HTTP 最终返回什么状态和内容。
如果问题发生在 Pages 发布环节,可以再看Cloudflare Pages + GitHub 的发布流程。把解析和部署分开检查,比一出错就改 DNS 靠谱得多。
一分钟记住常见记录
- A:IPv4 地址
- AAAA:IPv6 地址
- CNAME:名称别名
- MX:邮件服务器
- TXT:文本与验证
- NS:权威 DNS 服务器
说到底,DNS 查询不是在“黑服务器”。它只是在问:这个名字在互联网的通讯录里登记了什么。