Skip to content

zh-yjie/ya-dns

Repository files navigation

ya-dns

releases build

Ya-DNS provides a binary for forwarding DNS.

It forwards DNS queries to multiple servers and decides which result to return by custom rules.

Prebuilt releases are available here.

Features

  • UDP
  • TCP
  • DNS over TLS (DoT)
  • DNS over HTTPS (DoH)
  • DNS over HTTP/3 (DoH3)
  • DNS over QUIC (DoQ)
  • Rule based forwarding
  • Rule based response filtering
  • Parallel forwarding
  • Regex matching

Usage

The path of the configuration file is passed using -c:

$ ./yadns -c <CONFIG_FILE>

If you ignore -c, it will load config.toml.

Note: All non-absolute file paths (in the command line arguments and in the config file) are relative to the working directory instead of the location of the executable or the config file.

Examples

Build

The current minimum rustc version for this project is 1.64

Install Rust: https://www.rust-lang.org/tools/install

Install GCC or Clang.

Clone & Build:

git clone --recursive https://github.com/zh-yjie/ya-dns.git
cd ya-dns
cargo build --release

About

Rule based dns server.

Topics

Resources

License

Stars

Watchers

Forks

Packages

 
 
 

Contributors

Languages