dig 命令深入学习

一、dig 命令有什么用

dig 命令(Domain Information Groper)是一个用于查询 DNS (域名系统)记录的强大工具,它提供了详细的DNS信息,主要用于帮助用户诊断、调试和验证与域名解析相关的问题。

除了 dig 命令,还有一种跟 dig 功能是差不多的命令 nslookup

二、dig 命令安装

如果您的 Linux 系统默认没有安装 dig ,可能会提示dig: command not found。请使用以下命令安装:

Ubuntu 和 Debian 安装 dig 命令:

sql 复制代码
sudo apt update && sudo apt install dnsutils

CentOS 和 Fedora 安装 dig 命令:

perl 复制代码
sudo yum install bind-utils

Arch Linux 安装 dig 命令:

perl 复制代码
sudo pacman -S bind-tools

三、dig 命令基本语法

css 复制代码
dig [@服务器] [选项] [域名] [查询类型]
  • 服务器:指定DNS服务器(默认使用系统配置的DNS)。
  • 域名:要查询的域名。
  • 查询类型 :如AMXNS等(默认为A记录)。

常用查询类型:

类型 说明
A IPv4地址记录
AAAA IPv6地址记录
MX 邮件交换记录
NS 域名服务器记录
CNAME 别名记录
TXT 文本记录(如SPF、DKIM)
SOA 权威起始记录
PTR 反向解析记录(IP转域名)

常用选项:

选项 说明
+short 仅显示结果(简洁输出)
+trace 跟踪DNS解析全过程(模拟递归查询)
+nocmd 隐藏初始版本信息
+noall 隐藏所有默认输出
+answer 仅显示答案部分
+stats 显示查询统计信息(时间、大小等)
+multiline 多行显示SOA记录(更易读)
-x <IP> 反向查询(PTR记录)
@<DNS服务器> 指定DNS服务器(如@8.8.8.8

四、dig 命令输出解读

基础查询:

csharp 复制代码
dig example.com
# 或仅显示IP
dig +short example.com

dig 命令输出解读:

dig 命令的输出包含多个部分,每个部分都提供了关于域名解析的不同信息。

​编辑

最重要的部分是ANSWER部分:

  • 第一列列出了被查询的服务器名称
  • 第二列是 TTL(存活时间),在此之后记录将被刷新
  • 第三列显示查询的类别 -- 在本例中,IN代表互联网
  • 第四列显示查询的类型 -- 在本例中,CNAME代表 CNAME(别名)记录,A代表 A(地址)记录
  • 最后一列显示与域名关联的别名和 IP 地址(结果)

可以使用+noanswer参数禁用此部分输出。

五、dig 命令使用示例

查询域名的 A 记录

css 复制代码
dig example.com A

查询域名的 MX 记录

复制代码
dig example.com MX +noall +answer

查询域名的 NS 记录

arduino 复制代码
dig example.com NS +short

查询 IP 对应的域名(反向解析)

csharp 复制代码
dig -x 8.8.8.8 +short
# 输出:dns.google.

指定 DNS 服务器查询

css 复制代码
dig @1.1.1.1 example.com

跟踪 DNS 解析过程

复制代码
dig +trace example.com

dig 批量查询

首先我们把要查询的域名放在一个文件里面,每行一个

bash 复制代码
cat dns.txt 
example1.com
example2.com

批量查询时 dig 命令加上 -f 选项

复制代码
dig -f dns.txt

六、总结

dig 命令是一个强大的工具,它可以帮助我们深入了解域名解析的过程和细节。通过学习和实践 dig 命令,我们可以更好地理解和诊断 DNS 相关的问题,从而确保我们的网站和应用能够正常访问。

相关推荐
sjsjsbbsbsn35 分钟前
大模型核心知识总结
java·人工智能·后端
Moment44 分钟前
2026 年,AI 全栈时代到了,前端简历别再只写前端技术了 🫠🫠🫠
前端·后端·面试
白晨并不是很能熬夜2 小时前
【PRC】第 2 篇:Netty 通信层 — NIO 模型 + 自定义协议 + 心跳
java·开发语言·后端·面试·rpc·php·nio
zshs0002 小时前
#从偶发无字幕到补偿探测链路:一次 B 站字幕导入问题的完整收敛过程
java·后端·重构
IT_陈寒2 小时前
JavaScript里这个隐式类型转换的坑,我终于爬出来了
前端·人工智能·后端
一直会游泳的小猫2 小时前
homebrew
linux·mac·工具·包管理
寒秋花开曾相惜2 小时前
(学习笔记)4.2 逻辑设计和硬件控制语言HCL(4.2.1 逻辑门&4.2.2 组合电路和HCL布尔表达式)
linux·网络·数据结构·笔记·学习·fpga开发
狂奔的sherry3 小时前
一次由 mount 引发的 Linux 文件系统“错觉”
linux·运维·服务器
掘金者阿豪3 小时前
Django接金仓数据库:我踩过的坑和填坑指南
后端
小黑要努力3 小时前
智能音箱遇到的问题(一)
linux·运维·git