dig 是一个强大而灵活的工具,用于查询域名系统(DNS)服务器。在这篇文章中,我们将深入了解它的工作原理以及它能告诉你什么。
dig
是一款强大而灵活的查询 DNS 名称服务器的工具。它执行 DNS 查询,并显示参与该过程的名称服务器返回的应答以及与搜索相关的细节。系统管理员和 DNS 管理员经常使用 dig
来帮助排除 DNS 问题。在这篇文章中,我们将深入了解它的工作原理,看看它能告诉我们什么。
开始之前,对 DNS(域名系统)的工作方式有一个基本的印象是很有帮助的。它是全球互联网的关键部分,因为它提供了一种查找世界各地的服务器的方式,从而可以与之连接。你可以把它看作是互联网的地址簿,任何正确连接到互联网的系统,都应该能够使用它来查询任何正确注册的服务器的 IP 地址。
dig 入门
Linux 系统上一般都默认安装了 dig
工具。下面是一个带有一点注释的 dig
命令的例子:
-
$ dig www.networkworld.com
-
; <<>> DiG 9.16.1-Ubuntu <<>> www.networkworld.com <== 你使用的 dig 版本
-
;; global options: +cmd
-
;; Got answer:
-
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 6034
-
;; flags: qr rd ra; QUERY: 1, ANSWER: 2, AUTHORITY: 0, ADDITIONAL: 1
-
;; OPT PSEUDOSECTION:
-
; EDNS: version: 0, flags:; udp: 65494
-
;; QUESTION SECTION: <== 你的查询细节
-
;www.networkworld.com. IN A
-
;; ANSWER SECTION: <== 结果
-
www.networkworld.com. 3568 IN CNAME idg.map.fastly.net.
-
idg.map.fastly.net. 30 IN A 151.101.250.165
-
;; Query time: 36 msec <== 查询用时
-
;; SERVER: 127.0.0.53#53(127.0.0.53) <== 本地缓存解析器
-
;; WHEN: Fri Jul 24 19:11:42 EDT 2020 <== 查询的时间
-
;; MSG SIZE rcvd: 97 <== 返回的字节数
如果你得到了一个这样的应答,是好消息吗?简短的回答是“是”。你得到了及时的回复。状态字段(status: NOERROR
)显示没有问题。你正在连接到一个能够提供所要求的信息的名称服务器,并得到一个回复,告诉你一些关于你所查询的系统的重要细节。简而言之,你已经验证了你的系统和域名系统相处得很好。
其他可能的状态指标包括:
-
SERVFAIL
:被查询的名称存在,但没有数据或现有数据无效。 -
NXDOMAIN
:所查询的名称不存在。 -
REFUSED
:该区域的数据不存在于所请求的权威服务器中,并且在这种情况下,基础设施没有设置为提供响应服务。
下面是一个例子,如果你要查找一个不存在的域名,你会看到什么?