在日常网络问题排查中,“域名访问不了”几乎是最常见的问题之一。
这类问题的本质,往往都指向同一个环节:DNS 解析。
很多人用 ping、nslookup 测试域名,但在真实的运维和排障场景中,更专业、更强大的工具是——dig。
今天这篇文章,我们就系统讲清楚:dig 是什么、能查什么、以及在实际场景中如何用它定位问题。一、dig 是什么?
dig全称是Domain Information Groper,是 Linux 下用于查询 DNS 信息的命令行工具,通常包含在 bind-utils 或 dnsutils 包中。与ping不同,dig不关心网络是否能通,它只专注一件事:DNS 是如何解析这个域名的?1. 支持所有 DNS 记录类型
2. 返回结果详细、结构清晰
3. 适合脚本和自动化
二、最基本的 dig 用法
1. 查询域名 A 记录
输出内容很多,但真正有价值的是ANSWER SECTION:www.baidu.com. 600 IN A 110.242.68.4域名:www.baidu.com
TTL:600 秒
记录类型:A
IP 地址:110.242.68.4
2. 精简输出(强烈推荐)
dig 默认输出非常冗长,日常使用建议加上 +short:三、查询不同类型的 DNS 记录
DNS 不只有 A 记录,dig 的强大之处就在于它能查所有类型。1. 查询 MX 记录(邮件服务器)
2. 查询 NS 记录(权威 DNS)
可以判断一个域名是由哪些 DNS 服务器负责解析的。3. 查询 TXT 记录
域名验证
SPF / DKIM / DMARC
各类云服务配置
四、指定 DNS 服务器查询
1. 使用公共 DNS 查询
dig @8.8.8.8 www.baidu.com
8.8.8.8 / 8.8.4.4(Google)
1.1.1.1(Cloudflare)
114.114.114.114(国内)
2. 实际排障场景
访问域名失败,但别人可以访问?
你可以对比:
dig www.example.comdig @8.8.8.8 www.example.com
如果结果不同,说明问题出在本地 DNS 或运营商 DNS。五、追踪完整解析过程(+trace)
六、TTL 与缓存问题分析
www.baidu.com. 600 IN A 110.242.68.4
TTL 表示:这个解析结果在缓存中还能存活多久(秒)通过 TTL,你可以判断:是不是还在缓存有效期内。七、常用参数速查
dig 域名 +shortdig 域名 Adig 域名 MXdig @DNS服务器 域名dig 域名 +trace
如果你只记住这些,已经能解决 90% 的 DNS 查询问题。八、dig 与 nslookup 的区别
一句话总结:nslookup 适合“看一眼”,dig 适合“查清楚”。九、写在最后
dig 并不是一个“日常娱乐型命令”,而是一个关键时刻救命的工具。如果你正在系统学习Linux网络基础,dig 是必学命令之一。如果这篇文章对你有帮助,欢迎关注、点赞、收藏、转发,我们下篇继续聊 Linux 基础。最近博主新开了一个英语学习的号【英语每日一刻】,有兴趣的可以点击下方名片一并关注一下!期待和大家一起在进步的道路上携手并肩!