DNSGlobe – 用 Rust 编写的 TUI 工具,监控 DNS 在全球的传播情况

Hacker News Top 工具

摘要

DNSGlobe 是一款用 Rust 编写的终端应用,可并行查询全球 34 个 DNS 解析器,在世界地图上检查并显示传播状态,并提供持续监控的观察模式。

暂无内容
查看原文
查看缓存全文

缓存时间: 2026/07/05 22:34

514-labs/dnsglobe

来源:https://github.com/514-labs/dnsglobe

dnsglobe

crates.io (https://crates.io/crates/dnsglobe) 许可证

一个终端中的全局 DNS 传播检查工具 —— 一款 Rust TUI 工具,可并行查询全球 34 个公共 DNS 解析器,比较它们的回答,并在世界地图上显示记录的传播状态。

dnsglobe 演示 —— 检查域名的 A 和 NS 记录,覆盖全球 34 个解析器

类似 dnschecker.org / whatsmydns.net,但在终端中运行,支持监视模式:启动检查后,它会反复轮询,直到记录在所有地方传播完成。

解析器覆盖全球任播网络(Google、Cloudflare、Quad9),以及北美、欧洲、俄罗斯、中东、东亚和南半球(Telstra 澳洲、SafeSurfer 新西兰、UOL 巴西)——每个解析器都直接查询,因此你可以看到每个服务器当前对该记录的独立视图。

每个解析器均直接查询(无缓存、EDNS0、截断答案时回退 TCP),因此你所见即每个服务器自身对该记录的当前视图。共享任意记录的答案会被归为一组——因此轮询 DNS(每个解析器缓存 IP 池中的不同子集)被视为一个一致的答案,而非二十个冲突的答案。传播指示器显示多数派中的解析器数量;一旦所有结果返回,异常值会被标记为 ≠ 差异

在宽度 ≥150 列的终端上,右侧会出现一幅世界地图,每个解析器用一个点表示,颜色根据状态区分(绿色表示一致,洋红色表示差异,红色表示错误,黄色表示进行中)。

使用方法

安装:

brew install 514-labs/tap/dnsglobe   # Homebrew (macOS/Linux)
cargo install dnsglobe               # 来自 crates.io
# 或从 GitHub Releases 页面下载预构建二进制文件

运行:

dnsglobe                            # 启动为空,输入域名
dnsglobe example.com                # 立即查询并监视
dnsglobe --once example.com TXT    # 无 TUI:打印结果后退出(用于脚本)

按键

按键操作
输入 / ⌫ / Del编辑域名
←/→ / Home/End在域名输入框内移动光标
Enter启动检查并监视:每 30 秒轮询,直到传播达到 100%
Ctrl+R停止或恢复监视
Tab / Shift+Tab选择记录类型(A、AAAA、CNAME、MX、NS、TXT、SOA)
↑/↓ / PgUp/PgDn滚动解析器表格
Ctrl+U清除域名
Esc / Ctrl+C退出

备注

  • 多个解析器属于任播网络,因此响应的节点是离你最近的节点;位置列是运营商的所属地区。
  • 解析器列表位于 src/resolvers.rs —— 可自由添加或删除条目。每个条目均经过验证可响应外部查询;许多知名的 ISP 解析器(尤其是所有主要的非洲解析器)会拒绝来自其网络外部的查询,因此无法包含在内。

相似文章

大规模AI工具发现:只需DNS

arXiv cs.AI

本文提出ToolDNS,一个将语义工具发现改造到DNS基础设施上的框架,实现了可扩展的O(log N)解析,并在包含超过33,000个跨多种协议的真实世界工具的基准测试中,将搜索空间减少了95.26%。

掌控校园内所有投影仪和摄像头

Hacker News Top

科罗拉多矿业大学的一名学生构建了一个快速的暴力DNS枚举工具,用于发现校园网络中的所有设备,首先用Python实现,然后改用Rust,通过枚举本地DNS的子域名。