⚠️ Experimental: This project is currently in experimental stage and under active development.
A high-performance DNS proxy that races multiple DNS-over-HTTPS (DoH) providers to get the fastest response.
- Concurrent DNS queries to multiple providers
- Automatic failover and retry
- DNS-over-HTTPS (DoH) support
- Smart response selection based on speed and status
- Built with Rust for high performance and reliability
- Configurable DNS providers via TOML configuration
- hickory-dns: Used for DNS protocol operations and DoH support.
- tokio: Provides the asynchronous runtime for handling concurrent DNS queries.
- rustls: A modern TLS library written in Rust.
- tracing: Application-level tracing framework.
- webpki-roots: Mozilla's CA root certificates for use with webpki.
Create or modify config.toml
to configure DNS providers:
[providers.alidns-doh]
addr = "223.5.5.5:443"
hostname = "dns.alidns.com"
[providers.dnspod-doh]
addr = "1.12.12.12:443"
hostname = "doh.pub"
Run the proxy server:
race-dns-proxy [OPTIONS]
Options:
-p, --port <PORT> DNS server listening port [default: 5653]
--log <LOG> Log filepath
-c, --config <CONFIG> Configuration file path [default: config.toml]
-h, --help Print help
-V, --version Print version
The server will listen for DNS queries and forward them to configured DoH providers.
This project is Licensed under MIT License.