dnscrypt-proxy
dnscrypt-proxy 2 - A flexible DNS proxy, with support for encrypted DNS protocols.
Top Related Projects
Network-wide ads & trackers blocking DNS server
一个 DNS 转发器
PowerDNS Authoritative, PowerDNS Recursor, dnsdist
Unbound is a validating, recursive, and caching DNS resolver.
Quick Overview
DNSCrypt-proxy is a flexible DNS proxy with support for modern encrypted DNS protocols such as DNSCrypt v2, DNS-over-HTTPS, and Anonymized DNSCrypt. It acts as a local DNS resolver, providing enhanced privacy, security, and reliability for DNS queries.
Pros
- Supports multiple encrypted DNS protocols, enhancing privacy and security
- Offers features like DNS caching, filtering, and load balancing
- Lightweight and cross-platform, running on various operating systems
- Actively maintained with regular updates and improvements
Cons
- May require some technical knowledge to set up and configure properly
- Can potentially introduce latency in DNS resolution, especially with certain configurations
- Limited GUI options, primarily configured through command-line and configuration files
- May conflict with existing DNS settings or other network applications if not properly configured
Getting Started
-
Download the latest release for your operating system from the GitHub releases page.
-
Extract the archive and navigate to the extracted folder.
-
Rename
example-dnscrypt-proxy.toml
todnscrypt-proxy.toml
and edit it to configure your settings:
listen_addresses = ['127.0.0.1:53']
server_names = ['cloudflare']
- Run the proxy:
./dnscrypt-proxy
- Configure your system or applications to use
127.0.0.1
as the DNS server.
For more detailed instructions and advanced configurations, refer to the official documentation.
Competitor Comparisons
Network-wide ads & trackers blocking DNS server
Pros of AdGuardHome
- More comprehensive DNS filtering and ad-blocking capabilities
- User-friendly web interface for easy configuration and management
- Supports multiple upstream DNS providers simultaneously
Cons of AdGuardHome
- Higher resource usage compared to dnscrypt-proxy
- More complex setup process for advanced features
- May require additional configuration for optimal performance
Code Comparison
AdGuardHome configuration example:
dns:
bind_hosts:
- 0.0.0.0
upstream_dns:
- https://dns.cloudflare.com/dns-query
- tls://1.1.1.1
dnscrypt-proxy configuration example:
listen_addresses = ['127.0.0.1:53']
server_names = ['cloudflare']
AdGuardHome offers more granular control over DNS settings and filtering options, while dnscrypt-proxy focuses on providing encrypted DNS with a simpler configuration. AdGuardHome's YAML-based configuration allows for more detailed customization, whereas dnscrypt-proxy uses a more concise TOML format.
Both projects aim to enhance DNS privacy and security, but AdGuardHome provides additional features like ad-blocking and parental controls. dnscrypt-proxy is lighter and more focused on DNS encryption, making it suitable for systems with limited resources or users who prefer a minimalist approach.
一个 DNS 转发器
Pros of mosdns
- More flexible and customizable DNS routing and filtering options
- Better support for complex DNS configurations and rules
- Lighter resource usage, especially for memory consumption
Cons of mosdns
- Less focus on privacy and encryption compared to dnscrypt-proxy
- Smaller community and fewer maintained server lists
- May require more manual configuration for advanced setups
Code Comparison
mosdns configuration example:
log:
level: info
plugins:
- tag: forward
type: forward
args:
upstream:
- addr: https://dns.google/dns-query
dnscrypt-proxy configuration example:
server_names = ['cloudflare', 'google']
listen_addresses = ['127.0.0.1:53']
max_clients = 250
ipv4_servers = true
ipv6_servers = false
dnscrypt_servers = true
doh_servers = true
Both projects offer DNS proxy functionality, but mosdns focuses on flexible routing and filtering, while dnscrypt-proxy emphasizes privacy and encryption. mosdns provides more granular control over DNS queries and responses, making it suitable for complex network setups. dnscrypt-proxy, on the other hand, offers stronger privacy features and a larger selection of pre-configured secure DNS servers. The choice between the two depends on specific requirements for DNS management, privacy, and ease of configuration.
PowerDNS Authoritative, PowerDNS Recursor, dnsdist
Pros of pdns
- Full-featured authoritative DNS server and recursor
- Supports various backend databases for flexibility
- Extensive documentation and enterprise-grade support
Cons of pdns
- More complex setup and configuration
- Higher resource usage for small-scale deployments
- Steeper learning curve for beginners
Code Comparison
pdns (PowerDNS):
void PacketHandler::getUpdatedMasters(vector<DomainInfo>* domains)
{
if(::arg().mustDo("slave") && d_dk.getKeys().empty()) {
L<<Logger::Warning<<"No backend keys, not checking for master updates"<<endl;
return;
}
...
}
dnscrypt-proxy:
func (proxy *Proxy) udpListener(clientPc *net.UDPConn) {
defer clientPc.Close()
for {
buffer := make([]byte, MaxDNSPacketSize-1)
length, clientAddr, err := clientPc.ReadFrom(buffer)
...
}
}
pdns offers a more comprehensive DNS solution with advanced features, while dnscrypt-proxy focuses on providing a lightweight, secure DNS proxy. pdns is better suited for large-scale deployments and complex setups, whereas dnscrypt-proxy is ideal for personal use and simpler configurations. The code snippets highlight the different languages and approaches used in each project.
Unbound is a validating, recursive, and caching DNS resolver.
Pros of unbound
- More comprehensive DNS resolver with full recursive capabilities
- Supports DNSSEC validation out of the box
- Highly configurable and suitable for enterprise-level deployments
Cons of unbound
- Steeper learning curve and more complex setup
- Lacks built-in DNS-over-HTTPS support (requires additional configuration)
- May consume more system resources compared to lightweight alternatives
Code comparison
unbound configuration example:
server:
verbosity: 1
interface: 127.0.0.1
port: 53
do-ip4: yes
do-udp: yes
do-tcp: yes
access-control: 127.0.0.0/8 allow
root-hints: "/var/unbound/etc/root.hints"
dnscrypt-proxy configuration example:
listen_addresses = ['127.0.0.1:53']
server_names = ['cloudflare']
ipv4_servers = true
ipv6_servers = false
dnscrypt_servers = true
doh_servers = true
require_dnssec = true
Both projects aim to enhance DNS privacy and security, but they approach the task differently. unbound is a full-featured recursive DNS resolver with DNSSEC support, while dnscrypt-proxy focuses on encrypting DNS queries and providing a simpler configuration for various encrypted DNS protocols.
Convert designs to code with AI
Introducing Visual Copilot: A new AI model to turn Figma designs to high quality code using your components.
Try Visual CopilotREADME
Overview
A flexible DNS proxy, with support for modern encrypted DNS protocols such as DNSCrypt v2, DNS-over-HTTPS, Anonymized DNSCrypt and ODoH (Oblivious DoH).
- dnscrypt-proxy documentation â Start here
- DNSCrypt project home page
- Discussions
- DNS-over-HTTPS and DNSCrypt resolvers
- Server and client implementations
- DNS stamps
- FAQ
Download the latest release
Available as source code and pre-built binaries for most operating systems and architectures (see below).
Features
- DNS traffic encryption and authentication. Supports DNS-over-HTTPS (DoH) using TLS 1.3 and QUIC, DNSCrypt, Anonymized DNS and ODoH
- Client IP addresses can be hidden using Tor, SOCKS proxies or Anonymized DNS relays
- DNS query monitoring, with separate log files for regular and suspicious queries
- Filtering: block ads, malware, and other unwanted content. Compatible with all DNS services
- Time-based filtering, with a flexible weekly schedule
- Transparent redirection of specific domains to specific resolvers
- DNS caching, to reduce latency and improve privacy
- Local IPv6 blocking to reduce latency on IPv4-only networks
- Load balancing: pick a set of resolvers, dnscrypt-proxy will automatically measure and keep track of their speed, and balance the traffic across the fastest available ones.
- Cloaking: like a
HOSTS
file on steroids, that can return preconfigured addresses for specific names, or resolve and return the IP address of other names. This can be used for local development as well as to enforce safe search results on Google, Yahoo, DuckDuckGo and Bing - Automatic background updates of resolvers lists
- Can force outgoing connections to use TCP
- Compatible with DNSSEC
- Includes a local DoH server in order to support ECH (ESNI)
Pre-built binaries
Up-to-date, pre-built binaries are available for:
- Android/arm
- Android/arm64
- Android/x86
- Android/x86_64
- Dragonfly BSD
- FreeBSD/arm
- FreeBSD/x86
- FreeBSD/x86_64
- Linux/arm
- Linux/arm64
- Linux/mips
- Linux/mipsle
- Linux/mips64
- Linux/mips64le
- Linux/x86
- Linux/x86_64
- macOS/arm64
- macOS/x86_64
- NetBSD/x86
- NetBSD/x86_64
- OpenBSD/x86
- OpenBSD/x86_64
- Windows
- Windows 64 bit
How to use these files, as well as how to verify their signatures, are documented in the installation instructions.
Contributors
Code Contributors
This project exists thanks to all the people who contribute.
Financial Contributors
Become a financial contributor and help us sustain our community. [Contribute]
Individuals
Organizations
Support this project with your organization. Your logo will show up here with a link to your website. [Contribute]
Top Related Projects
Network-wide ads & trackers blocking DNS server
一个 DNS 转发器
PowerDNS Authoritative, PowerDNS Recursor, dnsdist
Unbound is a validating, recursive, and caching DNS resolver.
Convert designs to code with AI
Introducing Visual Copilot: A new AI model to turn Figma designs to high quality code using your components.
Try Visual Copilot