原文地址:缓存
https://www.imooc.com/article/26971?block_id=tuijian_wz服务器
做者:ibeautiful
来源:慕课网工具
----------------------------------------------------------------------------------------------------ui
dig 命令主要用来从 DNS 域名服务器查询主机地址信息。
dig 命令最典型的用法就是查询单个主机的信息。spa
$ dig baidu.com
dig 命令默认的输出信息比较丰富,大概能够分为 5 个部分。3d
默认状况下 dig 命令查询 A 记录,上图中显示的 A 即说明查询的记录类型为 A 记录。在尝试查询其它类型的记录前让咱们先来了解一下常见的 DNS 记录类型
除了 A 记录,常见的 DNS 记录还有 CNAME,咱们能够在查询时指定要查询的 DNS 记录类型:blog
$ dig abc.filterinto.com CNAME
这样结果中就只有 CNAME 的记录。其实咱们能够在查询中指定任何 DNS 记录的类型。
因为一些缘由,但愿从指定的 DNS 服务器上进行查询(从默认的 DNS 服务器上得到的结果可能不许确)。指定 DNS 服务器的方式为使用 @ 符号:
$ dig @8.8.8.8 abc.filterinto.com
从上图能够看到本次查询的 DNS 服务器为 8.8.8.8。get
若是不指定 DNS 服务器,dig 会依次使用 /etc/resolv.conf 里的地址做为 DNS 服务器:
$ dig abc.filterinto.com
上面查询的 DNS 服务器就变成了:cmd
在前面的查询中咱们指定了查询服务器为 8.8.8.8,这是谁家的 DNS 服务器?其实咱们可使用 dig 的 -x 选项来反向解析 IP 地址对应的域名
$ dig -x 8.8.8.8 +short
好吧,应该是谷歌家的,能够放心使用了。域名
dig 命令默认返回的结果展现详细的信息,若是要得到精简的结果可使用 +short 选项:
$ dig +short abc.filterinto.com
这下显示的结果就清爽多了。
其实咱们还能够经过更多选项来控制输出的内容,好比只想显示 "ANSWER SECTION" 的内容:
$ dig abc.filterinto.com +nocomments +noquestion +noauthority +noadditional +nostats
这个结果很不错,就是使用的选项太多了(dig 命令有不少这样的选项,详情请参考使用手册)。咱们能够换一种优雅一些的方式来实现和上面相同的结果:
$ dig abc.filterinto.com +noall +answer
TTL 是 DNS 解析中很重要的指标,主要是控制 DNS 记录在 DNS 服务器上的缓存时间:
$ dig abc.filterinto.com
查询结果中的单位是秒。经过下面的命令能够显示精简一些测结果:
$ dig +nocmd +noall +answer +ttlid abc.filterinto.com
若是你好奇 dig 命令执行查询时都经历了哪些过程,你能够尝试使用 +trace 选项。它会输出从根域到最终结果的全部信息:
$ dig +trace abc.filterinto.com
上图中显示的并非一个完整的结果,感兴趣的朋友能够本身尝试。
dig 是一个很给力 DNS 查询工具,本文仅介绍了其常见用法,更多的命令选项及使用方法请查看 man page。