DNS 查询
DNS 查询是把一个域名交给公共解析器、看它返回哪些解析记录的工具。本页通过 DoH(DNS over HTTPS)向你选定的阿里、Cloudflare 或 Google 解析器查询,列出 A、AAAA、CNAME、MX、TXT、NS、SOA、CAA 等记录与 TTL,并在本地解读 SPF、DMARC、CAA 的含义。只有点「查询」时才会发出请求,内容只有域名和记录类型。
不会发送任何内容。输入可查询的域名后,这里会逐字显示将要发送的内容与接收方。
请先输入域名、网址、邮箱或 IP
粘贴记录解读
粘贴一条 SPF、DMARC、DKIM、CAA 或 SOA 记录的文本,在本地解释含义——不发任何请求。
这个页面是怎么查的:DoH 与三家公共解析器
这是一个在线 DNS 查询工具,也就是常说的 DNS lookup。网页本身没法直接发 DNS 报文——浏览器里没有 UDP 53 端口可用, 所以本页走的是 DNS over HTTPS(DoH):把「查哪个名字、查什么类型」写成一个普通的 HTTPS 请求,发给公共解析器的 DoH 接口,对方把结果用 JSON 返回。所谓域名解析查询、域名解析记录查询、DNS 解析查询,说的都是这件事:问一台递归解析器「这个名字现在解析成什么」。 这类 DoH 查询和你把电脑的 DNS 改成这三家时问到的是同一批服务器,结果完全可比。
| 解析器 | DoH 地址 | 常用 IP | 特点 |
|---|---|---|---|
| 阿里公共 DNS | dns.alidns.com | 223.5.5.5 | 境内访问最稳;不做 DNSSEC 校验。 |
| Cloudflare | cloudflare-dns.com | 1.1.1.1 | 校验 DNSSEC,不向权威服务器转发你的网段(ECS);境内时好时坏。 |
| Google Public DNS | dns.google | 8.8.8.8 | 校验 DNSSEC;中国大陆网络下多半连不上。 |
默认用阿里 DNS(223.5.5.5),因为它在中国大陆网络下最稳定;Cloudflare(1.1.1.1)校验 DNSSEC,也不把你的网段转给权威服务器; Google(8.8.8.8)同样校验 DNSSEC,但在大陆网络下多半连不上。三家都是免费公共服务,没有额度承诺,所以本页每次点击最多发 11 个请求、结束后有 2 秒冷却,也不会在失败时自动换一家重试。
DNS 查询会发出什么、发给谁
这个工具做不到完全离线——不把域名告诉解析器就查不了。所以把会发出去的东西逐条写清楚:
- 只在你点「查询」、在输入框里按回车、或在失败卡上点「改用某家再试」时才发请求;打字、改选项、点示例、从链接带参数进来,都一个请求也不发。
- 发出去的只有两样:经本地校验后的域名(小写英文形态),和记录类型编号。网址里的路径、参数、账号口令、端口,邮箱 @ 前面的用户名,都在本地剥掉,不发送。
- 只发给你选的那一家;对比模式下才会三家各发 1 次。按钮上方那行「将发送」会逐字显示内容和接收方,实际请求与它一致。
- 解析器会看到你的 IP,就像你平时上网时它会看到的那样;Google 与阿里可能把你所在的网段告诉目标域名的权威服务器,以便返回离你近的节点(ECS),Cloudflare 不这样做。
- 请求不带 cookie、不带来源页;查过的域名和结果不保存在本地,浏览器里只记住你选的解析器和预设。
- 内网名(.local、.lan、.internal、单段主机名等)和私有 IP 的反查在本地拦截,不会发给公共解析器。
结果卡里的「原始响应与实际请求」会显示每个请求的完整网址,可以自己核对。
DNS 记录类型速查表:A、AAAA、CNAME、MX、TXT 各是什么
A 记录查询看的是 IPv4 地址,AAAA 记录是 IPv6 地址;CNAME 查询看的是别名跳转——CNAME 记录是什么?就是「这个名字请去问另一个名字」, 接入 CDN 时最常见。MX 记录查询看收信服务器,TXT 记录查询看 SPF、DMARC 与各种所有权验证,NS 记录查询看这个域名由哪几台权威服务器负责。 SOA 记录、CAA 记录、SRV 记录、HTTPS 记录用得少一些,但排查证书签发、即时通讯、HTTP/3 问题时离不开它们。
| 类型 | 编号 | 用途 | 示例 |
|---|---|---|---|
| A | 1 | IPv4 地址:域名指向的 IPv4 地址,访问网站最终连的就是它 | 93.184.215.14 |
| AAAA | 28 | IPv6 地址:域名指向的 IPv6 地址 | 2606:2800:21f:cb07:6820:80da:af6b:8b2c |
| CNAME | 5 | 别名:把这个名字指向另一个名字,常用于接入 CDN;根域名不能设 CNAME | www.a.shifen.com. |
| MX | 15 | 邮件交换:收这个域名邮件的服务器,数字越小越优先 | 10 mx3.qq.com. |
| TXT | 16 | 文本:任意文本:SPF、DMARC、DKIM、站点所有权验证都放在这里 | v=spf1 include:spf.mail.qq.com ~all |
| NS | 2 | 域名服务器:负责这个域名的权威 DNS 服务器 | ns1.example.com. |
| SOA | 6 | 起始授权:区的管理信息:主服务器、管理员邮箱、序列号与各种缓存时长 | ns1.example.com. admin.example.com. 2026100901 7200 3600 1209600 600 |
| CAA | 257 | 证书颁发授权:规定哪些 CA 可以给这个域名签发 HTTPS 证书 | 0 issue "letsencrypt.org" |
| SRV | 33 | 服务定位:某项服务(如 SIP、XMPP)在哪台主机哪个端口 | 10 5 5060 sip.example.com. |
| HTTPS | 65 | HTTPS 服务绑定:告诉浏览器支持的协议(如 HTTP/3)与地址提示 | 1 . alpn=h3,h2 |
| PTR | 12 | 反向解析:由 IP 反查主机名,查询名形如 4.3.2.1.in-addr.arpa | dns.google. |
SOA 记录看起来是一串数字,拆开来是这样(下例由本页同一套解析逻辑现算):
| 字段 | 值 |
|---|---|
| 主服务器 | ns1.example.com |
| 管理员邮箱 | hostmaster@example.com |
| 序列号 | 2026100901 |
| 刷新 / 重试 | 7200 秒(2 小时) / 3600 秒(1 小时) |
| 过期 | 1209600 秒(14 天) |
| 否定缓存 | 600 秒(10 分钟) |
改了解析为什么还没生效:TTL 与 DNS 缓存
DNS 生效时间取决于旧记录的 TTL。TTL 是什么?它是记录在缓存里的寿命:递归解析器从权威服务器拿到一条记录后,会在 TTL 秒内直接用缓存回答, 不再去问。你在服务商后台改了记录,权威服务器立刻就是新值,但各家解析器手里的旧答案要等旧 TTL 走完才会过期——所以「DNS 多久生效」的答案是: 最长约等于改之前那条记录的 TTL。想让切换更快,就提前一两天把 TTL 调小(比如 300 秒),等旧的长 TTL 过期后再改记录。
本页显示的 TTL 是解析器缓存里的剩余时间,不一定等于你在后台设置的值——同一条记录,刚被缓存时是 3600,过一会儿再查可能就是 1200。 否定答案也会被缓存:查一个还不存在的名字得到「名称不存在」,这个结论会按 SOA 里的否定缓存时长保留一段时间, 所以先查再建的子域名,往往要多等几分钟才能查到。
DNS 解析不一致是常态而不是故障:各家的缓存时间点不同;用了 CDN 的域名会按解析器所在位置返回就近节点; 对签名配置有错的域名,校验 DNSSEC 的解析器会报 SERVFAIL,不校验的阿里照样能查到。想做 DNS 对比,选「单个类型」后打开「三家对比」, 本页会并排列出三家的结果并说明差异可能的原因,而 DNS 缓存的影响会体现在每一列的 TTL 上。
邮箱三件套:MX、SPF、DMARC 怎么看
邮箱 DNS 配置看三样:MX 决定别人的信投到哪台服务器;SPF 声明哪些服务器可以用你的域名发信;DMARC 告诉收件方遇到冒充邮件怎么处理。 把邮箱地址粘进输入框,本页会推荐「邮箱配置」预设,一次完成 SPF 记录检查与 DMARC 记录查询;填上 DKIM 选择器,还能顺带做 DKIM 记录查询。
SPF 记录怎么写?下面是一条常见写法,本页对它的解读是:
| 项 | 含义 |
|---|---|
| include:spf.mail.qq.com | spf.mail.qq.com 的 SPF 里列出的服务器:通过(用于第三方代发) |
| ip4:203.0.113.8 | IPv4 203.0.113.8:通过 |
| ~all | 其余所有服务器发的信:标记为可疑(软失败) |
常见错误有三个:同一个名字下写了两条 v=spf1(收件方会直接判 SPF 无效,只能合并成一条);结尾写成 +all(等于谁都能冒充); include 套 include,直接与嵌套的 DNS 查找加起来超过 10 次。比如这条:
DMARC p=none 是最常见的起步配置:只收报告、不拦截。下面这条的解读是——p=none 只收报告、不拦截冒充邮件;确认无误后建议逐步收紧到 quarantine 或 reject。确认所有正常发信渠道都通过之后,再逐步收紧到 quarantine、reject。
查到 127.0.0.1、0.0.0.0 或查不到时怎么判断
域名解析到 127.0.0.1 或 0.0.0.0,意思是「去连本机」或「连一个空地址」,实际上就是访问不了。常见原因有三类: 所在网络或解析器的拦截名单(广告、恶意网站);你自己设备上的拦截工具;域名所有者有意把它停用。最直接的判断办法是换一家解析器再查, 或者打开三家对比——如果只有一家这样返回,问题多半在那一家或你所在的网络。
查不到时,先看结果卡上的状态属于哪一种:
| 返回码 | 含义 | 说明 |
|---|---|---|
| NOERROR | 正常 | 查询成功;但「成功」也可能是该名称下没有你查的类型。 |
| NXDOMAIN | 名称不存在 | 权威服务器明确回答:这个名字不存在。 |
| SERVFAIL | 解析失败 | 解析器没能拿到可信的答案,常见原因是权威服务器不可达或 DNSSEC 配置错误。 |
| REFUSED | 拒绝 | 解析器拒绝回答这个查询。 |
「没有这个类型的记录」和「名称不存在」是两回事:前者是名字存在、只是没配这一类记录;后者是权威服务器明确说没有这个名字。 要注意有的服务商(如 Cloudflare 托管的域名)对不存在的名字也只回答「没有记录」,所以前者不能当作「域名一定存在」的证据。
另外,下面这些后缀是保留给内网或特殊用途的,公共解析器上永远查不到,本页会在本地直接拦下:.home.arpa、.localhost、.local、.internal、.test、.invalid、.example、.onion、.alt、.lan、.home、.corp、.intranet、.private、.localdomain。
命令行怎么查:nslookup、dig 与 PowerShell
网页查不通,或者想查公司内网 DNS 上的记录时,可以用系统自带的命令。Windows 上用 nslookup 命令,macOS 与 Linux 上用 dig 命令, Windows PowerShell 里还有 Resolve-DnsName。以向阿里 DNS 查 example.com 的 MX 记录为例:
| 工具 | 命令 |
|---|---|
| dig | dig @223.5.5.5 example.com MX +noall +answer |
| nslookup | nslookup -type=MX example.com 223.5.5.5 |
| PowerShell | Resolve-DnsName -Name example.com -Type MX -Server 223.5.5.5 |
把命令里的 MX 换成 A、TXT、NS 就能查别的类型;去掉解析器 IP 就是用你电脑当前的 DNS 查。IP 反查域名用 dig -x 加 IP;在本页做 PTR 记录查询更省事,直接输入 IP 即可。 本页的「本地命令」折叠区会按你当前的输入和解析器自动生成这三条,复制即可用;命令输出里的 SPF、DMARC 文本可以贴回下方「粘贴记录解读」看含义。
数据表版本 2026.10,更新于 2026-10-10,每半年复核一次。依据:IANA DNS Parameters 注册表与 RFC 1035、2308、7208、7489、8659、9460 等原文。 解析器:阿里公共 DNS、Cloudflare、Google Public DNS。
如何使用DNS 查询
在输入框里填要查的域名,也可以直接粘贴网址、邮箱地址或 IP:网址会只取出域名,邮箱会取 @ 后面的域名,IP 会转成 PTR 反查名,中文域名会自动转成 punycode。
选解析器(默认阿里公共 DNS)和要查的记录类型:「常用」一次查 A、AAAA、CNAME、MX、TXT、NS;「邮箱配置」查 MX、SPF、DMARC 与可选的 DKIM;「单个类型」还能打开三家对比。
核对「将发送」那一行无误后点「查询」,每个类型一张结果卡,含 CNAME 跳转链、记录值、TTL 与 SPF、DMARC 解读;查不通时可以改用另一家解析器,或复制本地命令到终端里查。
关于DNS 查询的常见问题
- 怎么查一个域名解析到了哪个 IP
- 把域名填进本页输入框,保持「常用」预设,点查询,看 A 记录(IPv4)和 AAAA 记录(IPv6)两张卡即可。如果这个域名用了 CDN,卡片上方会显示 CNAME 跳转链,比如 www.baidu.com 先跳到 www.a.shifen.com 再跳到真正给出 IP 的名字,最后那一跳的 A 记录才是实际地址。同一个域名常常有多个 IP,浏览器会挑其中一个连接;不同解析器、不同地区查到的 IP 也可能不同,这是 CDN 就近调度的正常结果。
- A 记录和 CNAME 记录有什么区别
- A 记录直接给出 IPv4 地址,是解析的终点;CNAME 记录不给地址,而是说「这个名字是另一个名字的别名,请去查那个名字」。接入 CDN、对象存储、建站平台时一般用 CNAME,因为对方的 IP 会变,指向对方提供的名字最省事。有一条硬规则:一个名字有了 CNAME 就不能再有其他记录,所以根域名(example.com 本身)不能设 CNAME,因为它必须有 NS 和 SOA;需要时可以用服务商提供的 CNAME 拉平或 ALIAS 功能。
- DNS 修改后多久生效?TTL 是什么
- 最长大约等于修改前那条记录的 TTL。TTL 是记录在解析器缓存里的寿命,单位是秒:解析器拿到记录后,在 TTL 内都直接用缓存回答。你在后台改了记录,权威服务器立刻是新值,但各家解析器手里的旧答案要等旧 TTL 过期才会刷新,所以常说的生效需要 10 分钟到 48 小时,取决于原来的 TTL。想切换更快,可以提前把 TTL 调到 300 秒,等旧缓存过期后再改。本页显示的 TTL 是缓存剩余时间,可以用来估算还要等多久。
- 为什么不同 DNS 解析器查到的 IP 不一样
- 大多数情况下这是正常的,不是故障。最常见的原因是 CDN:用了 CDN 的域名会根据解析器所在位置或它转发的用户网段,返回离你最近的节点,所以阿里、Cloudflare、Google 拿到的 IP 天然不同。其次是缓存时间差:记录刚改过时,有的解析器还在用旧答案。还有一种是 DNSSEC:签名配置有错的域名,校验 DNSSEC 的解析器会解析失败,不校验的解析器照样能查到。用本页「单个类型」加「三家对比」可以并排看结果和原因说明。
- DNS 查询查不到记录是域名不存在吗
- 不一定,要分清两种情况。如果结果是「名称不存在(NXDOMAIN)」,那是权威服务器明确说这个名字不存在。如果结果是「该名称下没有某类型的记录」,只说明名字下没配这一类记录,名字本身可能存在,比如只配了 A 没配 AAAA。还要注意,部分服务商(如 Cloudflare 托管的域名)对不存在的名字也回答「没有记录」而不是「不存在」。另外否定答案也会被缓存,新建的子域名可能要等几分钟才能查到。
- 怎么查域名的 MX 邮件记录
- 在本页选「邮箱配置」预设,或者选「单个类型」再选 MX,点查询即可。MX 记录由优先级数字和邮件服务器名组成,数字越小越优先,比如 qq.com 有三条 MX,发件方先尝试优先级最小的那台,失败了再试下一台。本页会按优先级排好序。如果看到「0 .」这样的记录,那是 Null MX,表示这个域名声明不收任何邮件;如果 MX 指向的是一个 IP 地址而不是主机名,那是不合规的配置,很多发件方会拒绝投递。
- SPF 记录怎么看?include 太多会怎样
- SPF 是一条以 v=spf1 开头的 TXT 记录,从左到右列出允许代表你的域名发信的服务器,最后用 all 规定其余服务器的待遇:-all 拒收、~all 标为可疑、?all 不判断、+all 等于谁都能冒充。include 表示引用另一家的 SPF,每个 include、a、mx、ptr、exists 和 redirect 都会让收件方多查一次 DNS,规范规定总数不能超过 10 次,超了整条 SPF 判为无效。本页统计的是顶层次数,嵌套 include 里面的次数需要另外查。
- DMARC 的 p=none 是什么意思
- p=none 表示只监控、不拦截:收件方会按你的 rua 地址发汇总报告,但冒充你域名的邮件照常投递。它适合刚开始部署 DMARC 的阶段,用来摸清有哪些正常的发信渠道还没通过 SPF 或 DKIM。确认没有误伤后,应逐步收紧到 p=quarantine(放进垃圾箱)再到 p=reject(直接拒收),中间可以用 pct 参数只对一部分邮件生效。只停留在 p=none 起不到防冒充作用。本页的邮箱配置预设会查出 DMARC 记录并逐项解释。
- 域名的 CAA 记录有什么用,要不要加
- CAA 记录规定哪些证书颁发机构(CA)可以给你的域名签发 HTTPS 证书。比如只写一条 issue "letsencrypt.org",其他 CA 收到申请时就必须拒签,能降低被误签、冒签的风险。没有 CAA 记录等于任何 CA 都可以签发。要不要加取决于你的证书来源是否固定:固定用一两家 CA 的话加上更安全;但要记得把所有在用的 CA 都列进去,包括 CDN 或云厂商代签证书时用的 CA,否则续期会失败。
- 域名解析到 127.0.0.1 或 0.0.0.0 是怎么回事
- 127.0.0.1 是本机地址,0.0.0.0 是空地址,域名解析到它们,效果就是访问不了。常见原因有:你所在网络或所用解析器把这个域名放进了拦截名单(广告、恶意网站、合规要求);你自己电脑上的 hosts 文件或拦截软件改写了结果;域名所有者有意把它停用。判断方法是换一家解析器再查,或用本页三家对比:只有一家这样返回,问题多半在那家或你所在的网络;三家都这样,多半是域名本身就这么配置的。
- 中文域名怎么查 DNS 解析记录
- 中文域名解析和普通域名没有区别,直接把中文域名填进输入框就行,本页会自动转成 punycode 形态再查询,比如 中文.cn 会转成 xn--fiq228c.cn,两种写法都会显示出来。DNS 协议本身只认英文字母、数字和连字符,中文域名在解析时一律以 xn-- 开头的 punycode 形态出现,浏览器地址栏里显示中文只是为了好看。反过来,如果你看到一个 xn-- 开头的域名,粘进来也能看到它对应的中文写法。全角句号、全角字母也会自动换成半角。
- 怎么通过 IP 反查域名(PTR 记录)
- 把 IP 直接填进输入框,本页会自动转成反查名并查询 PTR 记录,比如 8.8.8.8 会变成 8.8.8.8.in-addr.arpa,查到的结果是 dns.google。IPv6 地址也可以,会转成 32 段倒序的 ip6.arpa 名字。要注意很多 IP 根本没有配置 PTR 记录,查不到属于正常;PTR 由 IP 的持有者(通常是运营商或云厂商)设置,与正向的 A 记录不一定对得上。内网 IP 和保留地址不会被发给公共解析器,本页会在本地拦下并给出本机查法。
- 在线 DNS 查询会把我的域名发给谁
- 只发给你选的那一家公共解析器,对比模式下三家各发一次。发送内容只有经过本地校验的域名和记录类型编号,网址路径、参数、邮箱用户名这些都在本地剥掉。请求只在你点查询或按回车时才发,打字和改选项不会触发。按钮上方的「将发送」那一行会逐字显示内容和接收方,结果卡里还能看到实际请求的完整网址。解析器会看到你的 IP,就像平时上网一样;本页不保存你查过的域名,也不会在失败时自动换一家重试。
- 为什么公司内网域名在 DNS 查询里查不到
- 因为内网域名只登记在公司自己的 DNS 服务器上,公共解析器从来不知道它们,问阿里、Cloudflare、Google 都只会得到「不存在」。而且把内网主机名发到公网,会把公司的内部命名泄露出去。所以本页对 .local、.lan、.internal、.corp 这类后缀和单段主机名在本地直接拦截,不发送,并给出在你自己电脑上的查法,比如用 nslookup 加上公司或路由器的 DNS 地址去查。在公司网络里用系统自带命令查,才能拿到内网 DNS 的答案。
- nslookup 和 dig 命令怎么查解析记录
- Windows 自带 nslookup:写成 nslookup -type=MX example.com 223.5.5.5,最后的 IP 是要问的解析器,省略就用系统当前的 DNS。macOS 和 Linux 常用 dig:写成 dig @223.5.5.5 example.com MX,加上 +short 只看结果,加上 -x 再跟 IP 可以做反查。PowerShell 里用 Resolve-DnsName -Name example.com -Type MX。本页「本地命令」折叠区会按你当前输入的域名、类型和解析器自动生成这三条,一键复制到终端就能用。
- DNS 查询显示的 TTL 为什么和后台设置的不一样
- 因为本页显示的是解析器缓存里的剩余时间,不是你在服务商后台设的原始值。解析器第一次拿到记录时 TTL 等于后台设置,此后每过一秒减一,到零就重新去权威服务器取。所以同一条记录,这次查是 3600,过二十分钟可能就是 2400;不同解析器缓存的时间点不同,看到的数也不同,有时甚至只剩个位数。想看原始值,可以对这个域名的权威服务器直接查,或者在后台确认。剩余 TTL 的用处是估算改动还要多久才会在这家解析器上生效。