如何在linux上使用dig命令

Linux dig命令允许您查询DNS服务器并执行DNS查找。您还可以找到IP地址指向的域。我们会教你怎么做!...

Linux dig命令允许您查询DNS服务器并执行DNS查找。您还可以找到IP地址指向的域。我们会教你怎么做!

dig命令的工作原理

人们使用Linux dig命令来查询域名系统(DNS)服务器。dig是域名信息搜寻者的缩写。使用dig,您可以查询有关各种DNS记录的信息,包括主机地址、邮件交换、名称服务器和相关信息。它是用来诊断DNS问题的工具。但是,您可以使用它来浏览和了解更多关于DNS的信息,DNS是保持internet路由流量的中心系统之一。

互联网使用互联网协议(IP)地址来识别网络上的“位置”,但人们使用域名。当您在应用程序中键入域名时,例如web浏览器或SSH客户端,必须将域名转换为实际的IP地址。这就是域名系统的用武之地。

当您将域名用于任何连接到internet的程序时,您的本地路由器无法解析它(除非它是从以前的请求缓存的)。因此,您的路由器查询您的互联网服务提供商(ISP)的DNS服务器,或任何其他您已配置您的系统使用。这些被称为DNS前体服务器。

如果DNS服务器最近收到同一台计算机上其他人的相同请求,则答案可能在其缓存中。如果是这样,它只需将相同的信息发送回程序。

如果DNS前体服务器在其缓存中找不到域,它将联系DNS根名称服务器。根服务器不会保存将域名解析为IP地址所需的信息,但它会保存可以帮助您处理请求的服务器列表。

根服务器查看您的域名所属的顶级域,例如.COM、.ORG、。英国公司,等等。然后它将处理这些类型的域的顶级域服务器的列表发送回DNS服务器。然后,DNS前置服务器可以再次向顶级域服务器发出请求。

顶级域服务器将权威名称服务器的详细信息(存储域详细信息的位置)发送回DNS服务器。然后,DNS服务器查询承载您最初输入程序的域的区域的权威名称服务器。权威名称服务器将IP地址发送回DNS服务器,然后DNS服务器将其发送回您。

安装挖掘

dig已经安装在我们的ubuntu18.04和fedora30计算机上。但是,我们必须使用以下命令将其安装到Manjaro 18.04计算机上:

sudo pacman -Sy bind-tools

如何在linux上使用dig命令

dig入门

在第一个示例中,我们将返回与域名关联的IP地址。通常,多个IP地址与一个域名相关联。例如,如果使用负载平衡,这种情况经常发生。

我们使用+short query选项,如下所示,它给我们一个简洁的响应:

dig tl80.cn +short

如何在linux上使用dig命令

与服务器关联的所有IP地址tl80.cn网站域为我们列出。另一方面,如果我们不使用+short查询选项,输出会非常冗长。

因此,我们键入以下内容以使其通过更少的管道:

dig tl80.cn | less

如何在linux上使用dig命令

输出以较少的单位显示,如下所示。

如何在linux上使用dig命令

以下是完整列表:

; <<>> DiG 9.11.3-1ubuntu1.11-Ubuntu <<>> tl80.cn ;; global opti***: +cmd ;; Got answer: ;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 12017 ;; flags: qr rd ra; QUERY: 1, ANSWER: 4, AUTHORITY: 0, ADDITIONAL: 1 ;; OPT PSEUDOSECTION: ; EDNS: version: 0, flags:; udp: 65494 ;; QUESTION SECTION: ;tl80.cn. IN A ;; ANSWER SECTION: tl80.cn. 3551 IN A 151.101.194.217 tl80.cn. 3551 IN A 151.101.130.217 tl80.cn. 3551 IN A 151.101.66.217 tl80.cn. 3551 IN A 151.101.2.217 ;; Query time: 0 msec ;; SERVER: 127.0.0.53#53(127.0.0.53) ;; WHEN: Sun Mar 22 07:44:37 EDT 2020 ;; MSG SIZE rcvd: 106

让我们一块一块地解剖。

收割台

首先,让我们看一下标题中的内容:

; <<>> DiG 9.11.3-1ubuntu1.11-Ubuntu <<>> tl80.cn ;; global opti***: +cmd ;; Got answer: ;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 12017 ;; flags: qr rd ra; QUERY: 1, ANSWER: 4, AUTHORITY: 0, ADDITIONAL: 1

现在,这一切意味着:

  • 第一行:dig的版本和查询的域。
  • 全局选项:我们将看到,您可以使用dig同时查询多个域。此行显示已应用于所有域查询的选项。在我们的简单示例中,它只是默认的+cmd(command)选项。
  • 操作码:查询:这是请求的操作类型,在本例中是一个查询。如果您只是测试DNS系统的状态,这个值也可以是反向查询的iquery或status。
  • 状态:无错误:没有错误,请求已正确解决。
  • ID:12017:此随机ID将请求和响应绑定在一起。
  • 标志:qr rd ra:表示查询、所需递归和可用递归。递归是DNS查找的一种形式(另一种是迭代的)。您可能还会看到AA,它代表权威答案,这意味着由权威名称服务器提供响应。
  • Query:1:此会话中的查询数,为1。
  • 回答:4:这个回答中的答案数,是4。
  • Authority:0:来自权威名称服务器的答案数,在本例中为零。响应是从DNS服务器的缓存返回的。答复中将没有权威部分。
  • 附加:1:有一条附加信息。(奇怪的是,除非该值为2或更高,否则不会列出任何内容。)

opt伪截面

接下来,我们将在Opt部分看到以下内容:

;; OPT PSEUDOSECTION: ; EDNS: version: 0, flags:; udp: 65494

我们把它分解:

  • EDNS:版本0:正在使用的DNS扩展系统的版本。EDNS通过扩展用户数据报协议(UDP)包的大小来传输扩展数据和标志。这由可变大小标志表示。
  • 标志:没有使用标志。
  • udp:4096:udp数据包大小。

问题部分

在问题部分,我们看到以下内容:

;; QUESTION SECTION: ;tl80.cn. IN A

这意味着:

  • tl80.cn网站:我们正在查询的域名。
  • 我们正在进行一个互联网类查询。
  • 答:除非我们另有规定,否则dig将从DNS服务器请求A(地址)记录。

答案部分

答案部分包含我们从DNS服务器收到的以下四个答案:

tl80.cn. 3551 IN A 151.101.194.217 tl80.cn. 3551 IN A 151.101.130.217 tl80.cn. 3551 IN A 151.101.66.217 tl80.cn. 3551 IN A 151.101.2.217

以下是这些答案的含义:

  • 3551:这是生存时间(TTL),一个32位有符号整数,它保存可以缓存记录的时间间隔。当数据过期时,在DNS服务器刷新之前,必须在请求的应答中使用该数据。
  • 在:我们做了一个互联网类查询。
  • A:我们要求DNS服务器提供A记录。

统计科

统计是最后一节,它包含以下信息:

;; Query time: 0 msec ;; SERVER: 127.0.0.53#53(127.0.0.53) ;; WHEN: Sun Mar 22 07:44:37 EDT 2020 ;; MSG SIZE rcvd: 106

我们有以下信息:

  • 查询时间:0毫秒:获取响应所用的时间。
  • 服务器:127.0.0.53#53(127.0.0.53):响应的DNS服务器的IP地址和端口号。在本例中,它指向本地缓存存根解析器。这会将DNS请求转发到配置的任何上游DNS服务器。在Manajro测试计算机上,这里列出的地址是8.8.8.8#53,这是谷歌的公共DNS服务。
  • 时间:Sun Mar 22 07:44:37 EDT 2020:提出请求的时间。
  • MSG SIZE rcvd:106:从DNS服务器接收的消息的大小。

有选择

你不必满足于守口如瓶和喋喋不休这两个极端。dig命令允许您有选择地从结果中包括或排除部分。

以下查询选项将从结果中删除该部分:

  • +无注释:不显示注释行。
  • +无权限:不显示权限部分。
  • +无附加:不显示附加部分。
  • +nostats:不显示stats部分。
  • +不回答:不要显示答案部分。
  • +诺尔:什么都不要展示!

+noall查询选项通常与上述选项结合使用,以便在结果中包含一个部分。因此,您可以使用+noall关闭所有部分,而不是键入一长串查询选项来关闭多个部分。

然后,您可以使用以下包含性查询选项重新打开要查看的查询选项:

  • +注释:显示注释行。
  • +权限:显示权限部分。
  • +附加:显示附加部分。
  • +stats:显示stats部分。
  • +答案:显示答案部分。
  • +全部:显示所有内容。

我们键入以下内容以发出请求并排除注释行:

dig tl80.cn +nocomments

如何在linux上使用dig命令

如果我们单独使用+noall查询选项,如下所示,我们将不会得到任何有用的输出:

dig tl80.cn +noall

如何在linux上使用dig命令

我们可以有选择地添加要查看的部分。要添加答案部分,请键入以下内容:

dig tl80.cn +noall +answer

如何在linux上使用dig命令

如果我们键入以下内容以启用+统计信息,我们还将看到统计信息部分:

dig tl80.cn +noall +answer +stats

如何在linux上使用dig命令

通常使用+noall+答案组合。您可以根据需要向命令行添加其他节。如果您想避免每次使用dig时在命令行上键入+noall+应答,可以将它们放入名为“.digrc”的配置文件中,该文件位于主目录中。

我们键入以下内容来创建一个带有echo的:

echo "+noall +answer" > $HOME/.digrc

然后,我们可以键入以下内容来检查其内容:

cat .digrc

如何在linux上使用dig命令

这两个选项现在将应用于dig的所有未来用途,如下所示:

dig ubuntu.org dig linux.org dig github.com

如何在linux上使用dig命令

此dig配置文件将用于本文剩下的示例。

dns记录

返回到dig请求的信息是从DNS服务器上保存的不同类型的记录中提取的。除非我们要求不同的东西,否则dig查询A(地址)记录。以下是dig常用的记录类型:

  • 记录:将域链接到IP版本4地址。
  • MX记录:邮件交换记录将发送到域的电子邮件直接发送到正确的邮件服务器。
  • NS记录:名称服务器记录将域(或子域)委托给一组DNS服务器。
  • TXT记录:文本记录存储有关域的基于文本的信息。通常,它们可能被用来抑制欺骗或伪造的电子邮件。
  • SOA记录:权限起始记录可以保存很多关于域的信息。在这里,您可以找到主名称服务器、责任方、更改的时间戳、区域刷新的频率以及重试和放弃的一系列时间限制。
  • TTL:Time to live是每个DNS记录的一个设置,指定允许DNS前置服务器缓存每个DNS查询的时间。当该时间到期时,必须为后续请求刷新数据。
  • ANY:这告诉dig返回它能返回的所有类型的DNS记录。

指定A记录类型不会更改默认操作,即查询地址记录并获取IP地址,如下所示:

dig redhat.com A

如何在linux上使用dig命令

要查询邮件交换记录,我们使用以下MX标志:

dig yahoo.com MX

如何在linux上使用dig命令

名称服务器标志返回与顶级域关联的根名称服务器的以下名称:

dig fedora.com NS

如何在linux上使用dig命令

要查询起始授权记录,请键入以下SOA标志:

dig manjaro.com SOA

如何在linux上使用dig命令

TTL标志将显示DNS服务器缓存中数据的生存时间。如果我们提出一系列的请求,我们会看到生存时间减少到零,然后跳回到它的起始值。

我们键入以下内容:

dig usa.gov TTL

如何在linux上使用dig命令

要查看文本记录,请键入TX标志:

dig usa.gov TXT

如何在linux上使用dig命令

指定dns服务器

如果您想对请求使用特定的DNS服务器,可以使用at符号(@)将其作为命令行参数传递给dig。

对于默认DNS服务器(见下文),dig引用了127.0.0.53中的本地缓存存根解析器。

dig usa.gov +stats

现在,我们键入以下内容以使用8.8.8.8的Google公共DNS服务器:

dig @8.8.8.8 usa.gov +stats

如何在linux上使用dig命令

对多个域使用dig

我们可以在命令行上传递多个域进行挖掘,如下所示:

dig ubuntu.org fedora.org manjaro.com

如何在linux上使用dig命令

如果您定期检查一组域,您可以将它们存储在文本文件中并将其传递给dig。将依次检查文件中的所有域。

我们的文件名为“域.txt”我们将使用cat显示其内容,然后使用-f(文件)选项将其传递给dig。我们键入以下内容:

cat domains.txt dig -f domains.txt

如何在linux上使用dig命令

反向dns查找

如果你有一个IP地址,想知道它去哪里,你可以尝试反向DNS查找。如果它解析为在DNS服务器上注册的服务器,则您可能能够找到它的域。

是否可以,取决于PTR(指针记录)的存在。ptr将IP地址解析为完全限定的域名。然而,由于这些不是强制性的,它们并不总是出现在域中。

让我们看看是否能找出IP地址209.51.188.148带我们去哪里。我们使用-x(反向查找)选项键入以下内容:

dig -x 209.51.188.148

如何在linux上使用dig命令

急板地!IP地址解析为gnu.org.

因为PTR是一个DNS记录,而且我们知道dig可以请求指定的DNS记录,所以我们不能请求dig为我们检索PTR吗?是的,我们可以,但这确实需要更多的工作。

我们必须以相反的顺序提供IP地址,并在-地址:arpa最后,如下图所示:

dig ptr 148.188.51.209.in-addr.arpa

如何在linux上使用dig命令

我们得到了同样的结果,只是花了点力气。

你能挖吗?

我们每天都在使用互联网,好奇的人常常想知道,当我们在浏览器中键入网站名称时,这种神奇是如何发生的。通过dig,你可以探索网络变戏法的过程。

  • 发表于 2021-04-02 10:09
  • 阅读 ( 239 )
  • 分类:互联网

你可能感兴趣的文章

如何在linux上安装和使用powershell

... 在本文中,我将向您展示如何在Linux上安装、运行和使用PowerShell! ...

  • 发布于 2021-03-16 02:34
  • 阅读 ( 336 )

如何在android和termux上使用linux命令行

...许您在Android设备上安装诚实善良的Linux应用程序。下面是如何使用Termux应用程序。 ...

  • 发布于 2021-03-18 07:26
  • 阅读 ( 398 )

如何在windows10上获得linux bash shell

... 如何在windows10上安装linux bash shell ...

  • 发布于 2021-03-21 11:48
  • 阅读 ( 316 )

linux下如何重命名文件

要在Linux中重命名文件吗?如果您知道如何在Windows、macOS或Chrome操作系统中完成这项工作,那么您就知道如何在这里完成这项工作。在大多数版本的Linux上,您只需右键单击一个文件并选择Rename选项。 ...

  • 发布于 2021-03-22 02:48
  • 阅读 ( 304 )

如何用古墓保护您最敏感的数据信息

... 有兴趣吗?下面是如何做到这一点。 ...

  • 发布于 2021-03-26 08:43
  • 阅读 ( 188 )

如何在linux上使用groupadd管理用户组

... 相关:如何在Linux中更改密码 ...

  • 发布于 2021-03-26 17:15
  • 阅读 ( 214 )

如何在linux中添加用户

想在Linux系统上添加用户但不知道如何添加?在Linux上使用命令行界面管理用户无疑是一项复杂的工作。而对于初学者来说,即使添加新用户也是一场噩梦。 ...

  • 发布于 2021-03-26 23:29
  • 阅读 ( 362 )

如何在Windows10上导出和导入linux系统

...已配置的系统,与其他计算机共享,或者只保存备份。 如何工作 导入和导出功能是在2019年5月的Windows10版本1903更新中添加的。如果尚未安装,则无法使用这些命令行选项。 您只需要为Windows wsl命令提供两个新选项:--export和--i...

  • 发布于 2021-04-03 10:24
  • 阅读 ( 219 )

windows10的新bashshell所能做的一切

...些指南汇总到一个大列表中。 windows上linux入门 相关:如何在windows10上安装和使用Linux Bash Shell 您可以在任何版本的windows10(包括windows10home)上安装Linux环境和bashshell。但是,它确实需要64位版本的Windows10。您只需启用Windows Subs...

  • 发布于 2021-04-06 14:44
  • 阅读 ( 295 )

如何在windows10的ubuntubashshell中更改用户帐户

...改这些凭据。 用户帐户在linux环境中的工作方式 相关:如何在windows10上安装和使用Linux Bash Shell 当您通过在安装后启动新的Linux发行版来设置它时,系统会要求您为bashshell创建一个用户帐户。Windows将其称为“UNIX用户帐户”。因...

  • 发布于 2021-04-06 15:47
  • 阅读 ( 214 )
小d蝴蝶不会飞
小d蝴蝶不会飞

0 篇文章

相关推荐