Domain IP Lookup

一次递归 DNS 查询,逐跳详解

浏览器

想访问 example.com

解析器

运营商 / 1.1.1.1

根 + TLD

谁负责 .com?

权威服务器

真正的答案

这条链路上的每一跳本身都是一次 DNS 查询,之后都会被缓存

DNS 基础

如何查找网站的 IP 地址(5 种可靠方法)

4 分钟阅读

查找网站的 IP 地址只需几秒钟。真正有用的本事,是看懂您找到的是哪一个地址:源站服务器、CDN 边缘节点,还是负载均衡器,因为这决定了这个数字对您是否有用。

下面是五种方法,从最快到最详细,最后会如实说明如何解读结果。

方法 1:使用在线查询工具

这是最快的方式,也是唯一不需要终端的方式。把域名粘贴到首页的域名转 IP 查询中,一次服务端查询就能得到 A 记录(IPv4)、AAAA 记录(IPv6)、域名服务器,以及 MX、CNAME 和 TXT 记录。

相比本地命令,它的优势在于查询是从一台缓存干净的服务器上发起的,所以您看到的不会是自己电脑数小时前缓存下来的过期应答。如果有多个域名要检查,批量模式一次最多可解析 50 个。

方法 2:ping,快速且随处可用

ping 在发送任何数据之前会先解析名称,并打印出解析到的地址。在 Windows、macOS 和 Linux 上的表现完全一致。

终端 / 命令提示符
ping example.com

第一行会显示解析出的地址:PING example.com (93.184.216.34)。您想要的信息已经到手,按 Ctrl+C 即可停止。

方法 3:nslookup,跨平台的标准工具

Windows、macOS 和大多数 Linux 发行版都内置了它,正是为解决这个问题而设计的。

基本查询
nslookup example.com

输出会把作答的解析器(Server:)与应答本身分开显示。如果出现 Non-authoritative answer(非权威应答)这一行,只表示结果来自缓存而不是域名自己的域名服务器,这是正常情况,并不是警告。

指定解析器查询,绕过 ISP 的缓存
nslookup example.com 1.1.1.1

当您怀疑缓存已经过期时,第二种用法非常有用:您直接询问 Cloudflare 的解析器,而不是网络分配给您的那个解析器。

方法 4:dig,专业人士的首选

dig 随 macOS 和 Linux 一同提供(在 Windows 上,请使用 WSL 或安装 BIND 工具)。它能给出精确、可脚本化的输出,其中包括 TTL。

只显示地址,别无其他
dig +short example.com A
dig +short example.com AAAA
完整详情,包括 TTL 和作答的服务器
dig example.com

在完整输出中,ANSWER SECTION 里位于 IN A 之前的数字,是剩余的 TTL(以秒为单位),即该解析器还会继续复用其缓存副本多久。反复查询时观察这个数字不断减小,是了解缓存如何运作最直观的方式。

直接查询权威域名服务器
dig @ns1.example.com example.com

这会跳过所有缓存,直接询问源头。如果结果与您在别处看到的不一致,说明您正在目睹传播的过程。

方法 5:浏览器开发者工具

当您想知道实际在为当前页面提供服务的地址(包括任何重定向)时,这个方法很有用。

  1. 按 F12(macOS 上为 Cmd+Option+I)打开开发者工具,选择 网络(Network)标签页。
  2. 重新加载页面。
  3. 点击第一个文档请求,然后打开 标头(Headers)面板。
  4. 在 常规(General)下找到 远程地址(Remote Address),这就是浏览器实际连接的 IP,并附带端口。

五种方法对比

方法最适合是否显示 TTL?是否需要终端?
在线工具一次获取所有记录类型,缓存干净否否
ping在任何地方快速得到答案否是
nslookup查询指定的解析器部分是
dig精确查询与脚本化是是
开发者工具为这个页面提供服务的确切地址否否

那么,您找到真正的服务器了吗?

多半没有,而这在意料之中。稍具规模的网站大多位于 CDN 或负载均衡器之后,所以您解析到的地址属于这些基础设施。

为什么查询结果显示的是 CDN,而非源站

访客

查询该域名

CDN 边缘节点

104.21.x.x

DNS 返回的就是它

源站服务器

真实 IP,从不暴露

前面有 CDN 时,DNS 返回的是边缘节点的地址。源站按设计就不对外公布。

以下迹象说明您看到的是共享基础设施,而不是源站服务器:

  • 对该地址做反向 DNS,解析出的是服务商的主机名(*.cloudflare.com、*.amazonaws.com、*.fastly.net)。
  • 同一个地址为许多互不相关的域名提供服务。
  • 从不同位置查询,或重复查询时,得到的是不同的地址。

核心要点

这五种方法中的任何一种,给您的都是 DNS 所公布的地址。这是一个真实、正确的答案,只不过它回答的是域名对外的“前门”,而不一定是背后的那台机器。

需要查看某个域名的公网 DNS 地址?使用 Domain IP Lookup 工具。

本主题的免费工具

常见问题