Convert Figma logo to code with AI

DNSCrypt logodnscrypt-proxy

dnscrypt-proxy 2 - A flexible DNS proxy, with support for encrypted DNS protocols.

11,287
1,003
11,287
14

Top Related Projects

Network-wide ads & trackers blocking DNS server

2,827

一个 DNS 转发器

3,614

PowerDNS Authoritative, PowerDNS Recursor, dnsdist

3,013

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

  1. Download the latest release for your operating system from the GitHub releases page.

  2. Extract the archive and navigate to the extracted folder.

  3. Rename example-dnscrypt-proxy.toml to dnscrypt-proxy.toml and edit it to configure your settings:

listen_addresses = ['127.0.0.1:53']
server_names = ['cloudflare']
  1. Run the proxy:
./dnscrypt-proxy
  1. 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.

2,827

一个 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.

3,614

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.

3,013

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 Figma logo designs to code with AI

Visual Copilot

Introducing Visual Copilot: A new AI model to turn Figma designs to high quality code using your components.

Try Visual Copilot

README

dnscrypt-proxy 2

Financial Contributors on Open Collective DNSCrypt-Proxy Release Build Status CodeQL scan ShiftLeft Scan #dnscrypt-proxy:matrix.org

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).

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]