欢迎回来
登录你的知识库账户
忘记密码?
还没有账户?立即注册
创建账户
注册你的专属知识库
已有账户?去登录
找回密码
输入注册邮箱获取验证码
返回登录
请输入图片中的验证码以继续注册
加载中...
取消
新建收藏
手动添加你喜欢的内容
取消
编辑头像与昵称
上传新头像或修改你的显示昵称
支持 JPG/PNG,最大 2MB
取消

问题反馈

notebasewww.notebase.cn
控制台
内容库
动态
管理
账户
U
用户
--
在线
v0.8.7 · 知识库
笔记
KnowledgeBase
网络无边,知识有迹。
0笔记
0工具
30推荐

分类导航

按主题直达

编辑精选

站内用户贡献 · 真实笔记

最新收录

每日更新
继续浏览全部内容 →
>
笔记
0
加载中...
工具
0
此页用于记录用户反馈问题后的每一次改进
笔记用法

“写笔记”支持四种格式——Word 文档、Excel 表格、Markdown、纯文本,起稿或二次编辑时都能随时切换,同一篇笔记想用哪种形态来记,都由你说了算。

md、txt、csv、json 这类纯文本则原样载入,不做多余加工。拿一张现成的表倒进来、改几笔、再导出去,等于白用一台免费的格式转换器。

要带走就在右上角点“下载”,可导出 PDF、Word、Markdown、Excel、TXT 等格式;列表卡片“⋯”菜单里,也有同样的下载入口。

工具用法

在“工具”页点“+ 上传工具”即可发布:填好名称与链接,再用 Markdown 把使用方法写清楚——能解决什么问题、怎么装、怎么用,比堆介绍实在。

要分发安装包就一并上传压缩包(ZIP、RAR、7Z、TAR.GZ,最大 35MB),别人在详情页一键下载;只放链接不带附件也可以。

工具按大家的收藏热度排序,好用的自然会被顶上来。发布后可在详情页或卡片菜单里编辑、下架。

隐藏笔记

写笔记时勾上“隐藏”,这篇就只存在于你自己的账号里:不进列表、不进搜索、不上首页精选,也不会出现在任何公开的页面,链接发给别人同样打不开。

适合放密码、草稿、日记这类只给自己看的内容;想公开,去“发布”打开它,把“隐藏”的勾去掉再保存,之后编辑会默认保持原状态,不会悄悄变回公开。

数据安全

你的内容会同时保存在多个副本上,系统定期做备份与完整性校验,再配合异地容灾机制:就算某台机器出问题,数据也不会丢,可以长期放心存放;特别重要的资料,仍建议你另外再留一份备份。

技术

全站跑在容器化、模块化的现代架构上,更新、部署、回滚都很快,扩展性和稳定性都按长期运营的标准来设计(Built for reliability, designed to scale)。

理念

这个网站最早只是一个人的笔记仓库,后来慢慢长成现在的知识中枢。设计上很克制——没有广告、没有追踪、没有推荐算法,只是干干净净地存放一些东西;既然做好了,就公开出来,万一有人用得上呢。

原则

不做大而全,不做平台梦,保持简单、保持克制、保持好奇。所有内容都由用户贡献、由用户维护:不会突然冒出付费墙,不会在角落塞广告位,也不会把你的数据卖给第三方。

更多

产品会持续迭代,站内日志页记录着每一次改动,改了什么都有迹可循;想了解这个站是怎么一步步走到今天的,翻翻日志就能看到来龙去脉。

举报

如果在这里看到涉嫌违规的内容,点对应卡片右侧的“举报”按钮就能提交,我们会尽快核实处理;也谢谢你花一点时间,一起把这里维护干净。

趋势
// 点击导航加载发现
归档
// 归档为空
最近浏览
// 暂无浏览记录
发布
// 加载中...
用户发布
// 加载中...
用户管理
// 加载中...
访问统计
// 加载中...
内容审核
// 加载中...
个人信息
// 加载中...
返回首页

DNSGlobe:终端里的全球 DNS 传播可视化地图

2026/7/6计算机网络

DNSGlobe 是一款在终端中实时查看 DNS 记录在全球 34 个公共解析器上传播状态的世界地图工具。

一、项目背景与痛点

DNS(域名系统)是互联网的“电话簿”,将域名转换为 IP 地址。当修改 DNS 记录(如更换服务器 IP、添加 TXT 验证记录)后,由于全球各地 DNS 缓存刷新速度不同,新记录并不会立刻在所有地方生效,而是需要一段“传播时间”——少则几分钟,多则 48 小时。传统的排查方式要么手动登录多个国家的在线 DNS 检查网站(如 whatsmydns.net),要么在本地使用 dig 命令逐个查询特定解析器,过程繁琐且无法直观看到地理分布。

DNSGlobe 的诞生正是为了解决这一痛点:它提供了一个统一的终端界面,自动向全球 34 个公共 DNS 解析器(包括 Google、Cloudflare、Quad9、OpenDNS 等主流服务商)发起查询,并将结果直接渲染在一张世界地图上——绿色代表已生效,红色代表尚未更新,一目了然。

二、安装与快速上手

DNSGlobe 使用 Rust 编写,编译后为单文件二进制,无需依赖运行时环境。安装方式灵活:

方式一:Cargo(推荐)

bash
cargo install dnsglobe

前提是已安装 Rust 工具链(可通过 rustup.rs 安装)。

方式二:二进制下载

从 GitHub Releases 下载对应平台的压缩包,解压后即可运行。支持 Linux、macOS、Windows。

方式三:Docker

bash
docker run --rm -it ghcr.io/514-labs/dnsglobe:latest dnsglobe example.com

基本使用

查询一个域名:
bash
dnsglobe example.com

查询指定记录类型(默认 A):
bash
dnsglobe example.com --type AAAA

支持的类型:A、AAAA、CNAME、MX、NS、TXT、SOA 等。

输出示例

启动后,终端会显示一张 ASCII 世界地图,每个国家/地区标注了颜色和查询结果:

  • 🟢 绿色:解析器返回的 IP 与目标一致(已生效)
  • 🔴 红色:返回旧 IP 或超时(未生效)
  • ⚪ 灰色:该地区无可用解析器

同时右侧会列出每个解析器的具体响应值、延迟和状态。

三、核心亮点深度解析

1. 真正的全球覆盖

项目内置 34 个公共 DNS 解析器,分布覆盖六大洲。不仅仅是数量,更重要的是地理多样性:包括北美(Google、Cloudflare)、欧洲(Quad9、F‑Secure)、亚洲(AliDNS、114DNS)、大洋洲(Cloudflare 悉尼节点)、南美洲(Google 圣保罗节点)、非洲(Cloudflare 南非节点)。这使得传播状态评估具备实际参考价值。

2. 终端原生地图渲染

利用 Rust 的 ratatui 框架(终端 UI 库)和自定义地理坐标映射,DNSGlobe 将经纬度数据转换为终端字符网格。地图并非静态图片,而是可刷新的动态界面——用户可实时观察从“全红”到“全绿”的传播过程。

3. 并发查询 + 超时控制

默认 5 秒超时,所有查询同时发起(基于 tokio 异步运行时),避免串行等待。34 个解析器通常能在 3~8 秒内全部返回结果,并实时更新地图。

4. 轻量级与零配置

单文件二进制约 5MB,无需 Python 或 Node.js 运行时。无需 API Key,无需注册账号,不收集任何数据。

5. 可定制性

通过环境变量或命令行参数可调整:

  • --timeout:修改超时秒数
  • --interval:设置自动刷新间隔(例如每 30 秒自动重查)
  • --resolver:手动指定要查询的解析器列表

四、适用场景

  1. 网站迁移/换 IP:修改 A 记录后,快速确认全球生效情况,避免部分地区用户无法访问。
  2. CDN 配置验证:切换 CDN 服务商或调整 CNAME 记录后,检查各节点是否正确指向新目标。
  3. 域名所有权验证:添加 TXT 记录(如 SPF、DKIM、域名验证)后,确认全球解析器都能读到新记录。
  4. 故障排查:当用户反馈“部分地区打不开”时,用 DNSGlobe 判断是否为 DNS 传播延迟导致。
  5. DevOps 与 SRE 日常:集成到 CI/CD 管道中,在发布后自动检查 DNS 传播状态。

五、同类项目对比

特性 DNSGlobe whatsmydns.net dig + 手动脚本 DNSPerf
界面 终端地图 + 列表 Web 页面 纯文本 Web 表格
覆盖解析器 34 个 约 30 个 自定义 约 100 个
地理可视化 世界地图 无地图 无 无
自动刷新 ✅ ❌ 需脚本循环 ❌
离线使用 ✅ ❌ ✅ ❌
免注册 ✅ ✅ ✅ ❌(部分功能)
性能 并发异步 串行加载 取决于实现 专业级
安装复杂度 极低(单文件) 无需安装 需 dig 无需安装

总结:

  • 如果你追求终端原生、即开即用、可视化,DNSGlobe 是唯一选择。
  • 如果你需要更广泛的解析器覆盖(如 100+),DNSPerf 的全球测试网络更专业,但需注册且无地图。
  • 如果你只需要偶尔查一两个域名,whatsmydns.net 的网页版更方便。
  • 如果你习惯写脚本自动化,dig 配合 shell 脚本依然强大,但缺乏直观地理反馈。

六、技术架构与代码质量

DNSGlobe 基于 Rust 生态:

  • 异步网络:使用 tokio + trust-dns-resolver 库进行高性能 DNS 查询。
  • 终端 UI:ratatui 处理地图渲染和交互,支持鼠标滚动、键盘快捷键(如 r 手动刷新,q 退出)。
  • 地理数据:内置 JSON 格式的经纬度 → 终端坐标映射表,精确到国家/地区级别。
  • 错误处理:对每个解析器的超时、拒绝、NXDOMAIN 等状态都有明确区分,并在地图上用不同符号表示。

代码结构清晰,main.rs 负责 CLI 解析,resolver.rs 封装查询逻辑,ui.rs 处理渲染——总代码量约 1500 行,注释详尽,适合 Rust 开发者阅读学习。

七、局限与未来展望

当前版本(v0.1.x)的局限:

  • 地图仅显示到国家/地区粒度,无法精确到城市。
  • 不支持 IPv6 解析器地址(所有查询走 IPv4)。
  • 无法自定义地图样式(如放大/缩小)。
  • 不保存历史记录(每次启动为全新状态)。

项目活跃度较高(2024 年 12 月仍有提交),Roadmap 中提到了:

  • 支持更多解析器(目标 50+)
  • 导出 CSV/JSON 报告
  • 持续监控模式(后台运行,变化时推送通知)

八、总结

DNSGlobe 是一个将“终端工具”与“地理可视化”巧妙结合的 Rust 项目。它不像传统 DNS 检查工具那样枯燥地罗列数据,而是把传播过程变成了一张会变色的世界地图——既有实用价值,又富有观赏性。对于运维工程师、网站管理员和任何需要管理域名的开发者来说,这是一个值得加入工具箱的小而美利器。

项目地址:https://github.com/514-labs/dnsglobe

编写使用方法
Markdown 格式 · Ctrl+Enter 确定
新建笔记
预览
数据表格
点击单元格编辑 · Tab 移动
A1fx
Sheet1
BIH1H2≡🔗</>
隐私提醒

取消
编辑工具
取消