Every time that this comes up, be it a general list like this or someone announcing a new service, my reaction, and that that I see of surprisingly many other people on Hacker News, is fairly unmoved. I've run my own proxy DNS service for about a quarter of a century at this point, using three different sets of softwares on six different operating systems, and every single point on the filter tab is something that I can (and do) just do for myself.<p>The list is not so much interesting for the options that it presents, as far as I am concerned, but for the things that it reveals. Every single entry that is explicitly marked 'China' also has 'operates under Chinese regulations'; which is, in 2026, something that is of concern for more than just the Chinese entries on the list, to people on my continent for starters.<p>'Run by one individual in Denmark.' is an interesting statement of bus factor, but I don't think that all of the other entries should be assumed to be better just because they are mute on the point. There's far less information about who is behind DNS.Watch than there is about Thomas Steen Rasmussen. And it appears that DNS.Watch went off the air at least once in recent years, so it is a legitimate concern.<p>Then there are all sorts of things not on this list that might matter to people, such as Quad101 looking like it has geographic restrictions on whom it is available to and Gcore being an AI company.
> 'Run by one individual in Denmark.' is an interesting statement of bus factor<p>I find it more interesting as a statement about organizational oversight. If there are multiple people involved in operations, they can keep an eye on each other and speak up if they see anything weird going on (e.g. a DNS resolver implementing selective logging or interfering with results). If there's only one person running the show, there's no one to call them out.<p>(And if you're thinking, "but so-and-so is a principled person, they would never do anything like that" - pressure from law enforcement can be a powerful thing.)
It isn't really primarily about organization oversight, though. The weird goings on are in practice usually at the behest of the people paying the salaries of all of the people involved (which includes law enforcement, which goes through corporate channels). There's no real independent oversight for that common case. Everyone is on the payroll. (-:<p>As a concrete thought experiment, consider if (say) a WWW/DNS hosting company providing such free proxy DNS service decided to covertly record the domain name lookups from the general public that fail in order to compile a list of domain names for the company to prospectively squat on. Having multiple employees handling the public service doesn't stop this if it is the company's actual business decision to sneakily do this.<p>It really is a statement of bus factor, not about oversight. To make a statement about oversight one has to take into account something else not covered by this list: which of the list entries has attempted to show some level of independent auditing or oversight of its data protection.<p>* <a href="https://blog.cloudflare.com/announcing-the-results-of-the-1-1-1-1-public-dns-resolver-privacy-examination/" rel="nofollow">https://blog.cloudflare.com/announcing-the-results-of-the-1-...</a><p>CloudFlare has had some independent auditing done, by an accountancy firm. DNS4EU holds itself subject to GDPR rules on Personal Data with respect to query data, and so is auditable by the Czech ÚOOÚ. AdGuard likewise, except that it holds Personal Data in Frankfurt. CZ.NIC likewise, except that it hasn't actually updated its legal doco since 2018 and it's only by implication that the Czech ÚOOÚ can audit the Personal Data handling under the GDPR. DNS.SB simply disclaims the existence of any Personal Data whatsoever, which as with AdGuard is overseen by the German BfDI and relevant Land authorities (HBDI for Frankfurt).<p>* <a href="https://legal-documents-dns4eu.s3.fr-par.scw.cloud/DNS4EU-Public-DNS-Resolver-policy-2025.pdf" rel="nofollow">https://legal-documents-dns4eu.s3.fr-par.scw.cloud/DNS4EU-Pu...</a><p>* <a href="https://uoou.gov.cz" rel="nofollow">https://uoou.gov.cz</a><p>* <a href="https://adguard-dns.io/en/privacy.html" rel="nofollow">https://adguard-dns.io/en/privacy.html</a><p>* <a href="https://nic.cz/files/documents/20180525_Zasady_zpracovani_osobnich_udaju_AJ.pdf" rel="nofollow">https://nic.cz/files/documents/20180525_Zasady_zpracovani_os...</a><p>* <a href="https://dns.sb/privacy/" rel="nofollow">https://dns.sb/privacy/</a><p>* <a href="https://bfdi.bund.de/EN/Home/home_node.html" rel="nofollow">https://bfdi.bund.de/EN/Home/home_node.html</a><p>* <a href="https://datenschutz.hessen.de" rel="nofollow">https://datenschutz.hessen.de</a><p>Even Thomas Steen Rasmussen, who also claims zero Personal Data, would be subject to oversight by the Datatilsynet.<p>* <a href="https://datatilsynet.dk" rel="nofollow">https://datatilsynet.dk</a>
I set up my own resolver about 2 years ago, and it has just worked. Never once had an issue.
take a look at adguard home, dnsmask or unbound. the best is to run your own infra
Use your ISPs official DNS so that you get the shortest path possible from the ISPs handoff location to the CDN (and overseas trunks), not a generic DNS that doesn’t know about your ISPs layout.<p>ISP: 1ms to Cloudflare<p>Cloudflare: 10ms to Cloudflare<p>Thank you for your attention to this matter.<p>Edit: will clarify, this advice applies to countries with good privacy laws and no national surveillance i.e. not the USA
That’s no good if you want uncensored DNS.
Changing your DNS does basically bupkis for privacy, since they can still read your DNS queries and SNIs.
It doesn't fix privacy but it does work around censorship. Has a court or the government ordered your ISP to usurp its enemies' DNS records? If so, you need to talk to a different resolver, not constrained by your government or courts.
DoH and ECH fix that
Does anyone have advice on how to use public wifi alongside DNS resolver?<p>Many public wifi network works need you to use their DNS, so they can redirect you to a gated "accept ToS" screen (and may even require re-approval every 30-60 minutes).<p>To resolve the issue is so frustrating:<p>1. realize the internet stopped working
2. ping google.com, wait for timeouts to show up.
3. try to guess if its a ISP issue, but then realize the wifi probably timed out.
4. Switch the dns. Flush DNS.
5. try to access a non-TLS domain
6. approve the gate
7. switch the DNS back<p>There has to be something that manages this
On macOS, you might be able to use /etc/resolver to fix this:<p><pre><code> sudo sh -c 'echo "nameserver 192.168.1.1" > /etc/resolver/captive.apple.com'
</code></pre>
I did this for an internal website at my university that could only be resolved using the network name server. It just occurred to me that it might also work for the URL macOS uses to detect captive portals. We'll have to see if it works the next time I'm at a café.
For macOS and iOS, you can create a profile to configure which DNS server you want to use at all times (including across different Wi-Fi networks and mobile data). See:<p><a href="https://doh.lvv.me/" rel="nofollow">https://doh.lvv.me/</a><p>That’s what I’ve been using for years and never had any issues with public hotspots.
I want the DNS to resolve the captive portal when it needs too.<p>I think if I force the dns this way, the public dns won’t resolve the captive portal.<p>When the internet is cut, it needs to use the network’s dns to resolve the captive portal domain (whatever that is)
Just put an IP address into your address bar. They're usually intercepting all port 80 traffic.
This is something your OS should handle as part of the OS's support for captive portals. I'd recommend contacting your OS's creator about this and filing a bug.
Happy NextDNS user. Lots of configurability, including which filterlists to enable, configurable logging etc.<p>Plus it’s reliable and fast from basically anywhere (which is harder to achieve if I ran my own resolvers in the cloud, and anyway I don’t want to have to maintain that).
> Happy NextDNS user<p>Yup, same here, especially after hears of messing around with a pihole and got tired of maintaining it. Also, NextDNS works easily with Mullvad VPN, when needed.
Yeah it’s been pretty good for me too.
I use Unbound locally as a DoH server. The Alpine Linux Unbound package is compiled with libnghttp2, <i>required for the built in DoH listener</i>. That's more than enough to enable ECH [1].<p>I pre-cache all the domains I use hourly via cron. My ISP is not going to dork with my DNS requests and their employees are bigger deviants than I. If I ever started browsing the web from a phone I would just set up my own public DoH server. It only takes a few minutes and gives me my own query logs for debugging weird issues.<p>[1] - <a href="https://tls-ech.dev/" rel="nofollow">https://tls-ech.dev/</a>
I use my own public powerdns dnsdist and recurser/authoritave instances for DoH, DoT, DoQ, TCP and UDP now for ~3 years. Setup took some time, because i used bind, unbound and dnsmasq before.
It's super stable and i can also use it on my mobile or legacy devices and as resolver in unbound, adguard/dnsproxy or just in my local resolve.conf.
Why pre-cache? For speed... what is it, 30-50ms at most? If the authoritative server's TTL is <60minutes, do you force it to 3600? Do you audit all the connections that occur for every website you visit, collect all the domains hosting assets, and pre-cache those as well, or is the main site's domain the only critical one because that affects perceived latency the most?
I pre-cache for speed, verifying records that have expired since I retain the expired records for sites that have intermittent DNS issues and also to throw in domains that I do not use in the off chance someone is logging where I go and when. They will see the Cloudflare top 20K domains hourly. Myself and family members have been able to access sites when others around the internet can not due to infrastructure related DNS problems. In other words, when others will say <i>"It's always DNS"</i> for myself and family members that is rarely the case as DNS records do not change as often as people seem to think they do.
I run <i>unbound</i> too here. I love it that it takes wildcards to blacklist domains. I'm using big lists of domains to block and then I've got a whitelist that supercedes the blocked ones.<p>And I've got a little tool that takes:<p><pre><code> ayt7.ads.acme.com
afi6.ads.acme.com
foi5.ads.acme.com
</code></pre>
and simplifies it to:<p><pre><code> ads.acme.com
</code></pre>
Then I've got a script which generates variations of domains name I use. Say if I use:<p><pre><code> mybank.com (legit)
</code></pre>
I block:<p><pre><code> myb4nk.com
mibank.com
mybank.{any other tld}
</code></pre>
etc.<p>I generate hundreds of thousands of such variations: all blacklisted by <i>unbound</i>.<p>I did it after one of my bank sent me an example of a very convincing phishing site.<p>Been using such a setup since years now. A million blocklisted domains runs fine on an old Pi 3. I take it that on a more powerful computer <i>unbound</i> can deal with blocklist with millions if not tens of millions of domains (and, no, I haven't moved to whitelisting only).<p>I also block <i>all</i> unicode domains. I simply cannot access a domain name that use unicode characters in its name (and, no, I don't care).
Unbound has "prefetch" which will refresh near-expired cached records, and various other cache/ttl knobs. "serve-expired" seemed to work well too
> I pre-cache all the domains I use hourly via cron.<p>How does this look? Shell script querying a list of hostnames? What qualifies as a domain you use?
Without a purpose for why you should use a public resolver it is an impossible choice to make.<p>If it is this hard to choose a resolver, imagine how hard it is to choose a web browser, which is a choice that actually matters.<p>The nearest resolver is<p><pre><code> $ sudo apt-get install unbound
</code></pre>
and now your own host is your resolver. The complexity of this is roughly a millionth of a percent of that of your web browser.
I've been using 1.1.1.1 for performance rather than privacy. Maybe I should revisit that decision after reading this.
What would be the additional load if everyone ran a local caching recursive resolver like unbound?<p>It would need to be built into iOS/Android/Linux/Windows/MacOS but what would be the disadvantages?<p>I can see greater load on root servers but caching is specifically designed to reduce that.<p>I can see potential problems for CDNs and equivalent geo-based resolvers.<p>But are they really that bad?
To avoid hitting the root, don't send your queries there! Problem solved!<p>localroot.isi.edu<p>Bias: I created it, and am a author of one potential set of future specifications (rewrite).
Thanks, interesting, I like making my systems as stand-alone capable as possible :)<p>What is the primary difference between using an Unbound auth-zone (as described in the RFC) compared to localroot?
Id expect better geo performance because the geo domain is queried from the actual customer and not from some proxy that is hopefully nearby them
DNScryptProxy maintains a extensive list of public DNS servers. It also lists if if they do Dnssec, filetering, logging.<p><a href="https://download.dnscrypt.info/dnscrypt-resolvers/v3/public-resolvers.md" rel="nofollow">https://download.dnscrypt.info/dnscrypt-resolvers/v3/public-...</a>
Most important and super privacy/security related topic: DNS.
Instead of choosing a public one. Host your own infrastructure.
You don't need public instances. Just run ADGUARD or unbound/dnsmasq/dnsdist in recursive mode on your router or machine.
And you can set limits and block-lists to your needs.
It would be nice if a site like this could offer a basic speed comparison test to your local network.<p>Imagine seeing response times at P90 for a series of random lookups and comparing the median response times.
Author here, I added this now: <a href="https://evilbit.de/dns-resolver-guide2.html#speedtest" rel="nofollow">https://evilbit.de/dns-resolver-guide2.html#speedtest</a>
Only works for DoH though.
Clone this repo [1] and then edit the domain names and resolvers to your liking. It will be something <i>close</i> to what you might be looking for.<p>[1] - <a href="https://github.com/cleanbrowsing/dnsperftest" rel="nofollow">https://github.com/cleanbrowsing/dnsperftest</a>
I run an instance of smokeping locally for this purpose. It pings a variety of DNS servers (including my ISPs DNS) and several of the top websites. I periodically update my local DNS server’s upstream accordingly.<p>All the big DNS servers are in the 5-6ms range for me, but that hasn’t always been the case. My ISPs DNS is about the same but with crazy variance and spikes of up to 50ms, even though they should be able to be the fastest.
I always just set up root recursors at my home and other locations. I've never noticed any downside.
Same. I’ve been running my own caching DNS servers since my earliest home network, dating back almost 30 years.
The downside is obviously that uncached queries take much longer (adding >100ms) and more queries are uncached since you can't share the cache with a large user-base. Unless you just visit the same websites over and over again, this results in worse overall performance.
the _one_ downside i've seen is on an airplane serviced by Starlink: UDP was extremely lossy to the point that whatever recursive resolver i was using at the time would mark half of all nameservers it saw as "unhealthy" and start returning NXDOMAINs to the clients before even trying to hit the authoritative NS.
Downside is privacy
quad9 seems fine. Glad there are a bunch of alternatives though. We should never stop practicing decentralization in the net.
Be cautious with Quad9; their main address (9.9.9.9) has a "malware" blacklist that has misfired several times already: twice for a private torrent tracker, once for gist.github.com, issue was resolved within minutes to hours. They have a non-filtered address (9.9.9.10), but it doesn't do DNSSEC verification. IMO they're too unreliable to be worth the hassle.
Quad9 employs DNSSEC on all endpoints now. <a href="https://quad9.net/news/blog/quad9-enables-dnssec-on-all-service-endpoints/" rel="nofollow">https://quad9.net/news/blog/quad9-enables-dnssec-on-all-serv...</a>
This is great, thanks for the correction! I tried resolving dnssec-failed.org and it does indeed fail with EDE 6 (DNSSEC Bogus). I'm not sure why this hasn't been updated on the info page[0] yet, given that the change is about three months old.<p>[0]: <a href="https://quad9.net/service/service-addresses-and-features/" rel="nofollow">https://quad9.net/service/service-addresses-and-features/</a>
Was about to comment this. I actually don't like advert or malware blocking on my public DNS resolvers. It sounds cool but annoying when it misfires.<p>Once Quad9 blocked Halo MCC XBOX Live -> Steam achievements, several fileshare services (probably used for malware somewhere but not my usage) etc...<p>1.1.1.1 blocked archive.is or got blocked by them or something...<p>Gone back to Google DNS (gasp) for now, yes as a European... no blocking, fast, never goes down.
It's fine when it's a non default option. Like use x.x.x.x for DNS, x.x.x.y for DNS+adblocking, x.x.x.z for totalitarian corporate blocklist that doesn't let you do anything fun
I believe cloudflare only blocked archive.is on their "Families" filtered dns. I've been using their normal 1.1.1.1 and haven't encountered any blocks.
IIRC the block was on archive.today's side as a protest against 1.1.1.1 intentionally not supporting ECS.<p><a href="https://news.ycombinator.com/item?id=36971650">https://news.ycombinator.com/item?id=36971650</a><p><a href="https://news.ycombinator.com/item?id=19828702">https://news.ycombinator.com/item?id=19828702</a>
Yesterday 1.1.1.1 failed to resolved "theinformation.com" (hosted on CF itself!) for many hours, answering NXDOMAIN.
Should add one more filter: EDNS client subnets.<p>Some like cloudflare doesn’t support that in the name of privacy.<p>EDNS lets the dns server of the site you are visiting know from where you are connecting and can give you the closest server. 1.1.1.1 does not do that. This breaks all sorts of ISP cache and peering arrangements.<p>Here’s an example: My ISP’s google global cache is broken every time I use cloudflare. With google dns, opendns, isp’s own dns I get my ISP’s own ip address for the domain “googlevideo.com” which is where youtube videos load from. With cloudflare dns I get an ip address of an actual google server which may or may not be in my country.
Result: my downloads from google drive/youtube/play store all are faster with a dns server with proper EDNS support.<p>Now imagine this on a global scale for smaller websites, your request might go to a different continent.<p>I understand the product decision for cloudflare and I don’t want them to change but this is something people should know about. There are numerous reports on their forums which are always locked with no activity.<p>I am not saying it’s a conspiracy but this doesn’t affect sites on cloudflare btw due to their global anycast routing/infra setup which I don’t know enough to explain.
There's some anti-competition going on there too - Cloudflare's own CDN uses anycast, which doesn't need geo-DNS, but some of their competitors use geo-DNS, so Cloudflare actually prefers that geo-DNS is broken.
CTRL-F "ECS: Yes"
Interesting puzzle on the top level url… what’s that all about ?
Shame there is no client subnet filter. I've had issues in the past with various websites when using resolvers that don't add that hint.
Why cloudflare is listed under maximum privacy?
Author here: Because of their continuing work on privacy, <a href="https://blog.cloudflare.com/1111-privacy-examination-2026/" rel="nofollow">https://blog.cloudflare.com/1111-privacy-examination-2026/</a>
However, as a EU citizen, I would not trust them anyway because of FISA 702.
9.9.9.9 with 1.1.1.1 as secondary
unfortunately many DNS resolvers are integrated with CDNs. I do want privacy of an independent non-tracking DNS but I also want my video streaming work fast. :(
ControlD is pretty cool.
Random, but I don't understand why anyone would choose a "block ads and trackers" DNS server as a default.<p>Even if it's configuring something for boomer family, that sounds like a recipe for "why is this website not working"?
Because it is very useful on mobile. App typically use an advertising SDK for their monetisation, which means we can BLOCK THEM ALLLLLLL
> Random, but I don't understand why anyone would choose a "block ads and trackers" DNS server as a default.<p>I use a "block known malware and known porn sites" and then, on top of that, I use gigantic blocklists blocking known ads and trackers.<p>But then I've got a whitelist of allowed domains, which I updated on-the-go if that one site wife really needed wasn't working due to overzealous filtering.<p>The reason is simple: browsing with ads and trackers blocked at the DNS level feels not just a bit but much snappier (and there's not need to play cat and mouse with browsers' extensions). And privacy.<p>I've got a pretty advanced <i>unbound</i> DNS server, blocking ads, trackers, known porn, known malware <i>and</i> shitloads of homoglyph attacks.<p>Took some time to set up but after that it's smooth sailing. My old Pi 3 running <i>unbound</i> stays always on. The only time I turn it off is when I leave for vacation. It's just that stable.<p>Gen Xer here, not a boomer.
Because to me even as an IT person it sounds like a good idea on the surface. To have no connections to/form ads, malware, c2.<p>But yes, then you happen upon your first false positive.<p>And you switch back to a non filtered DNS OR one that you can whitelist or control, still annoying.
9.9.9.9 is all you need
jabberwocky !
ok now add benchmarking a-la <a href="https://www.grc.com/dns/benchmark.htm" rel="nofollow">https://www.grc.com/dns/benchmark.htm</a> to rank them on performance for your specific region etc.<p>note on privacy: if you are using port 53 you are cooked so make sure you are using dns-over-tls or dns-over-https.
[dead]