Linux中的dig命令

时间:2020-02-23 14:33:08  来源:igfitidea点击:

dig命令是Linux实用程序,可让您从命令行获取有关域的信息。
该命令非常庞大,具有许多可选项和标签。

在本文中,我们将使用该命令的最常用用法,并演示一些可以获取名称服务器和有关特定域的其他重要信息的标签。
在开始之前,让我们了解dig命令。

什么是dig命令?

DNS问题是系统管理员面临的常见问题。

在这种情况下,我们需要获取有关网络的信息以找到解决方案。
这是DiG(域信息捕获器)实用程序出现的地方。

使用Linux中的dig命令,您可以在网络上查询任何类型的DNS记录,例如名称服务器,邮件交换和主机地址。
它还可以允许反向DNS查找。

在本文中,我们将了解dig命令在Linux中的工作。
然后我们来看看它们的一些实际应用。

dig命令的基础

现在,这是通过了解语法来最好地学习任何命令的最佳方法。

dig命令的语法:

dig [tag] [option] @dns-server [hostname/IPaddress] [type]

其中我们使用标签来指定查询条件。
接下来,我们使用一个或者多个查询选项来切换查询的可用规范。

然后是我们要查询的名称服务器的名称或者地址。

最后,我们使用其主机名或者地址指定要查询的资源记录。
后面可以跟一个类型来设置我们的DNS查询的类型。

挖掘选项列表

dig命令提供了很长的选项列表,以自定义在分析网络时收到的数据。
这是一些最受欢迎的dig命令标签的列表。

选项作用
-4/-6指定IP地址的IPv4(for-4)或IPv6(for-6)解析,以将查询发送到远程计算机
-t用户希望目标的查询类型。查询的类型可以设置为绑定9规范中找到的任何受支持的查询类型。默认查询类型为“A”
-b查询的源IP地址。这可以是主机网络接口下的任何地址或“::”或“0.0.0.0”
-f这使得挖掘实用程序可以在批处理模式下工作。这里,所有命令都是通过输入批处理文件来代替标准输入读取的。此文件应按每行一个顺序包含所有查询。此外,这些查询的格式应与命令行中使用的挖掘查询的格式相同
-m此标记用于打开用于调试内存使用配置的菜单

这些只是dig命令在Linux中可用的最常用标签。
确保检查手册页上的其他标签以利用dig命令的全部功能。

查询类型

在讨论挖掘时,我们还需要了解查询类型。
这是一个包含一些有用的查询选项的表。

查询选项说明
+tcp在查询名称服务器时切换tcp的使用。默认情况下,dig使用UDP进行查询,除非用户请求AXFR或IXFR查询
+cdflag在用户查询中切换“Checking Disable”位的使用。这要求服务器避免使用DNSSEC验证响应。默认情况下,将执行此DNSSEC验证
+recurse在发送dig查询时设置“Recursion Desired”位。默认情况下,此位是查询的一部分。因此,dig总是使用递归查询。但是,在+trace或+nssearch查询中禁用递归
+tries=n将UDP查询的尝试次数设置为n,而不是默认的三次尝试次数
+time=t设置查询超时到t之前的秒数。默认情况下,此时间设置为5秒

在+号和关键字之间添加" no"(不带空格)会导致与我们上面讨论的相反的效果。

该列表仅包含Linux中dig命令中最常用的查询选项。

记住要检查其他选项以利用dig命令的全部功能。

使用dig命令

现在我们了解了dig命令在Linux中的工作原理,现在该学习如何使用它了。
其中我们探讨了dig命令的一些常见有用应用程序。

1.查询单个主机

dig命令最简单的用法是使用它查询主机。
这是我们可以用来在Google.com上查询主机的命令。

dig google.com

您应该看到类似于上面给出的屏幕截图的输出。
如果不带任何选项使用dig命令,它将以注释的形式显示主机的回复以及其他DNS信息。

每个部分在挖掘输出中的意义

  • 前两行包含系统上的DiG版本,查询中使用的主机地址以及查询中使用的选项。
    这里唯一的默认选项是+ cmd,这是将我们的前两行打印为注释的内容。

  • 接下来,我们将看到有关DNS服务器发送的有关查询的答复的技术细节。
    在新版本中,可以看到" OPT伪部分",其中涵盖了DNS(EDNS)的扩展机制。

  • 接下来是"问题"部分,其中显示了我们的查询;"回答部分"中显示了DNS服务器的回复。

  • 最后,最后一部分包含有关查询的统计信息。
    在某些结果中,"权限部分"显示了有权响应我们查询的服务器。

  • "其他部分"包含位于权威DNS服务器下的IP地址。

仅显示重要部分

如果您希望避免看到所有其他信息,可以使用以下命令。

dig google.com +noall +answer

Dig Command Google Noall答案

这只会显示名称服务器的结果,因为+ noall禁用所有注释,而+ answer打印名称服务器的答案。
您应该看到类似于上述屏幕截图的输出。

2.查询所有DNS记录

当您希望检查主机上存在的所有DNS记录时,我们可以在以下命令的帮助下进行检查。

dig +nocmd google.com any +noall +answer

Dig Nocmd Google

您应该看到上面包含DNS记录列表的输出。
查询特定记录时,可以用记录类型替换任何一个

3.执行反向DNS查找

我们使用dig命令从名称服务器的主机名中得出IP地址。
现在,使用它进行相反操作。
为了找出与IP地址关联的主机名,我们使用以下命令。

dig -x 216.58.199.174 +noall +answer

如您在屏幕快照中所见,dig命令使用反向DNS查找,并在bom05s08-in-f12.1e1mm.net中发现此IP地址与主机关联。