dnsglobe: Global DNS Propagation Checker TUI on World Map

New open-source GitHub tool lets you watch DNS records propagate across 34 worldwide resolvers via a terminal TUI with interactive map.

dnsglobe: Global DNS Propagation Checker TUI on World Map

What is dnsglobe

dnsglobe514-labs
View on GitHub โ†’
is a Rust TUI application that queries 34 public DNS resolvers worldwide in parallel to track record propagation. It displays results on a terminal world map when the terminal width reaches 150 columns and supports a watch mode that re-polls until answers stabilize. The project appeared on GitHub Trending with 801 stars at the time of writing. It targets developers who need to verify DNS changes without leaving the command line.

Technical Implementation

dnsglobe sends direct queries to each resolver using UDP with EDNS0 enabled and falls back to TCP for truncated responses. It avoids shared caches by contacting the listed servers individually. Answers that contain identical record sets are grouped, so round-robin pools appear as a single consistent result rather than multiple conflicts. The propagation gauge counts how many resolvers match the majority group; any resolver outside that group is marked as differing.

For anycast networks the tool extracts the serving site through additional TXT queries. Quad9 uses id.server.on.quad9.net, Cloudflare uses id.server, Google uses o-o.myaddr.l.google.com matched against locations.publicdns.goog, and OpenDNS uses debug.opendns.com. The extracted site code appears in the Loc column and repositions the corresponding dot on the map.

The map itself is rendered only on wide terminals. Each resolver is represented by a single character colored green for agreement, magenta for difference, red for error, or yellow while the query is in flight. The source lists resolvers across North America, Europe, Russia, the Middle East, East Asia, Australia, New Zealand, and Brazil.

Using dnsglobe in Practice

Installation on macOS and Linux is available through Homebrew with the command brew install 514-labs/tap/dnsglobe. Rust users can run cargo install dnsglobe directly. Once installed, a basic check is invoked by supplying a record name and type, for example dnsglobe example.com A. Adding the --watch flag keeps the process running and updates the display each cycle until the gauge reaches 100 percent.

Output columns include the resolver name, the returned records, the location code when available, and the status indicator. In watch mode the screen refreshes at a fixed interval while the tool continues to query all 34 endpoints. Because queries run concurrently, total runtime stays close to the latency of the slowest resolver rather than scaling linearly.

Comparison to Existing Tools

Web services such as dnschecker.org and whatsmydns.net provide similar global views but require a browser and expose results through their own caches. dnsglobe runs locally and contacts the resolvers directly, which removes the intermediate cache layer but also means the user must have network access to every listed server. The TUI format allows integration into scripts or tmux sessions, whereas browser tools do not.

The requirement for a wide terminal limits map visibility on laptops or split-screen setups. The fixed list of 34 resolvers also means coverage depends on the maintainers; adding or removing endpoints requires a new release. On the other hand, the Rust implementation keeps binary size small and startup time low compared with interpreted alternatives.

FAQs

Does dnsglobe require an API key? No. All queries are sent directly to the public resolvers listed in the source.

Can dnsglobe check private DNS servers? No. It only contacts the 34 predefined public resolvers; custom server lists are not supported.

Is the map available on every terminal? The map renders only when the terminal is at least 150 columns wide; narrower terminals show the table view alone.

---

๐Ÿ“– Related articles

Need a consultation?

I help companies and startups build software, automate workflows, and integrate AI. Let's talk.

Get in touch
โ† Back to blog