8.8.8.8 的另一端是什么?

发布: (2026年2月6日 GMT+8 11:21)
3 分钟阅读

Source: Hacker News

测试 8.8.8.8

为了观察 8.8.8.8 如何查询权威名称服务器,我使用了自己的通配符 DNS 服务 — nip.iosslip.io。通过向 8.8.8.8 发送一系列唯一标记的查询,解析器会把它们转发到我们的名称服务器。

for i in $(seq 0 255); do
  dig +short 8-8-8-8.test-$i.sslip.io @8.8.8.8
done

连接到名称服务器以检查日志:

ssh ns-ovh.sslip.io

日志

DNS 服务器以 systemd 服务的方式运行,因此可以使用 journalctl 导出日志:

sudo journalctl -u sslip.io-dns -S yesterday > /tmp/sslip.io.log

筛选出特制的查询记录:

grep -i 8-8-8-8.test /tmp/sslip.io.log

示例输出(已截断):

172.253.244.145.46402 TypeA 8-8-8-8.TesT-158.SsLIp.io. ? 8.8.8.8
172.253.244.144.45355 TypeA 8-8-8-8.test-158.sslip.io. ? 8.8.8.8
172.253.0.21.41598   TypeA 8-8-8-8.teSt-161.SSlIP.iO. ? 8.8.8.8
172.253.2.29.34349   TypeA 8-8-8-8.tEst-163.ssliP.iO. ? 8.8.8.8
172.253.244.145.48298 TypeA 8-8-8-8.test-163.sslip.io. ? 8.8.8.8
2607:f8b0:4004:1001::12b.39475 TypeA 8-8-8-8.TesT-164.Sslip.Io. ? 8.8.8.8
74.125.181.155.54746  TypeA 8-8-8-8.TEST-173.ssLip.iO. ? 8.8.8.8
172.253.2.23.49071   TypeA 8-8-8-8.TeSt-177.sSlIP.iO. ? 8.8.8.8

字段含义

字段描述
172.253.244.145DNS 查询的源 IP 地址(IPv4)。
46402源 UDP/TCP 端口。
TypeA查询类型(A 记录)。
8-8-8-8.test-158.sslip.io.被查询的域名(注意随机的大小写)。
?表示一次 DNS 查询。
8.8.8.8我们返回的地址。

观察结果

  • 256 次查询中只有 8 次(≈ 3 %)到达了我们位于华沙的服务器,而该服务器通常处理约 66 % 的流量。
  • 源地址从不8.8.8.8;每次查询都来自不同的 Google 拥有的 IP。
  • Google 的解析器会对查询的域名进行随机大小写处理,以减轻DNS 缓存投毒的风险。

验证源 IP 的所有权

使用 ARIN 的 REST API 与 jq

curl -s -H "Accept: application/json" \
  "https://whois.arin.net/rest/ip/172.253.244.145" |
jq '.net.orgRef."@name", .net.netBlocks.netBlock.cidrLength."$"'

输出:

"Google LLC"
"16"

/16 网段表明 Google 拥有整个 172.253.0.0/16 区段,覆盖了大多数看到的 IPv4 地址。

对于 IPv6 地址:

curl -s -H "Accept: application/json" \
  "https://whois.arin.net/rest/ip/2607:f8b0:4004:1001::12b" |
jq '.net.orgRef."@name", .net.netBlocks.netBlock.cidrLength."$"'

输出:

"Google LLC"
"32"

因此 Google 也拥有 2607:f8b0::/32 IPv6 网段。(剩余的 IPv4 地址 74.125.181.155 同样位于 Google 拥有的范围内。)

结论

当公共解析器 8.8.8.8 将查询转发到上游权威服务器时,这些查询并不是从 IP 地址 8.8.8.8 发出的,而是来自 Google 拥有的多个 IPv4 与 IPv6 地址池,且源端口各不相同。Google 还会随机化查询域名的大小写,以进一步防御 DNS 缓存投毒。

Back to Blog

相关文章

阅读更多 »

揭秘 Web 2:互联网的语言

第2集 – 为网络提供动力的网络协议 在第1集中,我们走遍了网页工作原理的基础:输入 URL、DNS 查询、安全连接……

🔒 HTTPS 像5岁小孩一样解释

完整的深度解析并附带代码示例 https://sreekarreddy.com/learn/eli5/https 明信片 vs. 密封信 HTTP 无 S:像明信片——任何处理它的人都可以读取…