之前看到有帖子说国外 Google 和 Cloudflare 的 DoH 会无法连接,推荐几个我最近在用的公共 DNS,支持加密协议如 DoH。
我一般是喜欢用第三方公共 DNS 的,尽管运营商的更快但是有潜在的污染和泄露风险。Google 和 Quad 9 是支持 ECS 的,而Cloudflare DNS 不支持。
dns0.eu
dns0.eu是一个符合欧盟 GDPR 的递归 DNS 解析器,服务器分布在欧盟各成员国。隐私方面应该比较靠谱,除了默认的版本外还有 zero版 和儿童版。zero 能大幅提高恶意域名的捕获率,有更强的安全性,但是可能误拦截;儿童版则是默认拦截色情和约会等。尽管是专门针对欧盟的,我发现在国内使用居然能连上,而且它支持 ECS (EDNS Client Subnet),在国内使用也很合适的,不会解析到国外 CDN。
# TLS/QUIC
dns0.eu
# DoH
https://dns0.eu/
# zero 和 儿童版去官网查看,一般用默认就够了
ZNS
ZNS 是我在涛叔博客上看见他写的这一篇Go语言实现 DoH 服务,是涛叔自己用 Go 语言开发的一个 DoH 服务,也支持 ECS,「海外无污染,国内无延迟」。按流量付费,一元钱 1000MB,三十天有效。相当于月付1元,这肯定很便宜了,而且 DNS 解析用不了多少流量,1000 MB 应该足够一个月,就和免费没啥区别,应该也是避免滥用吧。 我实测下来还不错,就是延迟在 200ms 左右,比我自建的还慢一些,不过感知不出来。
我的自建 DoH
我喜欢自己部署着玩,去年搞 AdGuard Home 来去广告,也开放给大家用,每天 1000K+ 次解析量,不过后来觉得用 DNS 去广告总是不好用,该拦的拦不了,不该拦的又会误杀。都是用网上的开源规则集合并去重来弄的,自己抓太麻烦,之后华为云国内服务器到期了就没再搞。现在使用 Technitium DNS Server 来搭建,在香港小鸡上,因为不用加载拦截规则也不是很耗内存。Technitium DNS Server 相比 AdGuard Home 的好处就是支持作为递归 DNS 解析器,也就是不用配置上游,直接从根服务器递归。而且它也可以配置上游和使用黑白名单规则,和 AdGuard Home 格式兼容,我在搭建 Technitium DNS Server 并用 acme.sh 申请证书这篇文章记录了搭建过程,还算简单。目前我开启了 ECS 功能,想用的也可以作为一个备用的上游来用,因为小鸡很弱,请不要作为主力只用这个,我自己用 Surge 或其他代理工具同时添加好几个上游 DoH。
https://dnshk.235421.xyz/dns-query
付费选择
当然还有一些专门为个人或小公司服务的定制化 DNS,例如 NextDNS,AdGuard DNS,ControlD,NovaXNS 等,这几个都支持自定义拦截规则,还有额外的一些功能。其中 NovaXNS 是国人开发,只有付费版,不过价格是三者当中最便宜的一个,也会做对国内的优化,有许多高级功能,我去年买过半年,不过高级功能也用不太上,就没再续费了。NextDNS 和 AdGuard DNS 有点小贵,不过有提供免费版,每月 30 万次查询,一个设备勉强足够。至于 ControlD 它只有付费版,和免费一个月的试用期,我使用过,感觉整体的界面搞不太明白,而且没有中文。似乎 Reddit 上的老外对它评价很好。
2025-04-26 更新,又发现两个免费公共 DNS
Yes!DNS.net
IPv4: 45.76.64.64
DoT: dns.yesdns.net
DoH: https://dns.yesdns.net/dns-query
0ms.dev
DoH/DoH3: https://0ms.dev/dns-query
DoT: 0ms.dev
Plain UDP/TCP (ping 0ms.dev to get the IP): 0ms.dev:53

ZNS 部署在香港,从上海访问的延迟在40ms左右。你是在什么地区?照理不应该有200ms的延迟。
我在陕西,通过 surge 配置的 DoH 确实显示在 200ms 左右,不过确实挺好用的,比其他付费的划算多了。
那是有可能。我的说的延迟是 ping 值。surge 上显示的应该是整个 dns 查询过程。一次 https 请求要好几个来回,总延迟 200ms 基本也对得上。
对了,我刚给 zns 加上了 http/3 支持,如果客户端支持 DNS over HTTPS,可以大幅降低查询延迟。
h3 确实可用。现在并没有账号系统,我只买了一个月,下次续费是重新买还是能直接续?是不是 DoH 路径也会变化
可以直接续费。假如你的 DoH 链接是 https://zns.lehu.in/dns/XXX,那对应的续费页面就是 https://zns.lehu.in/?token=XXX。