我们已经准备好了,你呢?

2024我们与您携手共赢,为您的企业形象保驾护航!

命令行工具 dig 是一个强大的域名解析和故障排除工具。dig 返回给用户的内容可以非常详细,也可以非常简洁,显示的内容量完全由用户查询时使用的选项决定。

命令行工具dig是一个强大的域名解析和故障排除工具。

从主要功能上看,dig 和 并没有太大区别,但 dig 更像是一个加强版,可以查询域名服务器管理的一些信息,在排查某些问题时非常有用。总的来说,dig 是一个既简洁好用又功能强大的命令行工具。(LCTT 译注:dig 和 的主要区别来自于 dig 使用的是操作系统本身的解析库,而 使用的是程序自带的解析库,这有时会带来一些行为上的差异。另外从表现形式上看,dig 返回的结果以 BIND 配置信息的格式返回,也包含了更多的技术细节。)

dig 最基本的功能就是查询域名信息,所以它的名字其实是“域名信息查询工具”的缩写。dig 返回给用户的内容可以非常详细,也可以非常简洁,而显示的内容量完全取决于用户查询时所使用的选项。

我只需要查询 IP 地址

如果只需要查询某个域名指向的IP地址,可以使用+short选项:

$ dig facebook.com +short
31.13.66.35

当你搜索的时候,发现有些域名指向多个IP地址?这其实是网站提高可用性的一个措施。

$ dig networkworld.com +short
151.101.2.165
151.101.66.165
151.101.130.165
151.101.194.165

因为这些网站是通过负载均衡来实现高可用性的,所以下次查询的时候你可能会发现这些 IP 地址的顺序不一样了。(LCTT 译注:浏览器和其他应用程序会默认使用返回的第一个 IP 地址,这样就实现了简单的负载均衡。)

$ dig networkworld.com +short
151.101.130.165
151.101.194.165
151.101.2.165
151.101.66.165

标准回报

dig 的标准响应包括有关工具本身的一些信息,以及来自域名服务器的响应:

$ dig networkworld.com
 
; <<>> DiG 9.11.5-P4-5.1ubuntu2.1-Ubuntu <<>*gt; networkworld.com
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 39932
;; flags: qr rd ra; QUERY: 1, ANSWER: 4, AUTHORITY: 0, ADDITIONAL: 1
 
;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 65494
;; QUESTION SECTION:
;networkworld.com.              IN      A
 
;; ANSWER SECTION:
networkworld.com.       300     IN      A       151.101.194.165
networkworld.com.       300     IN      A       151.101.130.165
networkworld.com.       300     IN      A       151.101.66.165
networkworld.com.       300     IN      A       151.101.2.165
 
;; Query time: 108 msec
;; SERVER: 127.0.0.53#53(127.0.0.53)
;; WHEN: Thu Feb 13 13:49:53 EST 2020
;; MSG SIZE  rcvd: 109

由于域名服务器有缓存机制,返回的内容可能是之前缓存的信息,此时dig最后显示的查询时间为0毫秒(0 msec):

;; Query time: 0 msec        <==
;; SERVER: 127.0.0.53#53(127.0.0.53)
;; WHEN: Thu Feb 13 15:30:09 EST 2020
;; MSG SIZE  rcvd: 109

与谁联系?

默认情况下,dig 会根据 /etc/.conf 文件的内容来确定从哪个域名服务器获取查询结果。你也可以使用 @ 来指定 dig 请求的域名服务器。

以下示例中指定dig从域名服务器8.8.8.8查询域名信息。

$ dig @8.8.8.8 networkworld.com
 
; <<>> DiG 9.11.5-P4-5.1ubuntu2.1-Ubuntu <<>> @8.8.8.8 networkworld.com
; (1 server found)
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 21163
;; flags: qr rd ra; QUERY: 1, ANSWER: 4, AUTHORITY: 0, ADDITIONAL: 1
 
;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 512
;; QUESTION SECTION:
;networkworld.com.              IN      A
 
;; ANSWER SECTION:
networkworld.com.       299     IN      A       151.101.130.165
networkworld.com.       299     IN      A       151.101.66.165
networkworld.com.       299     IN      A       151.101.194.165
networkworld.com.       299     IN      A       151.101.2.165
 
;; Query time: 48 msec
;; SERVER: 8.8.8.8#53(8.8.8.8)
;; WHEN: Thu Feb 13 14:26:14 EST 2020
;; MSG SIZE  rcvd: 109

要查看您正在使用的 dig 工具的版本,请使用 -v 选项。您应该看到类似以下内容:

$ dig -v
DiG 9.11.5-P4-5.1ubuntu2.1-Ubuntu

或者这个返回消息:

$ dig -v
DiG 9.11.4-P2-RedHat-9.11.4-22.P2.el8

如果您觉得dig返回的内容过于详细,可以使用+noall(不显示全部内容)和+(只显示域名服务器的响应内容)选项,域名服务器的详细信息将被忽略,只保留域名解析结果。

$ dig networkworld.com +noall +answer
 
; <<>> DiG 9.11.5-P4-5.1ubuntu2.1-Ubuntu <<>> networkworld.com +noall +answer
;; global options: +cmd
networkworld.com.       300     IN      A       151.101.194.165
networkworld.com.       300     IN      A       151.101.130.165
networkworld.com.       300     IN      A       151.101.66.165
networkworld.com.       300     IN      A       151.101.2.165

批量查询域名

如果要查询多个域名,可以把这些域名写入一个文件(),然后使用下面的dig命令遍历整个文件,并给出所有查询结果。

$ dig +noall +answer -f domains
networkworld.com.       300     IN      A       151.101.66.165
networkworld.com.       300     IN      A       151.101.2.165
networkworld.com.       300     IN      A       151.101.130.165
networkworld.com.       300     IN      A       151.101.194.165
world.std.com.          77972   IN      A       192.74.137.5
uushenandoah.org.       1982    IN      A       162.241.24.209
amazon.com.             18      IN      A       176.32.103.205
amazon.com.             18      IN      A       176.32.98.166
amazon.com.             18      IN      A       205.251.242.103

上面的命令中也可以使用 +short 选项,但是如果部分域名指向多个 IP 地址,就无法分辨哪些 IP 地址对应哪些域名。这种情况下,更好的做法是让 awk 处理返回内容,只保留第一列和最后一列:

$ dig +noall +answer -f domains | awk '{print $1,$NF}'
networkworld.com. 151.101.66.165
networkworld.com. 151.101.130.165
networkworld.com. 151.101.194.165
networkworld.com. 151.101.2.165
world.std.com. 192.74.137.5
amazon.com. 176.32.98.166
amazon.com. 205.251.242.103
amazon.com. 176.32.103.205

原文来源:

二维码
扫一扫在手机端查看

本文链接:https://by928.com/2413.html     转载请注明出处和本文链接!请遵守 《网站协议》
我们凭借多年的网站建设经验,坚持以“帮助中小企业实现网络营销化”为宗旨,累计为4000多家客户提供品质建站服务,得到了客户的一致好评。如果您有网站建设、网站改版、域名注册、主机空间、手机网站建设、网站备案等方面的需求,请立即点击咨询我们或拨打咨询热线: 13761152229,我们会详细为你一一解答你心中的疑难。

项目经理在线

我们已经准备好了,你呢?

2020我们与您携手共赢,为您的企业形象保驾护航!

在线客服
联系方式

热线电话

13761152229

上班时间

周一到周五

公司电话

二维码
微信
线