DNS信息查询工具dig用法详解


    目录
  • dig介绍
  • 安装 dig
  • 常见选项
    • +nocookie 选项详解
  • 基本使用方法
    • 查询A记录
    • 查询MX记录
    • 查询NS记录
  • 总结

    dig介绍
    dig是一款用于查询DNS信息的命令行工具。它可以帮助我们获取域名的相关信息,如IP地址、NS记录、MX记录等。本文将介绍dig的基本使用方法以及一些常见参数的意义。
    安装 dig
    在大多数Linux发行版中,dig是通过安装bind软件包来提供的。在Debian/Ubuntu上,可以使用以下命令进行安装:
    
apt install dnsutils

    在CentOS/RHEL上,可以使用以下命令进行安装:
    
yum install bind-utils

    常见选项
    以下是dig命令中常见的一些选项:
    
  • +trace:跟踪DNS查询的路径。它显示查询经过的所有DNS服务器。
  • +short:仅显示查询结果的关键信息,以简化输出。
  • +nocookie:禁用查询中的cookie。在某些情况下,DNS服务器可能会返回一个cookie,这可能影响到后续的查询。
  • +ignore:忽略查询结果中的授权和附加部分。
  • +stats:显示查询的统计信息,如服务器响应时间、查询时间等。

    +nocookie 选项详解
    在DNS查询中,+nocookie选项用于禁用服务器在查询中返回cookie。此cookie是用于识别并跟踪用户会话的小文件。然而,在某些情况下,返回的cookie可能会对后续的查询造成影响,因此使用+nocookie选项可以禁用此功能,确保查询的准确性和一致性。
    例如,当查询DNS域名时,我们可能只关注域名的解析结果,而不需要考虑会话跟踪。在这种情况下,使用+nocookie选项可以让我们获得更简洁和准确的输出。
    要使用+nocookie选项,只需将其添加到dig命令中:
    
dig example.com +nocookie

    截至发文时,知名 Public DNS 119.29.29.29 海外节点仍不支持 cookie,必须使用 +nocookie 选项,否则会超时。腾讯云海外节点CVM/Lighthouse的默认DNS同样受此影响,无法直接使用新版dig命令查询。
    基本使用方法
    dig 的基本命令格式为:
    
    dig <域名> [查询类型] [@服务器] [+选项]
    
  • <域名>:要查询的域名。
  • [查询类型]:指定要查询的类型,默认为A记录(IPv4地址)。其他常见的查询类型包括MX(邮件交换服务器)、NS(域名服务器)、TXT(文本记录)等。
  • [@服务器]:指定用于查询的DNS服务器,默认为本地计算机的DNS服务器。
  • +[选项]:指定附加选项。在后面的部分中,我们将详细介绍常见的选项。

    查询A记录
    要查询域名的A记录(IPv4地址),可以运行以下命令:
    
dig example.com

    输出示例:
    
    ; <<>> DiG 9.16.1-Ubuntu <<>> example.com
    ;; global options: +cmd
    ;; Got answer:
    ;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 5197
    ;; flags: qr rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 0, ADDITIONAL: 1
    ;; QUESTION SECTION:
    ;example.com.   IN A
    ;; ANSWER SECTION:
    example.com.  299 IN A 93.184.216.34
    ;; ADDITIONAL SECTION:
    输出中的ANSWER SECTION部分包含了查询结果。本例中,域名example.com的A记录为93.184.216.34
    查询MX记录
    要查询域名的MX记录(邮件交换服务器),可以使用以下命令:
    
dig example.com MX

    输出示例:
    
    ; <<>> DiG 9.16.1-Ubuntu <<>> example.com MX
    ;; global options: +cmd
    ;; Got answer:
    ;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 15734
    ;; flags: qr rd ra; QUERY: 1, ANSWER: 5, AUTHORITY: 0, ADDITIONAL: 1
    ;; QUESTION SECTION:
    ;example.com.   IN MX
    ;; ANSWER SECTION:
    example.com.  21768 IN MX 0 .
    example.com.  21768 IN MX 10 mail.example.com.
    example.com.  21768 IN MX 20 mx.example.com.
    example.com.  21768 IN MX 30 mx2.example.com.
    example.com.  21768 IN MX 40 mx3.example.com.
    ;; ADDITIONAL SECTION:
    在输出的ANSWER SECTION中,可以看到域名example.com的MX记录。可见,在这个例子中,该域名有5个MX记录。
    查询NS记录
    要查询域名的NS记录(域名服务器),可以运行以下命令:
    
dig example.com NS

    输出示例:
    
    ; <<>> DiG 9.16.1-Ubuntu <<>> example.com NS
    ;; global options: +cmd
    ;; Got answer:
    ;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 46256
    ;; flags: qr rd ra; QUERY: 1, ANSWER: 2, AUTHORITY: 0, ADDITIONAL: 1
    ;; QUESTION SECTION:
    ;example.com.   IN NS
    ;; ANSWER SECTION:
    example.com.  86400 IN NS a.iana-servers.net.
    example.com.  86400 IN NS b.iana-servers.net.
    ;; ADDITIONAL SECTION:
    在输出的ANSWER SECTION中,可以看到域名example.com的两个NS记录。
    总结
    本教程介绍了dig命令的基本使用方法和一些常见选项的意义。通过使用dig,我们可以方便地查询DNS信息,并获取域名的相关记录。在实际使用中,我们可以根据需要选择不同的查询类型和选项来获得所需的信息。