I saw a comment recommending Mullvad's. I currently use the default DNS (my ISP's default).
Some additional details:
- Outbound internet access over port 53 is blocked for everything on the network, other than the Pi-Hole/Unbound server
- IpTables rule in place to force all outbound traffic over port 53 to go thru the Pi-Hole. This prevents devices from circumventing the Pi-Hole filtering by hard-coding public DNS servers
- Cronjob that polls http://public-dns.info/nameservers-all.txt regularly, and updates an IpTables rule to block all outbound internet traffic over any port/protocol to servers in that list. This is my attempt to block things that try to circumvent DNS filtering by doing DNS over HTTPS
- Unbound makes it possible to bypass DnsCrypt for specific zones, as needed. It also is configured to prefetch records before expiration, which generally eliminates the latency introduced by DnsCrypt
---
This is overkill, but I tried to address privacy concerns as well as ad-blocking with this setup, and it's also been fun to tinker with
BUT, it will slow down everything else simply because its another layer in the lookup cake. Which doesn't sound bad since everything will end up cached, until you notice all the cool people have decided that DNS forms part of their load/failover scheme and have set the TTL to just a few seconds, which effectively either keeps unbound constantly fetching those addresses to keep them fresh, or you pay the unbound overhead penalty all the time on your local machines. And yes, unbound can be configured to ignore TTL's below a certain value, but that has its own problems.
So, yes, run your own resolver, just be aware that it has tradeoffs. One of the big pluses is that you can configure it do to DOH/etc and then serve everything on your network unencrypted DNS that has been previously validated/etc.
Yes, I would recommend it. Running Unbound means you don't have to trust anyone's upstream DNS servers. Disadvantage is maybe slightly slower resolution, as you don't get to take advantage of the upstream server's caching.
All outbound port 53 TCP/UDP is also forwarded at the firewall through this setup.
Never had any problems with either - I have both selected in case one has issues so that I don't need to immediately deal with "Daaaad the internet's not working!"
In theory EDNS Client Subnet (ECS) is supposed to work around this problem, but a) according to https://www.cdnplanet.com/blog/which-cdns-support-edns-clien... Akamai only supports this with Google and OpenDNS and b) alternative DNS providers might not support ECS anyway, whether explicitly for privacy reasons or otherwise…
Which means I'd basically have to set up a custom DNS resolver in order to special-case queries for anything hosted on Akamai's CDN…
Both my AdGuard server and the unbound in my Opnsense router use Quad9 over DoT
AdGuard Home Server also point to Opnsense unbound to resolve local addresses
All port 53 traffic not directed at my AdGuard is redirected to it. All port 53 traffic not to or from my adguard or opnsense is blocked.
All DoT and DoH traffic not to or from my AdGuard or Opnsense is blocked.
I also have a second AdGuard Home instance hosted in a VPS that i use for my mobile devices when outside my home network. I use a whitelist of ClientIDs so only my devices can use this server, weak authentication but it has worked so far.
My home network is configured so that my devices will be redirected to my internal AdGuard server when at my home network and so they will use my public AdGuard server automaticaly when they are anywhere else.
My firefox, edge and chrome at my laptops have a similar configuration using their own DoT/DoH resolver. For the OS i let it use whatever the DNS from the local network.
In the near future i plan on replacing the Quad9 with my own recursive server hosted in the same VPS.
This way, if I ever forget my browsing history, I can ask either company to remind me ;)
Seriously though, they're both fast (especially Cloudflare) and reliable, and won't do DNS injection attacks like local ISPs do. Not really concerned about the privacy angle since I already use Chrome and Google Searched logged in.
I would generally recommend using anything other than your ISP's DNS servers.
AdGuard has a pretty good list of available providers: https://adguard-dns.io/kb/general/dns-providers/
[1] https://dnsdist.org/ [2] https://0xerr0r.github.io/blocky/
See https://localroot.isi.edu/about/ for one site that will let you register to receive a DNS Notify when the root zone changes.
In the EU/aligned countries, selling your data and injecting shit into DNS is very much a frowned on thing. More over, as there is competition, you can migrate away to some other ISP that isn't shit.
I currently use my ISP's DNS as an upstream, as they are reliably, fast and not shit. I'm temtped by adding a pi-hole. But I've not fully tested it yet, and I'm reluctant to migrate away from pfsense's DNS, as I have lots of local hosts that need resolving.
This is the same reason I don't use a VPN by default at home.
- Google 8.8.8.8
- Cloudflare 1.1.1.1
Anyone have issues with PIA's dns?
I'm in the process of taking control of my network again, after having a more laissez-faire attitude towards network access. I'll probably install something like opensense on top of my edgerouter.
I use Quad9 (9.9.9.9) and Freenom (80.80.80.80)
4.2.2.2
4.2.2.3
And devices -> NextDNS as a fallback.
I see a lot of mentions for Pi-Hole, which is more or less the same thing as AdGuard Home. I just like AdGuard Home a little bit more:
- single binary go app
- easy to run in nonroot container (Pi-Hole only started supporting this last year)
- Native support for DoH upstream resolver
- YAML as configuration language with good versioning scheme and skew practices.
Really, installing Unbound is piece of cake both on Windows and Linux.
It's not hard. It uses minimal resources. It can be enhanced with ad-block lists similar to pi-hole so your whole network benefits.