DNS Proxy is a DNS server that supports DNS-over-TLS, DNS-over-HTTPS, DNS-over-QUIC, and DNSCrypt protocols for both client connections and upstream forwarding.
The tool solves the problem of needing a lightweight DNS proxy that handles modern encrypted DNS protocols. It works by accepting DNS queries on standard or encrypted protocols, forwarding them to configured upstream servers (which may themselves use encrypted protocols), and returning responses to clients. The proxy can listen on multiple interfaces and ports simultaneously, and supports features like rate limiting, response caching, DNS64 translation, parallel upstream queries, and domain-specific upstream routing.
The tool suits operators who need a simple, self-contained DNS proxy without heavy dependencies. It works well for home networks, small deployments, or as a component in larger infrastructure. The project provides prebuilt binaries, Docker images, and straightforward build instructions for those preferring to compile from source. It handles both basic use cases like forwarding to a single upstream and complex scenarios involving multiple encrypted upstreams with fallback servers, bootstrap DNS configuration, and per-domain routing rules.
The project shows consistent maintenance with regular updates addressing functionality and protocol support. Development activity demonstrates responsiveness to issues and pull requests, with fixes and enhancements being merged steadily. The codebase maintains compatibility requirements, currently requiring Go 1.26 or later for builds. The project accepts community contributions and maintains clear documentation with practical examples for common deployment patterns.