updns
updns is a simple DNS proxy server developed using Rust
. You can intercept any domain name and return the ip you need
Install
Download the binary from the release page
Or use cargo
to install
cargo install updns
🚀
Start to use updns
# or
updns -c /your/hosts
You may use sudo
to run this command because you will use the 53
port
Running in docker
Build docker image
docker build -t updns .
Start up
docker run -d --name updns -p 53:53/udp -v /root/updns/:/root/.updns/ --restart always updns
Command
Usage:
updns [COMMAND] [OPTION]
Command:
add Add a DNS record
ls Print all configured DNS records
config Call 'vim' to edit the configuration file
path Print related directories
help Print help information
version Print version information
Option:
-c Specify a config file
-i Check the interval time of the configuration file
format: 1ms, 1s, 1m, 1h, 1d
Config
You can use updns config
command and then call vim
edit, or find ~/.updns/config
edit
You can specify standard domains, or utilize regular expressions for dynamic matching
Regular expression starts with
~
bind 0.0.0.0:53 # Binding address
proxy 8.8.8.8:53 # Proxy address
timeout 2s # Proxy timeout (format: 1ms, 1s, 1m, 1h, 1d)
# Domain matching
example.com 1.1.1.1
*.example.com 2.2.2.2
~^\w+\.example\.[a-z]+$ 3.3.3.3
# IPv6
test.com ::
# Import from other file
import /other/hosts
Reference
License
MIT license