DNS 查询
在线查询域名的 DNS 记录(A/AAAA/MX/TXT/NS/CNAME/SOA 等),通过 DoH 解析,浏览器本地运行保护隐私
输入域名,选择记录类型,点击「查询」
什么是 DNS 查询?
DNS(Domain Name System,域名系统)是互联网的「电话簿」,负责把人类可读的域名(如 example.com)翻译成机器通信用的 IP 地址。DNS 查询就是向 DNS 服务器请求某个域名下的指定记录,例如 A 记录返回 IPv4 地址、MX 记录返回接收邮件的服务器、TXT 记录常用于 SPF/DKIM 与域名所有权验证。本工具通过 DoH(DNS over HTTPS)协议直接在浏览器内完成查询,请求由你的浏览器发往公共 DNS 解析服务商,不经过我们的服务器,查询内容和结果都留在本地,保护隐私。
使用方法
使用步骤
- 在输入框中填写要查询的域名,例如 example.com
- 在「记录类型」下拉框中选择需要查询的记录类型(如 A、MX、TXT)
- 可选:切换 DoH 服务商(Cloudflare、Google 或阿里公共 DNS)
- 点击「查询」按钮或按 Enter
- 在结果表格中查看名称、类型、TTL 和记录值
查询说明
- TTL(生存时间)单位为秒,表示该记录在解析器缓存中的有效时长,数值越小变更生效越快。
- 若返回状态为 NXDOMAIN,表示该域名不存在;NOERROR 但无应答记录,通常是该类型未配置。
- MX 记录的值形如「10 mail.example.com」,前面的数字是优先级,越小越优先。
- TXT 记录可能较长且包含引号,属于正常现象,常用于 SPF、DKIM、DMARC 及域名验证。
使用场景
技术原理
DNS 查询在传统上通过 UDP 协议向 53 端口发起:客户端向配置的递归解析器发送一个包含查询名称和类型的 DNS 报文,解析器递归地向根、顶级域、权威服务器逐级查询,最终把应答返回给客户端。这一过程定义于 RFC 1035,报文是紧凑的二进制格式,浏览器出于安全限制无法直接收发 UDP 53,因此网页端 DNS 工具通常需要后端代理。 DoH(DNS over HTTPS)定义于 RFC 8484,把 DNS 报文封装在 HTTPS 请求中传输,默认端口 443。它有两种载荷形式:二进制的 wireformat(application/dns-message)和 JSON 格式(application/dns-json,由 Google 在 RFC 8484 之外额外提供,Cloudflare 也支持)。本工具使用 JSON 形式:浏览器向 `https://cloudflare-dns.com/dns-query?name=example.com&type=A` 发送带 `Accept: application/dns-json` 头的 GET 请求,直接拿到结构化 JSON 应答,无需后端。 返回 JSON 中的关键字段:`Status` 为 DNS RCODE(0=NOERROR,3=NXDOMAIN 域名不存在,2=SERVFAIL 服务器故障);`Answer` 数组每项含 `name`(记录名)、`type`(记录类型数字码,如 1=A、28=AAAA、15=MX、16=TXT、2=NS、6=SOA、5=CNAME)、`TTL`(缓存生存时间,秒)、`data`(记录值)。权威应答也可能出现在 `Authority`(SOA、NS)和 `Additional` 段中。 DoH 的核心价值在于隐私与抗干扰:DNS 查询被 HTTPS 加密,中间人无法像明文 UDP 53 那样窥探或篡改查询内容,也难以通过端口识别进行流量劫持。这也使得本工具能在纯浏览器环境下完成查询——流量直达 DoH 提供商,不经任何中间服务器。
- 传统 DNS:RFC 1035,UDP/TCP 53 端口,二进制报文,浏览器无法直接收发,需后端代理。
- DoH:RFC 8484,HTTPS 封装 DNS,443 端口,加密查询内容,抗窥探与抗劫持。
- JSON DoH:请求带 `Accept: application/dns-json`,返回结构化 JSON,Cloudflare 与 Google 均支持,CORS 开放,浏览器可直连。
- RCODE:0=NOERROR、2=SERVFAIL、3=NXDOMAIN(域名不存在)、5=REFUSED。
- 记录类型码:1=A、28=AAAA、5=CNAME、15=MX、16=TXT、2=NS、6=SOA、33=SRV、257=CAA。
- TTL 为缓存生存时间(秒),递归解析器在 TTL 内直接返回缓存结果,过期后才会重新向权威服务器查询。
示例
查询 example.com 的 A 记录
域名: example.com
类型: A
状态: NOERROR
Answer:
example.com. 300 A 93.184.216.34
# TTL 300 秒:该 IPv4 记录将被缓存 5 分钟。查询 gmail.com 的 MX 记录
域名: gmail.com
类型: MX
状态: NOERROR
Answer:
gmail.com. 3600 MX 5 gmail-smtp-in.l.google.com.
gmail.com. 3600 MX 10 alt1.gmail-smtp-in.l.google.com.
# 数字为优先级,越小越优先;邮件优先投递到 5 对应的服务器。查询 example.com 的 TXT 记录(SPF)
域名: example.com
类型: TXT
状态: NOERROR
Answer:
example.com. 3600 TXT "v=spf1 -all"
# 该 SPF 策略表示域名不发送邮件,所有来源均被拒绝。查询不存在的域名(NXDOMAIN)
域名: this-domain-does-not-exist-12345.com
类型: A
状态: NXDOMAIN
Answer: (无)
# Status=3 表示该域名在 DNS 中不存在,并非服务器故障。常见问题
DNS 查询会泄露我的隐私吗?
不会。查询请求由你的浏览器直接发往你选择的 DoH 服务商(Cloudflare、Google 或阿里公共 DNS),全程 HTTPS 加密,不经过本站服务器,我们看不到你查了什么。这相比传统明文 UDP 53 查询反而更安全。
为什么不同服务商返回的结果有时不一致?
DNS 结果会按 TTL 被各级解析器缓存,不同服务商的缓存状态和刷新时机不同,因此在记录刚变更的传播期内可能返回新旧不同的值。等待旧记录的 TTL 过期后,结果会趋于一致。
NOERROR 但没有应答记录是什么意思?
表示域名存在且查询成功,但该域名没有配置你所查类型的记录。例如查询某域名的 MX 记录返回空,通常意味着该域名不接收邮件。Authority 段一般会返回 SOA 记录作为否定缓存的依据。
TTL 数值大小有什么影响?
TTL(秒)决定记录在解析器缓存中的有效时长。TTL 大则全球解析快、服务器负载低,但记录变更后生效慢;TTL 小则变更生效快,但查询更频繁。准备变更 DNS 前常会先调小 TTL。
支持反向 DNS 查询(IP 查域名)吗?
支持。查询 PTR 记录时,需要把 IP 地址按反向格式输入:例如 8.8.8.8 对应 8.8.8.8.in-addr.arpa,IPv6 则使用 ip6.arpa 后缀。返回的 PTR 记录即该 IP 反向解析到的域名。
为什么浏览器直接访问 DoH 链接会报 400?
Cloudflare 的 JSON DoH 端点要求请求携带 Accept: application/dns-json 头,地址栏直接访问默认发出的是 HTML Accept 头,因此返回 400。这是正常现象,代码中用 fetch 自定义请求头即可正常调用。
能查询任意顶级域名吗?
可以。只要该域名已在 DNS 中注册并配置了对应记录,包括通用顶级域(.com、.org)、国家代码域(.cn、.jp、.de)以及新通用顶级域,DoH 服务商都会递归解析并返回结果。