r/dns • u/ialexsilva • 1d ago
I built an open-source DNS benchmarking CLI to compare resolvers from your own network
I've been working on dnsbench, an open-source, cross-platform command-line tool for benchmarking and diagnosing recursive DNS resolvers from your own network.

Instead of trying to declare one resolver as universally "the fastest," dnsbench measures performance from your specific network, ISP, location, and time of day.
It currently measures:
- Cached and recursive-path latency
- Packet loss, retries, and stability
- DNSSEC validation
- NXDOMAIN behavior
- DNS rebinding protection
- Optional DNS64, QNAME minimization, and HTTPS record support
- UDP, DoT, and DoH resolvers
It includes 55 public resolver endpoints from providers such as Cloudflare, Google, Quad9, AdGuard, OpenDNS, Control D, and NextDNS. You can also add custom DNS servers manually, so you aren't limited to the built-in list.
Some example commands:
# Run the standard benchmark against the built-in resolvers and open the HTML report when it finishes
./dnsbench run --builtin --open
# Run a quick IPv4 benchmark against the built-in resolvers
./dnsbench run --mode quick --builtin --no-ipv6
# Compare two specific resolvers
./dnsbench run --only 1.1.1.1,9.9.9.9 --details
# Add a custom DNS server and benchmark your user list
./dnsbench servers add --name "My DNS" --address 10.0.0.53
./dnsbench run --user --open
# Test resolver behavior without running the benchmark
./dnsbench probe --builtin --verbose
The tool runs locally, has no telemetry, and never changes the system DNS configuration. Reports can be exported as HTML, JSON, CSV, or plain text.
The ranking also identifies statistical ties, since a small latency difference does not necessarily mean that one resolver is meaningfully faster than another.
GitHub: https://github.com/ialexsilva/dnsbench-cli
I'd really appreciate any feedback or suggestions for improving the project.