updns is a simple DNS proxy server developed using Rust. You can intercept any domain name and return the ip you need
Download the binary from the release page
Or use cargo to install
cargo install updnsupdns
# or
updns -c /your/hostsYou may use sudo to run this command because you will use the 53 port
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 updnsYou 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/hostsMIT license