Skip to content

zh-yjie/ya-dns

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

85 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

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) (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