> For the complete documentation index, see [llms.txt](https://jtz.gitbook.io/web-security/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://jtz.gitbook.io/web-security/xin-xi-shou-ji/zi-yu-mei-ju/dig.md).

# dig

dig（域信息搜索器）命令是个用于询问 DNS 域名服务器的灵活的工具

您向网站发出请求。您的计算机所做的第一件事是<mark style="color:blue;">`检查其本地缓存`</mark>，看看它是否已经为该网站存储了一个 IP 地址；如果是这样，太好了。如果没有，它将进入流程的下一阶段。

假设尚未找到该地址，您的计算机将向所谓的<mark style="color:yellow;">`递归DNS服务器`</mark>发送请求。这些将自动为您网络上的路由器所知。许多 Internet 服务提供商 (ISP) 维护自己的递归服务器，但 Google 和 OpenDNS 等公司也控制递归服务器。这就是您的计算机自动知道将信息请求发送到何处的方式：递归 DNS 服务器的详细信息存储在您的路由器中。该服务器还将维护流行域的结果缓存；但是，如果您请求的网站没有存储在缓存中，递归服务器会将请求传递给*根名称* 服务器。

2004 年之前，世界上正好有 13 个根名称DNS服务器。现在还有更多；但是，它们仍然可以使用分配给原始服务器的相同 13 个 IP 地址访问（平衡以便您在发出请求时获得最近的服务器）。根名称服务器基本上跟踪下一级的 DNS 服务器，选择一个合适的服务器将您的请求重定向到。这些较低级别的服务器称为*顶级* *域* 服务器。

顶级域 (TLD) 服务器分为扩展名。因此，例如，如果您正在搜索 tryhackme **.com** ，您的请求将被重定向到处理`.com`域的 TLD 服务器。如果您正在搜索 bbc **.co.uk** ，您的请求将被重定向到处理 `.co.uk` 域的 TLD 服务器。与根名称服务器一样，TLD 服务器跟踪下一级：*权威名称服务器*。当 TLD 服务器收到您的信息请求时，服务器会将其传递给适当的权威名称服务器。

权威名称服务器用于直接存储域的DNS记录。换句话说，世界上的每个域都将其 DNS 记录存储在某个地方的权威名称服务器上；他们是信息的来源。当您的请求到达您正在查询的域的权威名称服务器时，它会将相关信息发回给您，从而使您的计算机连接到您请求的域后面的 IP 地址。

```shell
# Dig 允许我们手动查询我们选择的递归DNS服务器以获取有关域的信息
dig <domain> @<dns-server-ip>

# NS  查询
dig ns inlanefreight.htb @10.129.14.128
# any 查看所有可用记录
dig any inlanefreight.htb @10.129.14.128
# AXFR 区域转移
dig axfr inlanefreight.htb @10.129.14.128
```

## 在线工具

* [NSLooKup.io](https://www.nslookup.io/)
* [DIG](https://toolbox.googleapps.com/apps/dig/?lang=zh-CN#PTR/)
