📅  最后修改于: 2023-12-03 14:40:43.766000             🧑  作者: Mango
dig
是一个用于查询DNS(Domain Name System)服务器的命令行工具。它能够查询DNS服务器的各种记录类型,如A记录、MX记录、CNAME记录、NS记录等,并返回相应的结果,可以方便地测试和诊断DNS服务器配置。本文将详细介绍dig
命令的使用。
dig
命令的基本格式为:
dig [选项] [名称] [类型]
dig
命令支持以下选项:
-b address
:指定本地网络接口的地址。-c class
:指定查询的记录类别。-f filename
:从文件中读取查询信息而非命令行。-k filename
:指定TSIG秘钥文件。-p port
:指定要连接的DNS服务器的端口。-q type
:指定查询的记录类型。-t type
:指定查询的记录类型。-x addr
:反向查询域名。-y name:key[:alg]
:指定TSIG秘钥的名称、密钥和加密算法。dig
命令中的名称和类型可以有以下的组合方式:
@server name type
:查询指定DNS服务器上的指定主机名的指定类型的记录。name type
:查询系统配置的默认的DNS服务器上的指定主机名的指定类型的记录。addr
:反向查询指定IP地址处的主机名。addr.arpa
:反向查询指定IP地址处的主机名,与addr
方式等价。+trace addr
:查询指定主机名的DNS服务器列表。以下是dig
命令的一些示例:
$ dig example.com
输出:
; <<>> DiG 9.11.3-1ubuntu1.15-Ubuntu <<>> example.com
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 58611
;; flags: qr rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 0, ADDITIONAL: 1
;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 65494
;; QUESTION SECTION:
;example.com. IN A
;; ANSWER SECTION:
example.com. 3786 IN A 93.184.216.34
;; Query time: 4 msec
;; SERVER: 10.10.10.1#53(10.10.10.1)
;; WHEN: Wed Dec 22 17:16:15 CST 2021
;; MSG SIZE rcvd: 56
上述例子查询了example.com
的A记录,输出结果包括查询状态、响应头、问题区、答案区等信息。其中,ANSWER SECTION
节给出了查询结果,A记录对应的IP为93.184.216.34。
$ dig example.com MX
输出:
; <<>> DiG 9.11.3-1ubuntu1.15-Ubuntu <<>> example.com MX
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 52365
;; flags: qr rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 0, ADDITIONAL: 1
;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 65494
;; QUESTION SECTION:
;example.com. IN MX
;; ANSWER SECTION:
example.com. 86145 IN MX 10 mail.example.com.
;; Query time: 4 msec
;; SERVER: 10.10.10.1#53(10.10.10.1)
;; WHEN: Wed Dec 22 17:23:18 CST 2021
;; MSG SIZE rcvd: 63
上述例子查询了example.com
的MX记录,输出结果包括A记录对应的响应头、问题、答案等信息。其中,ANSWER SECTION
节给出了查询结果,MX记录对应的邮件服务器为mail.example.com
。
$ dig www.example.com CNAME
输出:
; <<>> DiG 9.11.3-1ubuntu1.15-Ubuntu <<>> www.example.com CNAME
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 38676
;; flags: qr rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 0, ADDITIONAL: 1
;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 65494
;; QUESTION SECTION:
;www.example.com. IN CNAME
;; ANSWER SECTION:
www.example.com. 21779 IN CNAME example.com.
;; Query time: 4 msec
;; SERVER: 10.10.10.1#53(10.10.10.1)
;; WHEN: Wed Dec 22 17:27:34 CST 2021
;; MSG SIZE rcvd: 64
上述例子查询了www.example.com
的CNAME记录,输出结果包括响应头、问题、答案等信息。其中,ANSWER SECTION
节给出了查询结果,CNAME记录对应的主机名为example.com
。
dig
命令是一个方便且功能强大的DNS查询工具,可以用来测试和诊断DNS服务器的配置。本文介绍了dig
命令的基本格式、选项、名称与类型以及一些示例。在实际使用中,您可以根据需要自行组合命令行参数来进行查询。