你好!最近我和几个朋友聊天,他们提到希望知道如何使用 dig
来进行 DNS 查询,所以这是一篇关于它的速读博文。
当我第一次使用 dig
时,我发现它有点吓人 —— 有这么多的选项!我打算把大部分的选项省略。在这篇文章中,我打算不谈 dig
的大部分选项,只谈我实际使用的选项。
我最近还了解到,你可以设置一个 .digrc
配置文件,让它的输出更容易阅读,这让它的使用变得更加轻松。
几年前我还画了一个关于 dig
的 zine 页,但我想写这篇文章来包括更多的信息。
两种类型的 dig 参数:查询和格式化
有两种主要的参数可以传递给 dig
:
dig
要进行什么 DNS 查询的参数。dig
如何 格式化响应的参数。首先,让我们看一下查询选项。
主要的查询选项
你通常想控制 DNS 查询的 3 件事是:
jvns.ca
)。默认情况下,查询的是空名称(.
)。A
或 CNAME
)。默认是 A
。8.8.8.8
)。默认是 /etc/resolv.conf
中的内容。其格式是:
dig @server name type
这里有几个例子:
dig @8.8.8.8 jvns.ca
向谷歌的公共 DNS 服务器(8.8.8.8
)查询jvns.ca
。dig ns jvns.ca
对jvns.ca
进行类型为NS
的查询。
-x
:进行反向 DNS 查询
我偶尔使用的另一个查询选项是 -x
,用于进行反向 DNS 查询。下面是输出结果的样子。
$ dig -x 172.217.13.174
174.13.217.172.in-addr.arpa. 72888 IN PTR yul03s04-in-f14.1e100.net。
-x
不是魔术。dig -x 172.217.13.174
只是对 174.13.217.172.in-addr.arpa.
做了一个 PTR
查询。下面是如何在不使用 `-x’ 的情况下进行完全相同的反向 DNS 查询。
$ dig ptr 174.13.217.172.in-addr.arpa.
174.13.217.172.in-addr.arpa. 72888 IN PTR yul03s04-in-f14.1e100.net。
我总是使用 -x
,因为它可以减少输入。
格式化响应的选项
现在,让我们讨论一下你可以用来格式化响应的参数。
我发现 dig
默认格式化 DNS 响应的方式对初学者来说是很难接受的。下面是输出结果的样子:
; DiG 9.16.20 -r jvns.ca
;; global options: +cmd
;; Got answer:
;; ->>HEADERHEADER