DNS改了全球要等多久?一个终端工具帮你盯着
做软路由的都知道,改DNS解析是最让人焦虑的操作之一。你在Cloudflare改了A记录,自己电脑秒生效,但美国的朋友可能还在解析到旧IP。以前只能去dnschecker.org一个一个查,或者写脚本批量dig——说实话挺麻烦的。
最近GitHub上744星的dnsglobe解决了这个问题。它是个Rust写的终端工具,一条命令就能同时查询全球34个DNS服务器的解析结果。
为什么这个工具有用
- 34个节点并行查询——覆盖Google、Cloudflare、Quad9这些Anycast网络,加上北美、欧洲、俄罗斯、中东、东亚、南半球的本地DNS
- 终端里直接看世界地图——如果你的终端够宽(150列以上),右边会显示一个世界地图,每个DNS服务器一个点,绿色=一致,紫色=不一致,红色=出错
- 自动追踪Anycast节点——它会问Cloudflare、Google这些Anycast网络"你在哪个节点回答我",然后在地图上标注实际服务你的POP点
- Watch模式——改DNS后启动watch,它会持续轮询直到全球所有节点都一致,不用你手动刷新
软路由场景下的实际用法
我自己的使用场景是这样的:家里的iStoreOS跑了一套自建DNS(AdGuard Home + Unbound),有时候需要把某个域名指向新的服务器。改完之后我会用dnsglobe确认:
- 公网DNS是否已经全部更新
- 有没有某个地区的DNS还在返回旧记录
- Anycast节点分布是否合理
安装很简单:macOS用brew install 514-labs/tap/dnsglobe,Arch用yay -S dnsglobe,其他平台可以从GitHub Releases下载二进制。
踩坑记录
- 国内DNS节点覆盖有限——34个节点里中国大陆的不多,主要还是国际主流DNS。如果你需要测国内三大运营商的DNS,还是得自己dig
- 终端宽度要求——地图模式需要150列以上,窄终端会退化成纯文字表格,信息量少很多
- 初次查询慢——34个DNS并行查询,第一次可能要等5-10秒,之后watch模式就快了
总结
做软路由的大概率都遇到过DNS解析不一致的问题,以前要么忍着,要么写脚本。dnsglobe把这个事情变得很直观,终端里一条命令搞定。开源免费,Rust写的性能也好,值得收藏。GitHub地址:github.com/514-labs/dnsglobe
文章评论