MerchantryTidbits

security / cli

Encrypted DNS Server (DNSCrypt)

Capability: Encrypted DNS Server (DNSCrypt)

Use it when

  • You operate your own recursive resolver and want clients to reach it over an encrypted DNS transport rather than exposing queries in plaintext on the local network.
  • You need DNSCrypt, Anonymized DNSCrypt, and optional DoH/QUIC forwarding on one public endpoint with automatic key and certificate rotation.

What it solves

Not the fit when

  • Recursive resolution by itself; pair it with Unbound, Knot, PowerDNS, or another resolver.
  • DoH without a separate DoH proxy such as rust-doh.
  • Hiding queries from the recursive resolver or its upstream authorities; encrypted transport protects the client-to-endpoint hop, not the entire DNS resolution chain.
  • Deleting or publicly exposing `encrypted-dns.state`; it contains the provider secret key and certificates.
  • Applying domain filters to DoH-forwarded traffic; README says filtering applies only to DNSCrypt.
  • recursive DNS resolution itself (requires a separate resolver)
  • client-side DNS encryption on end devices
  • web reverse proxying or TLS for HTTP services

Install

cargo install encrypted-dns (or download Debian packages / Linux and Windows archives from the GitHub releases page; Docker users deploy via dnscrypt-server-docker)

Invoke

Copy `example-encrypted-dns.toml` to `encrypted-dns.toml`, configure `listen_addrs` and `provider_name`, and point it at a recursive resolver such as Unbound, Knot, or PowerDNS. Run `encrypted-dns`; preserve the generated `encrypted-dns.state` secret-key file and use the printed DNS stamps with dnscrypt-proxy clients. DoH additionally requires a separate DoH proxy such as rust-doh.

Alternatives

No reviewed alternatives recorded yet.