Linux系统中用dig命令查询 DNS (域名系统)记录

 更新时间:2025年05月24日 15:35:50   作者:无心所问  
dig命令(Domain Information Groper)是一个用于查询DNS (域名系统)记录的强大工具,用于查询DNS记录,支持A、MX等类型及+short等选项,可诊断域名解析问题,安装方法因系统而异,需注意输出解读及使用技巧,确保安全高效地进行DNS查询

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

dig 命令安装

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

Ubuntu 和 Debian 安装 dig 命令:

sudo apt update && sudo apt install dnsutils

CentOS 和 Fedora 安装 dig 命令:

sudo yum install bind-utils

Arch Linux 安装 dig 命令:

sudo pacman -S bind-tools

dig 命令基本语法

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

常用查询类型:

类型说明
AIPv4地址记录
AAAAIPv6地址记录
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 命令输出解读

基础查询:

dig example.com
# 或仅显示IP
dig +short example.com

dig 命令输出解读:

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

最重要的部分是ANSWER部分:

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

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

dig 命令使用示例

查询域名的 A 记录

dig example.com A

查询域名的 MX 记录

dig example.com MX +noall +answer

查询域名的 NS 记录

dig example.com NS +short

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

dig -x 8.8.8.8 +short
# 输出:dns.google.

指定 DNS 服务器查询

dig @1.1.1.1 example.com

跟踪 DNS 解析过程

dig +trace example.com

dig 批量查询

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

cat dns.txt 
example1.com
example2.com

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

dig -f dns.txt

注意事项

  • 确保理解dig输出的不同部分,包括头部、问题、答案、权威名称服务器和附加信息。
  • 明确指定查询类型(如A, MX, NS等),以获取所需的DNS记录。
  • 使用@server_ip指定特定的DNS服务器进行查询,以便测试或验证配置。
  • 利用+short选项来简化输出,只显示关键信息。
  • 通过+noall +answer组合仅展示答案部分,去除冗余信息。
  • 考虑到安全性和隐私,谨慎选择执行dig查询的DNS服务器。
  • 当不需要递归查询结果时,可以加上+norec参数直接从被查询的DNS服务器获得信息。
  • 在大量使用dig查询时,请注意不要对目标DNS服务器造成过大的负载,避免被视为恶意行为。

总结

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

到此这篇关于Linux系统中用dig命令查询 DNS (域名系统)记录的文章就介绍到这了,更多相关Linux中dig命令查询DNS内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • linux中批量添加文件前缀的操作方法

    linux中批量添加文件前缀的操作方法

    这篇文章主要介绍了linux中批量添加文件前缀的操作方法,给大家扩展介绍linux下批量改变文件前缀命令,需要的朋友可以参考下
    2019-12-12
  • Linux采用双网卡bond、起子接口的方式

    Linux采用双网卡bond、起子接口的方式

    这篇文章主要给大家介绍了关于Linux采用双网卡bond、起子接口的相关资料,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2018-11-11
  • apache配置文件httpd.conf使用详解

    apache配置文件httpd.conf使用详解

    Apache HTTP服务器的配置文件通常称为 httpd.conf,本文主要介绍了apache配置文件httpd.conf使用详解,该文件包含了各种指令,用于定义 Apache 的行为和功能,感兴趣的可以了解一下
    2024-07-07
  • Ubuntu 20.04 CUDA&cuDNN安装方法(图文教程)

    Ubuntu 20.04 CUDA&cuDNN安装方法(图文教程)

    这篇文章主要介绍了Ubuntu 20.04 CUDA&cuDNN安装方法(图文教程),文中通过图文代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-07-07
  • linux中ipset命令的使用方法详解

    linux中ipset命令的使用方法详解

    ipset是linux kernel的一个功能,可以将ip等组合成一个ipset,在iptables中可以直接指定ipset。下面这篇文章主要给大家介绍了关于linux中ipset命令的使用方法,文中介绍的非常详细,需要的朋友们下面来一起学习学习吧。
    2017-11-11
  • 让apache也支持asp环境的方法

    让apache也支持asp环境的方法

    由于apache和php合作好,各方法都优于asp在apache上的运行所以默认的apache是没有这个模块的,相 关的教程也少,我们要想让apache可运行asp只要加载mod_aspdotnet-2.2.0.2006-setup-r2.msi这个模块就好了
    2014-05-05
  • Tomcat无法加载css和js等静态资源文件的解决思路

    Tomcat无法加载css和js等静态资源文件的解决思路

    Tomcat无法加载css和js等静态资源文件的情况想必从事相关行业的工作人员都有遇到过吧,接下来为大家介绍下详细的解决方法,感兴趣的朋友可以参考下
    2013-10-10
  • Windows上访问(挂载)linux的共享文件夹

    Windows上访问(挂载)linux的共享文件夹

    这篇文章主要介绍了Windows上访问(挂载)linux的共享文件夹的方法,文中有详细的代码示例供大家参考,需要的朋友可以参考下
    2007-02-02
  • Linux 查看历史命令并执行的方法

    Linux 查看历史命令并执行的方法

    今天小编就为大家分享一篇Linux 查看历史命令并执行的方法,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2019-07-07
  • 阿里云CentOS 7系统挂载SSD云盘的教程

    阿里云CentOS 7系统挂载SSD云盘的教程

    最近在阿里云购买了块云盘,但悲催的发现阿里云购买的第2块云盘默认是不自动挂载的,需要手动配置挂载上。所以只能求助万能的百度了,通过查找网上的资料,和自己的实践终于将云盘挂载成功了,现在将步骤分享给大家,有同样需要的朋友们可以参考借鉴。
    2016-11-11

最新评论