DNS解析查询,本质上在查三层东西
第一层:查记录对不对。域名的A记录指向哪个IP?CNAME指向哪个域名?MX记录指向哪个邮件服务器?TXT记录里配的SPF和DKIM对不对?这是最基础的——确认你在DNS管理后台填的东西确实生效了。
第二层:查传播到哪了。你改了记录之后,全球各地的DNS服务器有没有同步到最新版本?有些地区可能还在缓存旧记录,有些地区的运营商DNS压根没更新。这层决定了用户能不能访问到正确的服务器。
第三层:查有没有被污染或劫持。你的域名在某些地区解析到了错误的IP,不是你配置的问题,而是中间某个DNS节点被篡改了。这种情况在国内运营商的LDNS上并不罕见——域名被强制解析到127.0.0.1或者其他无关IP。
一、先认全九种DNS记录类型:每种查什么、什么场景用
打开DNS管理后台,添加记录时会看到一长串类型选项。很多人只认识A记录和CNAME,其他的一概跳过。但真正出问题的时候,往往是那些你没注意到的记录类型在搞鬼。
| 记录类型 | 全称 | 作用一句话 | 典型场景 | 查询命令示例 |
|---|---|---|---|---|
| A | Address | 域名→IPv4地址 | 网站解析到服务器IP | dig A example.com |
| AAAA | IPv6 Address | 域名→IPv6地址 | 支持IPv6访问的网站 | dig AAAA example.com |
| CNAME | Canonical Name | 域名→另一个域名(别名) | CDN接入、www指向主域名 | dig CNAME www.example.com |
| MX | Mail Exchange | 指定邮件服务器+优先级 | 企业邮箱、Google Workspace | dig MX example.com |
| NS | Name Server | 指定哪个DNS服务器负责解析该域名 | 更换DNS服务商时的验证 | dig NS example.com |
| TXT | Text | 存储任意文本信息 | SPF发件验证、DKIM签名、域名所有权验证 | dig TXT example.com |
| SOA | Start of Authority | 域名的管理信息+默认TTL | 查看域名的权威DNS服务器和序列号 | dig SOA example.com |
| SRV | Service | 指定特定服务的服务器+端口 | SIP语音、LDAP、XMPP等协议 | dig SRV _sip._tcp.example.com |
| PTR | Pointer | IP地址→域名(反向解析) | 邮件服务器反查、防止垃圾邮件 | dig -x 1.2.3.4 |
三个最常见的配置错误:
· CNAME和A记录冲突:同一个主机记录(比如www)同时配了CNAME和A记录。DNS规范里这是不允许的,CNAME存在时其他所有记录类型都会被忽略。如果你给www加了CNAME指向CDN域名,就别再加A记录。
· MX记录指向CNAME:MX记录必须指向A记录(IP地址),不能指向CNAME别名。有些邮件服务器能容忍这个错误,有些直接拒收。
· 裸域名用CNAME:很多DNS服务商不允许在根域名(@)上使用CNAME记录,因为根域名默认有SOA和NS记录,加CNAME会冲突。Cloudflare通过CNAME Flattening技术解决了这个问题,但阿里云和腾讯云的传统DNS不支持。

二、在线DNS查询工具:八款工具跑同一个域名,出来的结果有什么不同
在线工具最大的价值不是"能不能查",而是"从多少个节点查"和"能不能对比不同地区的解析结果"。同一个域名,从北京电信查和从新加坡查,解析结果可能完全不一样。
| 工具 | 全球节点数 | 支持记录类型 | 免费/付费 | 特色功能 | 最适合场景 |
|---|---|---|---|---|---|
| WhatsMyDNS | 23个全球节点 | A、AAAA、CNAME、MX、NS、TXT、SOA | 完全免费 | 世界地图可视化,绿勾红叉一目了然 | DNS传播检测(改完记录看全球生效情况) |
| DNSChecker | 30+全球节点 | 全类型 | 完全免费 | 支持指定DNS服务器查询、支持泛域名 | 需要更多节点+自定义DNS服务器 |
| 拨测(boce.com) | 国内多省份+海外节点 | A、CNAME、MX、NS、TXT | 免费 | DNS污染检测、域名被墙检测、劫持检测 | 国内DNS污染/劫持排查 |
| Google Dig | Google全球DNS节点 | 全类型 | 免费 | 走Google Public DNS (8.8.8.8),结果干净 | 快速验证DNS记录是否已同步到Google DNS |
| Lookup DNS | 单节点(可选不同服务器) | 全类型+WHOIS | 免费 | 同时展示DNS记录+WHOIS信息+IP归属 | 需要同时看DNS和域名注册信息 |
| MXToolbox | 单节点 | 全类型+邮件诊断 | 免费 | MX记录诊断、黑名单检查、SPF/DKIM/DMARC验证 | 邮件相关DNS排查(MX/SPF/DKIM) |
| 站长工具 nslookup | 国内多节点 | A、CNAME、MX、NS、TXT | 免费 | 中文界面、支持国内多线路查询 | 国内用户快速查询、无需英文 |
| UU在线工具 nslookup | 国内节点 | A、CNAME、MX、NS、TXT | 免费 | 极简界面,一次返回所有记录类型 | 最快速的单次查询,无需选择记录类型 |
日常使用组合建议:
· 刚改完DNS记录想快速验证 → 打开WhatsMyDNS,输入域名和记录类型,看全球绿勾覆盖率。70%以上绿勾说明传播正常进行中。
· 怀疑DNS被污染 → 打开拨测(boce.com)的DNS污染检测功能,它会同时对比权威DNS和各地运营商DNS的解析结果,有不一致的节点会标红。
· 邮件发不出去/收不到 → 打开MXToolbox,输入域名做全套邮件DNS诊断(MX+SPF+DKIM+DMARC+黑名单),哪里有问题直接标出来。
· 日常快速查 → 打开UU在线工具的nslookup,输入域名一次返回所有记录类型,不用选来选去。
三、命令行工具:dig和nslookup,运维排查的标配
在线工具够方便,但当你需要精确控制查询参数——比如指定DNS服务器、追踪解析链路、查看完整TTL和响应时间——命令行是绕不过去的。
dig和nslookup的区别:dig的输出更详细(包含TTL、查询耗时、响应服务器信息),适合深度排查。nslookup的输出更简洁,Windows和Linux都有,适合快速确认。如果只能学一个,学dig——它的输出信息量是nslookup的三倍,排查问题时能少绕很多弯路。
四、DNS传播检测:为什么改了记录半小时了还没生效
这是DNS查询里最高频的痛点了。你改了A记录,打开WhatsMyDNS一看,全球23个节点只有7个解析到新IP。然后开始焦虑:是配置错了?还是传播需要更多时间?要不要再改一次?
DNS传播延迟的根源在TTL(Time To Live)——它告诉全世界的DNS服务器"这条记录你可以缓存多久"。你改了记录之后,那些还在TTL有效期内的DNS缓存服务器会继续返回旧IP,直到TTL过期后它们才会来拿新记录。

怎么加速DNS传播?有一个几乎所有老运维都在用的技巧:在改DNS记录之前,提前24小时把TTL降到60-300秒(1-5分钟)。等新的低TTL值在全球传播生效之后,再修改A记录或CNAME。这样全世界的DNS缓存服务器会在1-5分钟内过期,然后立刻拉取到你的新记录。改完之后,如果一切正常,再把TTL改回600秒或更高。如果你已经改了记录才想起来TTL的事,那只能等——本地清缓存、换公共DNS、刷新浏览器DNS缓存都只影响你自己这台电脑,改变不了全球传播的进度。
五、DNS污染和劫持检测:当域名在某些地区解析到错误的IP
如果你的域名在国内某个省份打不开,但用VPN切到海外就正常,大概率不是服务器的问题,是DNS污染。
DNS污染的典型症状:
· 同一域名在不同地区解析到完全不同的IP地址(且错误IP不是你配置的)
· 域名被解析到127.0.0.1、0.0.0.0等无效地址
· 域名被解析到一个与你的业务完全无关的网站IP
· 海外解析正常、国内部分省份解析异常
检测方法:用拨测(boce.com)或DNSChecker的多节点对比功能。输入域名后同时查看权威DNS的解析结果和各地区运营商的解析结果。如果权威DNS返回的是你配置的正确IP,但某些地区的运营商DNS返回的是另一个IP,那就是中间节点被污染了。
中间DNS缓存服务器被注入了错误的解析记录,返回假IP。
解决方案:换DNS服务商(如Cloudflare)、启用DNSSEC签名验证。

运营商或中间设备主动将特定域名的DNS请求重定向到自己的解析服务器,强制返回指定IP。
解决方案:使用DNS over HTTPS (DoH) 或 DNS over TLS (DoT) 加密查询。
DNS解析正常,但HTTP/HTTPS请求在传输层被阻断,与DNS无关。
解决方案:换域名或使用CDN中转(DNS查询解决不了这个问题)。
六、DNS解析不生效的六步排查流程
不管是网站打不开、邮件收不到、还是CDN配置不生效,都可以按这个流程从外到内逐层排查。
记录类型选对了吗?主机记录(如www、@、mail)填对了吗?记录值(IP或域名)有没有多空格?TTL是不是设置得太长了?
dig @ns1.dnsprovider.com example.com A——把ns1换成你域名实际使用的DNS服务器地址。如果这一步返回的就是你配置的值,说明DNS服务商那边已经生效了。
dig @8.8.8.8 example.com A——Google DNS和Cloudflare DNS的缓存更新通常比较快,如果它们返回的是新记录,说明传播在进行中。
如果权威DNS和公共DNS都返回新记录,但WhatsMyDNS上很多节点还是旧记录——那就是TTL还没过期,等就行了。查看旧记录上的TTL还剩多少秒,那就是你还要等的时间。
Windows:ipconfig /flushdns;macOS:sudo dscacheutil -flushcache; sudo killall -HUP mDNSResponder;Chrome浏览器:地址栏输入 chrome://net-internals/#dns 点击"Clear host cache"。
如果前面五步都正常,但某些地区的用户仍然访问不到,用拨测的DNS污染检测功能对比权威DNS和各地运营商DNS的解析结果。有不一致的节点说明存在中间篡改。
七、不同需求对应的最佳工具组合
| 你的需求 | 推荐工具 | 一句话理由 |
|---|---|---|
| 刚改了DNS记录,想知道全球生效了没 | WhatsMyDNS | 23个节点地图化展示,绿勾红叉直观 |
| 需要查更多节点+自定义DNS服务器 | DNSChecker | 30+节点,可选DNS服务器,支持泛域名 |
| 域名国内部分省份访问异常 | 拨测(boce.com) | DNS污染检测+域名被墙检测+劫持检测一条龙 |
| 邮件收发有问题,排查MX/SPF/DKIM | MXToolbox | 专门的邮件DNS诊断,自动检查黑名单 |
| 需要追踪完整解析链路 | dig +trace(命令行) | 从根DNS到权威DNS,每一步都能看到 |
| 日常快速查询,不想记命令 | UU在线工具 nslookup | 输入域名一键返回所有记录类型 |
| 同时看DNS+WHOIS+IP信息 | Lookup DNS | DNS记录+域名注册信息+IP归属一次展示 |
DNS解析查询这件事,大部分时候不需要什么高级工具——WhatsMyDNS打开看一眼全球绿勾覆盖率,dig查一下权威DNS返回的值,拨测跑一遍看有没有污染,五分钟之内基本能定位问题在哪一层。真正浪费时间的不是工具不够多,是不知道每个工具在什么场景下用、以及看到返回结果之后下一步该查什么。把上面六个排查步骤走一遍,比漫无目的地换DNS服务器、清缓存、重启路由器有效得多。
