dig
(domain information groper)是一个强大的命令行工具,用于查询 dns(域名系统)信息。
它比 nslookup
更灵活,常用于调试 dns 问题或获取域名解析的详细信息。
以下是 dig
的基本用法和常见示例:
基本语法
dig [选项] [域名] [查询类型]
常用选项
选项 | 作用 |
---|---|
+short | 仅显示简略结果(如 ip 地址) |
+trace | 跟踪 dns 查询的完整递归路径 |
+nocmd | 隐藏命令输出的头部信息 |
+noall | 隐藏所有非必要信息 |
+answer | 仅显示答案部分(常用组合:+noall +answer) |
-x <ip> | 反向查询(ip 到域名) |
-t <类型> | 指定查询类型(如 a、mx、ns 等) |
@<dns服务器> | 指定使用的 dns 服务器 |
常见查询示例
查询域名的 a 记录(默认)
dig example.com
仅显示 ip 地址(简略输出)
dig example.com +short
查询特定记录类型(如 mx、ns、txt 等)
dig example.com mx # 邮件服务器记录 dig example.com ns # 域名服务器记录 dig example.com txt # txt 记录(如 spf、dkim)
反向查询(通过 ip 查域名)
dig -x 8.8.8.8
指定 dns 服务器查询(如使用 google dns)
dig @8.8.8.8 example.com
跟踪 dns 解析全过程(递归查询)
dig example.com +trace
批量查询多个域名(结合循环)
for domain in example.com google.com; do dig $domain +short; done
输出解析
典型的 dig
输出包含以下部分:
- header: 显示查询状态(如
noerror
表示成功)。 - question: 查询的问题(域名和类型)。
- answer: 查询结果(如 ip 地址、记录值)。
- authority/additional: 其他相关信息(如权威 dns 服务器)。
实用技巧
组合选项:精简输出(隐藏不必要信息)
dig example.com +noall +answer
调试 dns 问题:使用 +trace
查看查询路径。
检查 dnssec:查询 ds 或 dnskey 记录验证签名。
dig example.com ds +dnssec
注意事项
- 如果未安装
dig
,可通过安装dnsutils
(linux)或bind-utils
(rhel/centos)获取。 - 在 windows 上,可通过 wsl 或安装 bind 工具包使用
dig
。
通过灵活组合选项,dig
可以满足大多数 dns 查询需求。如需更详细的信息,可通过 man dig
查看手册。
总结
以上为个人经验,希望能给大家一个参考,也希望大家多多支持代码网。
发表评论