Skip to content

Latest commit

 

History

History
60 lines (38 loc) · 1.6 KB

README.md

File metadata and controls

60 lines (38 loc) · 1.6 KB

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) (mips not support)
  • 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