Skip to content

Releases: DNSCrypt/dnscrypt-proxy

2.0.46-beta1

07 Jun 16:58
2.0.46-beta1
Compare
Choose a tag to compare
2.0.46-beta1 Pre-release
Pre-release

Version 2.0.46-beta1

  • Source URLs are now randomized.
  • On some platforms, redirecting the application log to a file was not compatible with user switching; this has been fixed.
  • fallback_resolvers was renamed to bootstrap_resolvers for clarity. Please update your configuration file accordingly.
  • Preliminary support for ODoH (Oblivious DoH) was added. Thanks to Chris Wood for his help on this!

2.0.45

03 Jan 17:38
2.0.45
Compare
Choose a tag to compare
  • Configuration changes (to be required in versions 2.1.x):
    • [blacklist] has been renamed to [blocked_names]
    • [ip_blacklist] has been renamed to [blocked_ips]
    • [whitelist] has been renamed to [allowed_names]
    • generate-domains-blacklist.py has been renamed to generate-domains-blocklist.py, and the configuration files have been renamed as well.
  • dnscrypt-proxy -resolve has been completely revamped, and now requires the configuration file to be accessible. It will send a query to an IP address of the dnscrypt-proxy server by default. Sending queries to arbitrary servers is also supported with the new -resolve name,address syntax.
  • Relay lists can be set to * for automatic relay selection. When a wildcard is used, either for the list of servers or relays, the proxy ensures that relays and servers are on distinct networks.
  • Lying resolvers are detected and reported.
  • New return code: NOT_READY for queries received before the proxy has been initialized.
  • Server lists can't be older than a week any more, even if directory permissions are incorrect and cache files cannot be written.
  • macOS/arm64 is now officially supported.
  • New feature: allowed_ips, to configure a set of IP addresses to never block no matter what DNS name resolves to them.
  • Hard-coded IP addresses can be immediately returned for test queries sent by operating systems in order to check for connectivity and captive portals. Such responses can be sent even before an interface is considered as enabled by the operating system. This can be configured in a new section called [captive_portals].
  • On Linux, OpenBSD and FreeBSD, listen_addresses can now include IP addresses that haven't been assigned to an interface yet.
  • The logo has been tweaked to look fine on a dark background.
  • generate-domains-blocklist.py: regular expressions are now ignored in time-based entries.
  • Minor bug fixes and logging improvements.
  • Cloaking plugin: if an entry has multiple IP addresses for a type, all the IP addresses are now returned instead of a random one.
  • Static entries can now include DNSCrypt relays.
  • Name blocking: aliases relying on SVCB and HTTPS records can now be blocked in addition to aliases via regular CNAME records.
  • EDNS-Client-Subnet information can be added to outgoing queries. Instead of sending the actual client IP, ECS information is user
    configurable, and IP addresses will be randomly chosen for every query.
  • Initial DoH queries are now checked using random names in order to properly measure CDNs such as Tencent that ignore the padding.
  • DoH: the max-stale cache control directive is now present in queries.
  • Logs can now be sent to /dev/stdout instead of actual files.
  • User switching is now supported on macOS.
  • New download mirror (https://download.dnscrypt.net) for resolvers, relays and parental-control.

Thanks to the nice people who contributed to this release:

2.0.44

11 Jun 19:00
2.0.44
Compare
Choose a tag to compare
  • More updates to the set of block lists, thanks again to IceCodeNew.
  • Netprobes and listening sockets are now ignored when the -list, -list-all, -show-certs or -check command-line switches are used.
  • tls_client_auth was renamed to doh_client_x509_auth. A section with the previous name is temporarily ignored if empty, but will error out if not.
  • Unit tests are now working on 32-bit systems. Thanks to Will Elwood and @lifenjoiner.

2.0.43

09 Jun 10:24
2.0.43
Compare
Choose a tag to compare
  • Built-in support for DNS64 translation has been implemented. (Contributed by Sergey Smirnov, thanks!)
  • Connections to DoH servers can be authenticated using TLS client certificates (Contributed by Kevin O'Sullivan, thanks!)
  • Multiple stamps are now allowed for a single server in resolvers and relays lists.
  • Android: the time zone for log files is now set to the system time zone.
  • Quite a lot of updates and additions have been made to the example domain block lists. Thanks to IceCodeNew!
  • Cached configuration files can now be temporarily used if they are out of date, but bootstraping is impossible. Contributed by lifenjoiner, thanks!
  • Precompiled macOS binaries are now notarized.
  • generate-domains-blacklists now tries to deduplicate entries clobbered by wildcard rules. Thanks to Huhni!
  • generate-domains-blacklists can now directly write lists to a file with the -o command-line option.
  • cache files are now downloaded as the user the daemon will be running as. This fixes permission issues at startup time.
  • Forwarded queries are now subject to global timeouts, and can be forced to use TCP.
  • The ct parameter has been removed from DoH queries, as Google doesn't require it any more.
  • Service installation is now supported on FreeBSD.
  • When stored into a file, service logs now only contain data from the most recent launch. This can be changed with the new log_file_latest option.
  • Breaking change: the tls_client_auth section was renamed to doh_client_x509_auth. If you had a tls_client_auth section in the configuration file, it needs to be updated.

2.0.42

26 Mar 17:48
2.0.42
Compare
Choose a tag to compare
  • The current versions of the dnsdist load balancer (presumably used by quad9, cleanbrowsing, qualityology, freetsa.org, ffmuc.net, opennic-bongobow, sth-dnscrypt-se, ams-dnscrypt-nl and more) is preventing queries over 1500 bytes from being received over UDP.
    Temporary workarounds have been introduced to improve reliability with these resolvers for regular DNSCrypt. Unfortunately, anonymized DNS cannot be reliable until the issue is fixed server-side.
    dnsdist authors are aware of it and are working on a fix already have a fix.
  • New option in the [anonymized_dns] section: skip_incompatible, to ignore resolvers incompatible with Anonymized DNS instead of using them without a relay.
  • The server latency benchmark is faster while being able to perform more retries if necessary.
  • Continuous integration has been moved to GitHub Actions.

2.0.41

24 Mar 18:05
2.0.41
Compare
Choose a tag to compare
  • Precompiled ARM binaries are compatible with armv5 CPUs. The default arm builds were not compatible with older CPUs when compiled with Go 1.14. mips64 binaries are explicitly compiled with softfloat to improve compatibility.
  • Quad9 seems to be only blocking fragmented queries over UDP for some networks. They have been removed from the default list of broken resolvers; runtime detection of support for fragments should now do the job.
  • Runtime detection of support for fragments was actually enabled.

2.0.40

21 Mar 12:00
2.0.40
Compare
Choose a tag to compare
  • Servers blocking fragmented queries are now automatically detected.
  • The server name is now only present in query logs when an actual upstream servers was required to resolve a query.
  • TLS client authentication has been added for DoH.
  • The Firefox plugin is now skipped for connections coming from the local DoH server.
  • DoH RTT computation is now more accurate, especially when CDNs are in the middle.
  • The forwarding plugin is now more reliable, and handles retries over TCP.

2.0.39

31 Jan 10:39
2.0.39
Compare
Choose a tag to compare
  • The Firefox Local DoH service didn't properly work in version 2.0.38;
    this has been fixed. Thanks to Simon Brand for the report!

2.0.38

30 Jan 15:25
2.0.38
Compare
Choose a tag to compare
  • Entries from lists (forwarding, blacklists, whitelists) now support inline comments.
  • Reliability improvement: queries over UDP are retried after a timeout instead of solely relying on the client.
  • Reliability improvement: during temporary network outages, cached records are now served even if they are stale.
  • Bug fix: SOCKS proxies and DNS relays can be combined.
  • New feature: multiple fallback resolvers are now supported (see the new fallback_resolvers option. Note that fallback_resolver is still supported for backward compatibility).
  • Windows: the service can be installed with a configuration file stored separately from the application.
  • Security (affecting DoH): precompiled binaries of dnscrypt-proxy 2.0.37 are built using Go 1.13.7 that fixes a TLS certificate parsing issue present in previous versions of the compiler.

2.0.36

21 Dec 20:48
2.0.36
Compare
Choose a tag to compare
  • New option: block_undelegated. When enabled, dnscrypt-proxy will directly respond to queries for locally-served zones (https://sk.tl/2QqB971U) and nonexistent zones that should have been kept local, but are frequently leaked. This reduces latency and improves privacy.
  • Conformance: the DO bit is now set in synthetic responses if it was set in a question, and the AD bit is cleared.
  • The miegkg/dns module was updated to version 1.1.26, that fixes a security issue affecting non-encrypted/non-authenticated DNS traffic. In dnscrypt-proxy, this only affects the forwarding feature.