当前位置:首页>Linux>Linux 基础:dig 命令——DNS排障利器

Linux 基础:dig 命令——DNS排障利器

  • 2026-10-21 13:26:56
Linux 基础:dig 命令——DNS排障利器

在日常网络问题排查中,“域名访问不了”几乎是最常见的问题之一。

这类问题的本质,往往都指向同一个环节:DNS 解析。

很多人用 ping、nslookup 测试域名,但在真实的运维和排障场景中,更专业、更强大的工具是——dig。

今天这篇文章,我们就系统讲清楚:dig 是什么、能查什么、以及在实际场景中如何用它定位问题。

一、dig 是什么?

dig全称是Domain Information Groper,是 Linux 下用于查询 DNS 信息的命令行工具,通常包含在 bind-utils 或 dnsutils 包中。
与ping不同,dig不关心网络是否能通,它只专注一件事:DNS 是如何解析这个域名的?
dig 的核心优势在于:

1. 支持所有 DNS 记录类型

2. 返回结果详细、结构清晰

3. 适合脚本和自动化

是运维、网络工程师的标配工具

二、最基本的 dig 用法

1. 查询域名 A 记录

dig www.baidu.com
输出内容很多,但真正有价值的是ANSWER SECTION:
;; 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:
dig www.baidu.com +short
输出直接变成:110.242.68.4
这在写脚本或快速验证时非常方便。

三、查询不同类型的 DNS 记录

DNS 不只有 A 记录,dig 的强大之处就在于它能查所有类型。

1. 查询 MX 记录(邮件服务器)

dig qq.com MX
常用于排查邮件发送、接收异常。

2. 查询 NS 记录(权威 DNS)

dig google.com NS
可以判断一个域名是由哪些 DNS 服务器负责解析的。

3. 查询 TXT 记录

dig google.com TXT
TXT 记录常用于:

域名验证

SPF / DKIM / DMARC

各类云服务配置

四、指定 DNS 服务器查询

这是 dig 最重要、也是最常用的功能之一。

1. 使用公共 DNS 查询

dig @8.8.8.8 www.baidu.com
这里的 @8.8.8.8 表示:
不走系统默认 DNS,直接向指定服务器发起查询。
常见公共 DNS:

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)

dig www.baidu.com +trace
这个命令会从根域名服务器开始,一步步显示:
根 DNS
顶级域 DNS(.com)
权威 DNS
最终 A 记录
适合以下场景:
域名刚做完解析
怀疑 DNS 没有生效
排查缓存和权威服务器问题

六、TTL 与缓存问题分析

dig 输出中的 TTL 非常关键:
www.baidu.com.  600 IN A  110.242.68.4
TTL 表示:这个解析结果在缓存中还能存活多久(秒)
常见问题包括:
  • 改了 DNS,但客户端仍解析到旧 IP
  • CDN 切换后访问异常
通过 TTL,你可以判断:是不是还在缓存有效期内。

七、常用参数速查

几个非常实用的 dig 组合用法:
dig 域名 +shortdig 域名 Adig 域名 MXdig @DNS服务器 域名dig 域名 +trace
如果你只记住这些,已经能解决 90% 的 DNS 查询问题。

八、dig 与 nslookup 的区别

对比项
dig
nslookup
输出信息
详细、结构化
简单
记录类型支持
全面
有限
脚本友好
非常好
一般
推荐场景
排障、运维
临时查询
一句话总结:nslookup 适合“看一眼”,dig 适合“查清楚”。

九、写在最后

dig 并不是一个“日常娱乐型命令”,而是一个关键时刻救命的工具。
当你遇到:
  • 域名访问异常
  • CDN 切换问题
  • 邮件发送失败
  • 域名解析未生效
dig 往往是你最先、也是最后要用的工具。
如果你正在系统学习Linux网络基础,dig 是必学命令之一。
如果这篇文章对你有帮助,欢迎关注、点赞、收藏、转发,我们下篇继续聊 Linux 基础。
最近博主新开了一个英语学习的号【英语每日一刻】,有兴趣的可以点击下方名片一并关注一下!期待和大家一起在进步的道路上携手并肩!

最新文章

随机文章