---
layout: page
permalink: /providers/dns/
title: "Encrypted DNS Resolvers"
description: "Don't let Google see all your DNS traffic. Discover privacy-centric alternatives to the traditional DNS providers."
breadcrumb: "DNS"
---
{% include sections/dns.html %}
Terms
- DNS-over-TLS (DoT) - A security protocol for encrypted DNS on a dedicated port 853. Some providers support port 443 which generally works everywhere while port 853 is often blocked by restrictive firewalls. DoT has two modes:
- Oppurtunistic mode: the client attempts to form a DNS-over-TLS connection to the server on port 853 without performing certificate validation. If it fails, it will use unencrypted DNS.
{% include badge.html
color="warning"
icon="fas fa-exclamation-triangle"
tooltip="In other words automatic mode leaves your DNS traffic vulnerable to SSL strip and MITM attacks."
%}
- Strict mode: the client connects to a specific hostname and performs certificate validation for it. If it fails, no DNS queries are made until it succeeds.
- DNS-over-HTTPS (DoH) - Similar to DoT, but uses HTTPS instead, being indistinguishable from "normal" HTTPS traffic on port 443.
{% include badge.html
color="warning"
icon="fas fa-exclamation-triangle"
link="https://tools.ietf.org/html/rfc8484#section-8.2"
tooltip="DoH contains metadata such as user-agent (which may include system information) that is sent to the DNS server."
%}
- DNSCrypt - An older yet robust method of encrypting DNS.
How to verify DNS is encrypted
- DoH / DoT
- Check DNSLeakTest.com.
{% include badge.html
color="warning"
icon="fas fa-exclamation-triangle"
tooltip="Your DNS provider may not appear with their own name, so compare the responses to what you know or can find about your DNS provider. Just ensure you don't see your ISP or old unencrypted DNS provider."
%}
- Check the website of your DNS provider. They may have a page for telling "you are using our DNS." Examples include AdGuard and Cloudflare.
- If using Firefox's trusted recursive resolver (TRR), navigate to
about:networking#dns
. If the TRR column says "true" for some fields, you are using DoH.
{% include badge.html
color="warning"
icon="fas fa-exclamation-triangle"
link="https://wiki.mozilla.org/Trusted_Recursive_Resolver"
tooltip="Some fields will say 'false' depending on the the value of network.trr.mode in about:config"
%}
- dnscrypt-proxy - Check dnscrypt-proxy's wiki on how to verify that your DNS is encrypted.
- DNSSEC - Check DNSSEC Resolver Test by Matthäus Wander.
- QNAME Minimization - Run
dig +short txt qnamemintest.internet.nl
from the command-line (taken from this NLnet Labs presentation). If you are on Windows 10, run Resolve-DnsName -Type TXT -Name qnamemintest.internet.nl
from the PowerShell. You should see this display: "HOORAY - QNAME minimisation is enabled on your resolver :)!"
Software suggestions and Additional Information
- Encrypted DNS clients for desktop:
- Firefox comes with built-in DoH support with Cloudflare set as the default resolver, but can be configured to use any DoH resolver.
{% include badge.html
color="warning"
icon="fas fa-exclamation-triangle"
link="https://developers.cloudflare.com/1.1.1.1/commitment-to-privacy/privacy-policy/firefox/"
tooltip=""Cloudflare has agreed to collect only a limited amount of data about the DNS requests that are sent to the Cloudflare Resolver for Firefox via the Firefox browser.""
%}
Currently Mozilla is conducting studies before enabling DoH by default for all US-based Firefox users.
- DNS over HTTPS can be enabled in Menu -> Preferences (
about:preferences
) -> Network Settings -> Enable DNS over HTTPS. Set "Use Provider" to "Custom", and enter your DoH provider's address.
- Advanced users may enable it in
about:config
by setting network.trr.custom_uri
and network.trr.uri
as the address you find from the documentation of your DoH provider and network.trr.mode
as 2
. It may also be desirable to set network.security.esni.enabled
to True
in order to enable encrypted SNI and make sites supporting ESNI a bit more difficult to track.
- Encrypted DNS clients for mobile:
- Android 9 comes with a DoT client by default.
{% include badge.html
color="warning"
icon="fas fa-exclamation-triangle"
link="https://www.quad9.net/private-dns-quad9-android9/"
tooltip="...but with some caveats"
%}
- We recommend selecting Private DNS provider hostname and entering the DoT address from documentation of your DoT provider to enable strict mode (see Terms above).
{% include badge.html
color="warning"
icon="fas fa-exclamation-triangle"
tooltip="If you are on a network blocking access to port 853, Android will error about the network not having internet connectivity."
%}
- DNSCloak - An open-source DNSCrypt and DoH client for iOS by
the Center for the Cultivation of Technology gemeinnuetzige GmbH.
- Nebulo - An open-source application for Android supporting DoH and DoT. It also supports caching DNS responses and locally logging DNS queries.
- Local DNS servers:
- Stubby - An open-source application for Linux, macOS, and Windows that acts as a local DNS Privacy stub resolver using DoT.
- Unbound - a validating, recursive, caching DNS resolver. It can also be ran network-wide and has supported DNS-over-TLS since version 1.7.3.
- Network wide DNS servers:
- Pi-hole - A network-wide DNS server mainly for the Raspberry Pi. Blocks ads, tracking, and malicious domains for all devices on your network.
- NoTrack - A network-wide DNS server like Pi-hole for blocking ads, tracking, and malicious domains.
- Further reading:
|