DNS 查询

A/AAAA/MX/NS/TXT/CNAME 多记录类型

436 次访问
DNS LOOKUP · DOH

DNS 查询工具

A / AAAA / CNAME / MX / TXT / NS / SOA / CAA 全记录 · Google / Cloudflare DoH 实时查询

查询配置

查询结果

输入域名后点击查询

DNS 记录类型速查

A:将域名解析到 IPv4 地址(最常见)。例 example.com → 93.184.216.34。

AAAA:将域名解析到 IPv6 地址(IPv6 普及后渐多)。

CNAME:别名记录,将域名指向另一个域名。注:根域名不能用 CNAME。

MX:邮件交换服务器记录,含优先级(低值优先)。

TXT:任意文本记录,常用于 SPF / DKIM / DMARC / Google 站长验证等。

NS:域名权威服务器(通常 2-4 个,多线路冗余)。

SOA:起始授权记录,含主服务器 / 管理员邮箱 / 序列号 / 过期时间。

CAA:限制哪些证书机构可以为域名颁发证书(如只允许 Let's Encrypt)。

关于本工具

了解工具定位 · 使用场景 · 对比优势

输入域名,查询 A(IPv4)、AAAA(IPv6)、MX(邮件交换)、NS(域名服务器)、TXT(文本记录)、CNAME(别名)六种 DNS 记录。网站运维排查解析故障、开发者配置域名指向、安全分析检测 DNS 劫持,即时获取结果。查询由后端服务器发起,不存储查询记录。

使用场景

🛡️

邮件安全排查

企业 IT 管理员收到员工反馈邮件被退信或误判为垃圾邮件。通过本工具查询域名的 MX 记录,确认邮件服务器地址是否与官方公布的 SPF 记录一致;同时查询 TXT 记录,检查是否存在伪造的 DKIM 签名或异常的 DMARC 策略,快速定位邮件投递故障原因。

🌐

网站迁移验证

运维人员将网站从旧服务器迁移到新 IP 后,需要确认 DNS 解析已全球生效。使用本工具分别查询 A 记录(IPv4)和 AAAA 记录(IPv6),对比新旧 IP 是否已切换;再查 CNAME 记录确认 CDN 别名指向正确,避免迁移后用户访问失败。

📧

邮箱服务切换

公司从自建邮件服务器迁移到企业邮箱(如腾讯企业邮),需验证 MX 记录是否指向新服务商。通过本工具查询 MX 记录的优先级和主机名,确认低优先级的旧服务器已移除,避免邮件仍被路由到废弃服务器导致丢失。

🔍

域名所有权验证

SEO 专员或站长在 Google Search Console、百度站长平台添加域名时,需通过 TXT 记录验证所有权。使用本工具查询当前 TXT 记录,确认平台提供的验证字符串已正确写入,无需等待 DNS 缓存刷新即可在工具中实时看到结果,加速站点验证流程。

CDN 配置诊断

前端开发人员配置了 Cloudflare 或阿里云 CDN 后,页面加载速度未改善。通过本工具查询 CNAME 记录,确认域名是否已正确解析到 CDN 提供的别名;再查 A 记录,看 IP 是否已从源服务器变为 CDN 边缘节点 IP,快速判断 CDN 是否生效。

📋

NS 变更验证

域名从 Godaddy 转移到 Cloudflare 后,需确认 DNS 服务器已切换。使用本工具查询 NS 记录,列出当前权威 DNS 服务器列表,验证是否已移除旧服务商的 NS,并新增了新服务商的 NS,避免因 NS 记录不一致导致解析中断。

对比矩阵本工具 vs 竞品 vs 传统方法

维度本工具 (dns.tl654.com)whatsmydns.net传统方法 (dig/nslookup)
数据隐私DNS 查询在浏览器本地完成,域名不发送到服务器域名提交到第三方服务器处理查询结果仅在本地终端显示,不经过第三方服务
处理速度1-2 秒内返回结果2-5 秒(含页面加载与广告渲染)即时(毫秒级,取决于网络延迟)
离线可用不可用(需联网加载页面)不可用(需联网访问网站)可用(命令行工具已安装至本地)
批量查询不支持(单次查询一个域名)不支持(单次查询一个域名)支持(通过脚本批量处理多个域名)
结果可读性结构化展示,分类清晰可视化展示,含地理位置信息原始输出,需手动解析
操作门槛零门槛,打开网页即可使用零门槛,打开网页即可使用需熟悉命令行及参数(如 dig +short)
平台依赖依赖浏览器(Chrome/Firefox/Safari 等)依赖浏览器依赖操作系统(Windows/macOS/Linux)

使用指南

上手步骤 · 输入输出 · 避坑提示

使用步骤

  1. 在输入框填入域名(如 example.com),支持 IPv4/IPv6 地址
  2. 从下拉菜单选择记录类型:A、AAAA、MX、NS、TXT 或 CNAME
  3. 点击「查询」按钮,后端发起 DNS 解析请求
  4. 查看结果表格:类型、记录值、TTL(缓存时间)逐行显示

输入输出示例7 个典型场景,覆盖常规、边界与易错

输入输出说明
example.comA: 93.184.216.34 AAAA: 2606:2800:220:1:248:1893:25c8:1946 MX: 10 mx.example.com NS: ns1.example.com TXT: v=spf1 include:_spf.example.com ~all CNAME: (无)典型场景:查询主流域名完整记录
google.comA: 142.250.80.14 AAAA: 2404:6800:400a:809::200e MX: 10 aspmx.l.google.com NS: ns1.google.com TXT: google-site-verification=... CNAME: (无)典型场景:大型网站多记录类型验证
nonexistent-domain-xyz123.comNXDOMAIN (域名不存在)边界 case:未注册域名触发 NXDOMAIN
127.0.0.1A: (无) AAAA: (无) MX: (无) NS: (无) TXT: (无) CNAME: (无) (查询 IP 地址的 PTR 记录需使用反向 DNS 工具)边界 case:输入 IP 而非域名,无正向记录
a.very.long.subdomain.that.exceeds.253.characters.and.should.not.work.but.lets.test.this.boundary.case.example.comSERVFAIL (服务器处理失败) 或 超时边界 case:超长域名触发 SERVFAIL
www.github.comCNAME: github.com A: 140.82.121.3 AAAA: (无) MX: (无) NS: (无) TXT: (无)易错 case:CNAME 记录指向另一域名,用户误以为无 A 记录
_dmarc.example.comTXT: v=DMARC1; p=none; rua=mailto:dmarc@example.com易错 case:下划线开头的 DMARC 记录,新手常忽略

常见错误对照8 个常踩的坑 · 错误 → 修复

1. 查询域名带了协议前缀

错误
https://example.com
修复
example.com

DNS 查询的对象是域名(FQDN),不是 URL。协议头(http://)和路径(/page)不属于 DNS 层级,输入后会查询失败或返回空结果。

2. 查询域名末尾带了端口号

错误
example.com:8080
修复
example.com

端口号是传输层概念,DNS 只解析域名到 IP,不关心端口。冒号及后面的数字会被解析器当作域名非法字符,导致查询无结果。

3. 混淆 AAAA 记录与 A 记录的使用场景

错误
用 AAAA 查询 IPv4 地址
修复
查询 IPv4 地址用 A 记录,查询 IPv6 地址用 AAAA 记录

AAAA 记录(RFC 3596)专用于 IPv6 地址映射,A 记录(RFC 1035)用于 IPv4。选错记录类型会返回空集,误以为域名未解析。

4. MX 记录查询后只看优先级值

错误
只关注优先级数字大小,认为数字越大越重要
修复
优先级数字越小优先级越高(0 最高),服务器会优先尝试数字最小的 MX 记录

MX 记录优先级(preference)是 0-65535 的整数,数值越低优先级越高。常见误解是数字越大越优先,导致邮件路由判断错误。

5. TXT 记录里放了完整 SPF 策略但没加引号

错误
v=spf1 include:_spf.google.com ~all
修复
v=spf1 include:_spf.google.com ~all(作为一条完整字符串,不需要额外引号)

TXT 记录的值本身就是字符串,不需要用户再加引号包裹。如果手动加引号,引号会成为值的一部分,导致 SPF 解析失败。

6. CNAME 记录与其他记录类型共存

错误
example.com 同时有 A 记录和 CNAME 记录
修复
CNAME 记录必须独占该名称,不能与其他记录类型共存(RFC 1034 §3.6.2)

CNAME 记录是别名,指向另一个域名。如果同一名称下还有其他记录(A/MX/NS),DNS 解析行为未定义,部分解析器会忽略 CNAME。

7. NS 记录查询后认为所有结果都可直接使用

错误
把 NS 记录返回的域名直接当作权威服务器 IP 地址
修复
NS 记录返回的是权威服务器域名,需要再对该域名做 A/AAAA 查询才能得到 IP

NS 记录(RFC 1035 §3.3.11)给出的是权威名称服务器的域名,不是 IP 地址。直接使用域名而非 IP 会导致连接失败。

8. 查询时混入空格或不可见字符

错误
 example.com(前面有空格)
修复
example.com(无前导/尾部空格)

域名不允许有空格(RFC 1035 §2.3.1)。输入框中的前导/尾部空格会被当作域名的一部分,导致查询返回 NXDOMAIN。

工作原理

公式推导 · 流程图解 · 依据出处

核心公式

DNS 查询结果 = 递归解析 (权威应答 (权威服务器, 查询类型))

变量说明

  • 递归解析 — 从根服务器逐级查询至权威服务器
  • 权威应答 — 权威服务器返回的特定记录类型数据
  • 权威服务器 — 域名所在 DNS 托管商的授权服务器
  • 查询类型 — A/AAAA/MX/NS/TXT/CNAME 等记录类型

示例

查询 example.com 的 A 记录:递归解析器先向根服务器查询 .com 的 NS,再向 .com 权威服务器查询 example.com 的 NS,最后向 example.com 的权威服务器请求 A 记录,返回 93.184.216.34。

适用范围

适用于标准 DNS 递归查询流程,不适用于 DNSSEC 验证、DoH/DoT 加密查询或私有 DNS 环境。基于 RFC 1034/1035 标准。

原理图

用户输入域名 + 记录类型后端 DNS 查询递归解析 / 缓存A / AAAA / MX / NS / TXT / CNAME结果展示记录值 / TTL / 类型结构化表格输出输入校验域名格式 / 类型合法性DNS 协议交互UDP 53 端口权威服务器响应错误处理超时 / NXDOMAIN无记录 / 格式异常
用户输入 后端处理 输出结果

开发者集成

3 种主流语言 · 复制即用

import socket
import dns.resolver

# 查询 A 记录(IPv4 地址)
hostname = "example.com"
try:
    answers = dns.resolver.resolve(hostname, 'A')
    for rdata in answers:
        print(f"A: {rdata.address}")  # 输出 IPv4 地址
except dns.resolver.NoAnswer:
    print("无 A 记录")
except dns.resolver.NXDOMAIN:
    print("域名不存在")

# 查询 MX 记录(邮件服务器优先级与主机)
try:
    answers = dns.resolver.resolve(hostname, 'MX')
    for rdata in answers:
        print(f"MX: priority={rdata.preference}, host={rdata.exchange}")
except dns.resolver.NoAnswer:
    print("无 MX 记录")
package main

import (
	"fmt"
	"net"
)

func main() {
	hostname := "example.com"

	// 查询 A 记录(IPv4)
	ips, err := net.LookupHost(hostname)
	if err != nil {
		fmt.Println("查询失败:", err)
		return
	}
	for _, ip := range ips {
		fmt.Println("A:", ip)
	}

	// 查询 MX 记录
	mxs, err := net.LookupMX(hostname)
	if err != nil {
		fmt.Println("MX 查询失败:", err)
		return
	}
	for _, mx := range mxs {
		fmt.Printf("MX: priority=%d, host=%s\n", mx.Pref, mx.Host)
	}

	// 查询 TXT 记录
	txts, err := net.LookupTXT(hostname)
	if err != nil {
		fmt.Println("TXT 查询失败:", err)
		return
	}
	for _, txt := range txts {
		fmt.Println("TXT:", txt)
	}
}
const dns = require('dns');

const hostname = 'example.com';

// 查询 A 记录(IPv4)
dns.resolve4(hostname, (err, addresses) => {
  if (err) {
    console.error('A 记录查询失败:', err.code);
    return;
  }
  addresses.forEach(addr => console.log('A:', addr));
});

// 查询 MX 记录
dns.resolveMx(hostname, (err, mxRecords) => {
  if (err) {
    console.error('MX 查询失败:', err.code);
    return;
  }
  mxRecords.forEach(mx => console.log(`MX: priority=${mx.priority}, host=${mx.exchange}`));
});

// 查询 TXT 记录
dns.resolveTxt(hostname, (err, txtRecords) => {
  if (err) {
    console.error('TXT 查询失败:', err.code);
    return;
  }
  txtRecords.forEach(txt => console.log('TXT:', txt.join(' ')));
});

常见问题

8 个高频疑问

为什么 A 记录查询结果和我在电脑上 ping 出来的 IP 不一样?
两种情况常见:一是 DNS 缓存——你电脑或路由器里可能缓了旧 IP(运行 ipconfig /flushdns 清一下再试);二是 CDN 或负载均衡——大型站点(如百度、腾讯)在全球有多个 IP,不同节点、不同时间查询可能拿到不同结果。本工具直接向上游权威 DNS 递归查询,不经过本地缓存,拿到的是当前递归服务器解析到的 IP。如果仍不一致,可以换一个公共 DNS(如 8.8.8.8 或 114.114.114.114)对比。
AAAA 记录和 A 记录有什么区别?我该查哪个?
A 记录返回 IPv4 地址(如 192.168.1.1),AAAA 记录返回 IPv6 地址(如 2400:cb00:2048:1::c629:d7a2)。如果网站同时支持 IPv4 和 IPv6,两个记录都会存在。普通家庭宽带用户查 A 记录就够了;如果你的网络支持 IPv6(运营商分配了 IPv6 地址),或者要排查手机热点、教育网等纯 IPv6 环境下的访问问题,才需要查 AAAA 记录。本工具支持同时查询两种类型,结果会分别列出。
MX 记录查询结果里那么多行,哪一行才是真正在用的邮箱服务器?
MX 记录每行都有一个优先级数字,数字越小优先级越高。主邮箱服务器通常是优先级最低的那行(如 10 或 5)。如果最低优先级有多个记录,说明配置了负载均衡,邮件会随机发到其中一台。如果某台服务器挂了,发件方会自动尝试优先级次低的。本工具按优先级升序排列,最上面一行就是首选服务器。注意:如果域名没有 MX 记录,邮件会尝试发到 A 记录地址,但大部分邮箱服务商不会这样配置。
我查某个域名的 NS 记录,结果里有些服务器 ping 不通,是不是工具出错了?
NS 记录返回的是该域名的权威 DNS 服务器列表,不是 Web 服务器。这些 DNS 服务器可能不响应 ICMP ping(出于安全策略),但能正常处理 DNS 查询。可以用 nslookup 或 dig 命令指定某个 NS 服务器查询来验证:nslookup example.com ns1.example.com。如果所有 NS 服务器都返回超时,通常是域名配置有问题——比如 NS 记录指向的服务器本身不提供该域名的解析服务。本工具只列出 NS 记录原文,不检测服务器是否在线。
TXT 记录里那一长串看不懂的字符是什么?有什么用?
TXT 记录存储文本信息,最常见用途是域名所有权验证和邮件防伪造。比如 SPF 记录(v=spf1 include:_spf.google.com ~all)告诉收件方哪些服务器有权用该域名发邮件;DKIM 记录(v=DKIM1; k=rsa; p=MIGfMA0...)是公钥,用于验证邮件签名。还有 DMARC 记录(v=DMARC1; p=reject)定义邮件验证失败后的处理策略。这些记录由域名管理员手动添加,本工具直接展示原始文本,不会解析或解释其含义——你可以复制出来用在线 SPF/DKIM 检查器解读。
CNAME 记录查出来显示了一个别名,这个域名到底能不能访问?
CNAME 记录将一个域名指向另一个域名(如 www.example.com → example.cdn.com),浏览器会先解析 CNAME 获得目标域名,再解析目标域名的 A/AAAA 记录得到最终 IP。如果 CNAME 指向的域名本身无法解析(比如目标域名不存在或 DNS 配置错误),该域名就无法访问。本工具只返回 CNAME 映射关系,不递归解析最终 IP。可以手动再查一次目标域名的 A 记录来确认是否能解析到 IP。注意:CNAME 不能和同名的其他记录(如 A、MX)共存,这是 DNS 协议的限制。
同时查多种记录类型,结果会不会互相干扰?数据准不准?
不会互相干扰。本工具对每种记录类型(A、AAAA、MX、NS、TXT、CNAME)分别向上游 DNS 发送独立查询请求,结果互不影响。如果某个类型没有记录(例如域名没配置 AAAA),该行会显示「无记录」或空白。唯一可能影响的是 DNS 缓存——短时间内反复查询同一域名,上游递归服务器可能返回缓存结果而非最新数据。建议两次查询间隔至少 30 秒,或换用不同的公共 DNS 服务器对比。
查出来的结果里有些记录显示「无应答」或「查询超时」是什么意思?
「无应答」表示上游 DNS 服务器正常返回了响应,但该域名下没有对应类型的记录——这本身是正常现象,说明域名管理员没配置该记录。「查询超时」则是网络层面问题:可能是你的网络到 DNS 服务器不通,或上游 DNS 服务器本身故障。可以尝试更换 DNS 服务器(在工具输入框旁的服务器选择中切换),或者检查本地网络防火墙是否屏蔽了 DNS 请求(端口 53)。如果所有服务器都超时,大概率是域名本身解析失败,可以先用 ping 域名确认网络连通性。
选择 打开 +新窗口 esc关闭