Skip to content

samurai00/race-dns-proxy

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

27 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Race DNS Proxy

⚠️ 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.

Features

  • 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

Dependencies

  • 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.

Configuration

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"

Usage

Run the proxy server:

race-dns-proxy [OPTIONS]

Command Line 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.

License

This project is Licensed under MIT License.

About

No description, website, or topics provided.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages