基础工具:nslookup
(跨平台通用)
适用场景:快速查询域名对应的IP地址(A记录)、检查DNS服务器响应。
nslookup example.com
-
输出解读:
Server: 192.168.1.1 # 你当前使用的本地DNS服务器 Address: 192.168.1.1#53 # DNS服务器地址及端口 Non-authoritative answer: # 非权威应答(来自缓存) Name: example.com Address: 93.184.216.34 # 域名解析出的IP地址
-
查询指定DNS服务器:
nslookup example.com 8.8.8.8 # 使用Google DNS (8.8.8.8) 查询
-
查询特定记录类型 (如MX邮件记录):
nslookup -type=MX example.com
专业工具:dig
(Linux/macOS推荐)
适用场景:获取详细的DNS解析信息,包括TTL、权威服务器等,适合深度排查。
dig example.com
-
关键输出解析:
; <<>> DiG 9.16.1 <<>> example.com ;; ANSWER SECTION: # 核心解析结果 example.com. 3600 IN A 93.184.216.34 ;; Query time: 25 msec # 查询耗时 ;; SERVER: 192.168.1.1#53(192.168.1.1) # 使用的DNS服务器 ;; WHEN: Mon Jan 01 12:00:00 UTC 2025 ;; MSG SIZE rcvd: 56
-
常用进阶命令:
dig example.com +short # 仅输出IP地址(最简洁) dig example.com MX # 查询MX记录 dig example.com NS # 查询域名服务器(NS记录) dig @8.8.8.8 example.com # 指定DNS服务器查询 dig +trace example.com # 显示完整的DNS递归解析过程
快速检查工具:ping
(所有平台)
适用场景:验证域名是否能解析并测试网络连通性(触发A记录查询)。
ping example.com
- 输出关键信息:
PING example.com (93.184.216.34): 56 data bytes # 显示解析出的IP 64 bytes from 93.184.216.34: icmp_seq=0 ttl=54 time=23.187 ms # 网络延迟
- 注意:若返回
ping: cannot resolve example.com: Unknown host
,表明DNS解析失败。
备用工具:host
(Linux/macOS)
适用场景:简洁查询,语法直观。
host example.com
- 输出示例:
example.com has address 93.184.216.34 example.com mail is handled by 10 mail.example.com. # MX记录
- 查询特定记录:
host -t MX example.com # 查询MX记录 host -t NS example.com # 查询NS记录
Windows专用:Resolve-DnsName
(PowerShell)
适用场景:Windows PowerShell环境下的强大查询工具。
Resolve-DnsName example.com
- 输出包含:IP地址、记录类型(TTL)、查询服务器等结构化数据。
- 查询特定记录:
Resolve-DnsName example.com -Type MX # 查询MX记录
常见问题排查场景
- 解析结果不符预期?
- 用
dig @8.8.8.8 example.com
或nslookup example.com 1.1.1.1
对比不同公共DNS(如Google、Cloudflare)。 - 检查本地Hosts文件(
C:\Windows\System32\drivers\etc\hosts
或/etc/hosts
)是否覆盖了DNS解析。
- 用
- 查询无结果?
- 确认域名拼写正确。
- 用
ping 8.8.8.8
检查网络连通性。 - 尝试
dig +trace example.com
查看解析链路在哪一步失败。
- 解析延迟高?
- 观察
dig
输出中的Query time
字段。 - 更换本地DNS服务器地址(如改用
5.5.5
阿里云DNS)。
- 观察
注意事项
- 权限要求:普通用户权限即可执行上述命令(除修改系统配置)。
- 防火墙限制:若DNS端口(UDP 53)被封锁,可能导致查询失败。
- 记录类型:常用记录包括
A
(IPv4)、AAAA
(IPv6)、CNAME
(别名)、MX
(邮件)、TXT
(文本验证)。 - TTL值:DNS响应中的
TTL
(Time-To-Live) 表示记录在本地缓存的存活时间(秒)。
引用说明:本文所述命令语法参考自互联网工程任务组(IETF)发布的DNS协议标准(RFC 1034, RFC 1035),以及GNU
dig
、ISC BIND、Microsoft PowerShell官方文档,网络环境差异可能导致输出结果略有不同,建议结合具体场景分析。
通过灵活运用这些命令行工具,你可以高效诊断域名解析问题,确保网站和服务器的可访问性,建议从 nslookup
或 ping
开始基础验证,进阶分析时使用 dig
获取完整信息。
原创文章,发布者:酷番叔,转转请注明出处:https://cloud.kd.cn/ask/7474.html