- Accepts multiple client request
- Handles Both TCP and UDP requests using multithreading
- Logs for client query, answer from DNS server, and errors
- Python3
- Docker
- SSL certificate (included)
- Build
make build
- Run
make run
- Test: UDP, TCP proxies, and multiple request
make test-tcp
make test-udp
make multiple-client
- Inspect Logs
make logs
- Cleanup Workspace
make cleanup
Makefile contains two variables-
SERVICE_NAME
andSERVICE_PORT
to mitigate conflicts as port53
is a common port and in most server, systemd resolver may already use the port by default.
- Build
docker build -t dns-over-tcp-proxy .
- Run
docker run -itd -p 53:53/tcp -p 53:53/udp dns-over-tcp-proxy
- Test: UDP, TCP proxies
dig @0.0.0.0 sabbir.dev # for UDP
dig @0.0.0.0 sabbir.dev +tcp # for TCP
- Cache middlewire to decrease latency
- IP Block whitelist/blacklist
- Block malicious servers
- DDoS protection
- Ad Block