大家好,我是何三,独立开发者

你平时查 DNS 传播状态是不是这样——打开 whatsmydns.net,输入域名,等页面加载,手动选记录类型,一个个看结果,换个域名再重复一遍?

我以前也是。

直到上周发现一个叫 dnsglobe 的 Rust 终端工具,一行命令,34个全球 DNS 解析器并行查询,结果直接打在终端里,还附带一张世界地图,每个解析器的状态用彩色圆点标在地图上。绿色代表一致,紫色代表有差异,红色是出错。

整个排查流程从开网页点半天,压缩到一行命令+看一眼地图。

网页版 vs 终端版对比

核心原理?说白了就是这事

DNS 传播检测的原理其实不复杂。你改了一条 DNS 记录,全球各地的 DNS 服务器不会立刻同步更新,需要时间逐级传播。你要确认的是:东京的服务器拿到新记录了没?伦敦的呢?悉尼的呢?

传统做法是用网站去查,网站再一个个去问不同地区的 DNS 服务器,把结果汇总成表格给你看。

dnsglobe 做的是同一件事,但它直接在本地发起 34 个并行 DNS 查询——你家宽带的出口 IP 直接去问 Google DNS、Cloudflare、Quad9、OpenDNS 这些公共解析器,看它们各自返回什么结果。没有中间商赚差价,看到的每一行都是那个服务器此时此刻的真实应答。

然后把这些结果按"答案一致性"分组——所有返回相同 IP 的归为一组,得票最多的就是"主流意见",不一致的标成 ≠ DIFFERS

地图像素级别的 Anycast 探测这块挺有意思的。像 Cloudflare 和 Google 这类用 Anycast 网络的解析器,你问的其实是离你最近的节点。dnsglobe 会额外发一个查询去问"你是谁?你在哪?",Cloudflare 会告诉你"我是 LHR 节点(伦敦希思罗)",Google 会告诉你"我在 YUL(蒙特利尔)",然后地图上的那个圆点就自动挪到对应的物理位置。

说实话,Anycast 的工作原理我看了好几遍才完全搞懂——简单说就是同一个 IP 地址在全球多个地方同时广播,你的网络流量会自动路由到最近的那个。跟进了任意门似的。

这让我想起之前折腾 Cloudflare Tunnel 的时候,死活想不通为什么配置了老半天延迟还是高,后来发现流量绕了半个地球——因为 Anycast 路由选的是"最近的"节点,但有时候最近的反而绕路。网络这东西,怎么说呢,就是……就是那种永远有你意想不到的惊喜。

怎么上手?装一下跑起来就行

安装方式挺全的,挑一个顺手的:

# macOS/Linux 用户
brew install 514-labs/tap/dnsglobe

# Rust 开发者
cargo install dnsglobe

# Arch Linux
yay -S dnsglobe

# Nix 用户
nix run github:514-labs/dnsglobe

# 或者直接去 Releases 页下载二进制

装完跑一下:

# 查询 example.com 的 A 记录,实时 watch
dnsglobe example.com

# 查 TXT 记录
dnsglobe example.com TXT

# 一次性输出结果(不进入 TUI 界面),适合脚本调用
dnsglobe --once example.com A

默认每 30 秒自动轮询一次,直到所有解析器都返回一致的结果——就是传播完成。你可以按 Ctrl+R 手动停止或恢复 watch 模式,按 Tab 切换记录类型,按 Ctrl+S 切换排序方式。

终端宽度够宽(≥150列)的话,右侧会自动出现世界地图。

我第一次跑起来的时候,看着地图上 34 个小圆点逐个变绿,说实话挺爽的。比在网页上刷 F5 有仪式感多了。

dnsglobe 终端世界地图效果

同类工具有没有?

网页端的话 whatsmydns.net 和 dnschecker.org 都能做这件事,但你要在浏览器和终端之间来回切,而且没法自动化。

如果你经常跟网络打交道,我之前还写过一篇《2026年最值得用的5个Rust终端工具》,里面有几个类似风格的 CLI 工具,关注后回复「工具」可以看。

GitHub 地址

项目开源在:https://github.com/514-labs/dnsglobe

目前不到 1000 Star,但 4 天涨了 700 多,势头很猛。作者是 514.ax 团队,做网络基础设施的,质量有保证。

这工具适合谁?运维、SRE、DNS 相关从业者,或者像我一样偶尔改个域名配置、想知道生效了没的普通开发者。装不装都行,看你自己——但装了之后,你再也不想打开 whatsmydns.net 了。

本文使用 MGO 编辑并发布

关注"何三笔记",回复"mgo" 免费下载使用