国内外可用 DNS DoH 及速度实测

Dr.X · 2024-10-18 22:27:12 · 353 次点击

国内外 DNS DoH 速度实测



最近发现上网速度变慢,发现是 101 被运营商阻断了…


之前用的 Cloudflare 也被阻断过…


所以能用的越来越少了,测一下速度,看看哪家能用。



DNS(域名解析系统)设置的合适与否,对上网体验影响很大。


而国内域名服务商会劫持 DNS 查询结果,


所以一般要在某工具上设置分流查询 DNS 达到最佳速度和准确性,


将国内服务分流到国内服务商,国外服务分流到国外服务商。


DNS 有三种协议:
























协议 描述
UDP 明文传输,被劫持,仅在特殊情况使用 :x:
DoT(DNS over TLS) TLS 加密,相对安全,但固定使用 853 端口很容易被识别和拦截。此地无银三百两,虽然能用但不推荐使用 :x:
DoH(DNS over HTTPS) 普通网页协议加密,相对安全,推荐使用 :white_check_mark:

测试环境


使用开源 DNS 测速工具 dnspyre 测速


模拟日常真实情况:



  • 使用 Wi-Fi 网络连接

  • 关闭所有代理工具直连运营商网关

  • 1000 个 Alexa 热门域名随机选择

  • 包含 IPv4 和 IPv6 类型

  • 限时 30 秒


注:



  • 坐标中部地区,运营商是电信,光猫拨号,测试时间 2024-10-18 18:00-22:00

  • 中部电信非常严格,有强中强,许多其他省份能使用的服务商,这里都无法稳定使用,下面列出 IP 均被阻断的服务商,不能使用不参与测试:

    • Google

    • TW Quad 101

    • CleanBrowsing

    • DNS.SB

    • PowerDNS

    • 等等(所以测试能用的服务商挺稀少的,而且能用的过段时间可能就又不能用了)



  • 部分服务商的域名默认解析到 IPv6 地址会导致测试失败,如:IBM Quad9dns.quad9.net,使用 dig @1.0.0.1 到的 IPv4 地址测试,如有多个 IPv4 地址,仅列出测试平均延迟值最小的一个


测试命令示例:


dnspyre --duration 30s -c 10 -t A -t AAAA https://mirror.ghproxy.com/https://raw.githubusercontent.com/Tantalor93/dnspyre/master/data/1000-domains --probability 0.33 --server https://doh.pub/dns-query

结果数据



原始数据太长不在此处列出



国内服务商


参赛选手




























服务商 DoH 备注
基准测试 192.168.1.1 运营商的 DNS 非 DoH
阿里 https://223.5.5.5/dns-query
腾讯 https://doh.pub/dns-query

测试结果(由好到差)
















































服务商 总响应数 成功响应数 QPS 平均响应时间 标准差 p50 p90
基准测试 2343 1946 68.8 71.79ms 269.33ms 16.78ms 46.14ms
阿里 2175 1795 63.8 135.2ms 294.87ms 37.75ms 301.99ms
腾讯 1545 1335 47.0 193.04ms 307.75ms 83.89ms 469.76ms

国外服务商


参赛选手


























































服务商 DoH 备注
IBM Quad9 https://9.9.9.9/dns-query 域名无法使用
EasyMosdns https://doh.apad.pro/dns-query 是智能分流服务,详见 apad.pro
OpenDNS https://208.67.222.222/dns-query 域名无法使用
CIRA Canadian Shield https://private.canadianshield.cira.ca/dns-query
0ms https://0ms.dev/dns-query
Comss.one https://dns.controld.com/comss
DeCloudUs https://dns.decloudus.com/dns-query
Cloudflare https://1.0.0.1/dns-query 域名无法使用
dnswarden https://dns.dnswarden.com/uncensored

测试结果(综合性能由好到差)












































































































服务商 总响应数 成功响应数 QPS 平均响应时间 标准差 p50 p90
IBM Quad9 1027 872 31.3 279.2ms 240.41ms 201.33ms 452.98ms
EasyMosdns 1188 496 39.5 210.56ms 285.89ms 96.47ms 419.43ms
OpenDNS 897 754 29.9 332.06ms 254.68ms 226.49ms 637.53ms
CIRA Canadian Shield 858 733 28.5 326.49ms 312.04ms 234.88ms 452.98ms
0ms 851 733 28.3 334.34ms 228.12ms 260.05ms 671.09ms
Comss.one 552 461 17.4 383.25ms 410.57ms 167.77ms 872.42ms
DeCloudUs 427 353 14.2 469.83ms 310.31ms 369.1ms 838.86ms
Cloudflare 387 334 12.9 738.93ms 353.97ms 704.64ms 1.14s
dnswarden 167 70 5.6 1.25s 856.12ms 1.21s 2.68s

注:所有时间数据均已四舍五入到小数点后两位。



  • QPS 代表每秒查询数(Questions per second)。

  • 标准差(Standard Deviation)表示响应时间的波动情况,值越大表示响应时间越不稳定。

  • p50 表示响应时间的中位数,即有一半的请求响应时间小于或等于该值。

  • p90 表示 90% 的请求响应时间小于或等于该值。


结论


最后我选择了 阿里腾讯 作为国内服务商,IBM Quad9EasyMosdns 作为国外服务商。


当然如果你的位置和我不同,每个服务的优劣也可能不同,有兴趣的可以自己测试。


神秘代码


# Mihomo
dns:
enable: true
listen: 0.0.0.0:1053
prefer-h3: true
ipv6: true
default-nameserver:
- https://223.5.5.5/dns-query
nameserver-policy:
"geosite:tld-cn,private,cn":
- https://223.5.5.5/dns-query
- https://doh.pub/dns-query
"geosite:tld-!cn,gfw,geolocation-!cn":
- https://9.9.9.9/dns-query
- https://doh.apad.pro/dns-query
nameserver:
- https://223.5.5.5/dns-query
- https://doh.pub/dns-query
fallback:
- https://9.9.9.9/dns-query
- https://doh.apad.pro/dns-query

先别开香槟


我很疑惑为什么之前被阻断的 Cloudflare 现在测试居然又能用了,

是 DoH 现在也能被 GFW 精准识别了吗?


随后 Google 到了这篇 2024-03-01 的文章:中国互联网络防火墙已经可以精确识别与境外 DNS over HTTPS(DoH) 服务器的连接



前几天我位于中国大陆的监控服务器突然报异常状态,显示与五台位于中国大陆境外的 DoH 服务器丢失连接,状态为 ERROR_CONNECTION_RESET(连接已重置),通过技术手段排查,发现连接在中国大陆的网络出口处被重置,这无疑是域名被封锁的现象。


继续进行后续排查,发现有且仅有这五个 DoH 所在的域名被封锁,甚至于其中一个位于中国香港的服务器绑定的域名也未能幸免于难,但其余所有子域名,包括位于中国大陆的 DoH 域名都没有受到任何影响。


为了验证该判断,我选择了一个用作蜜罐域名,并在其上搭建了完整的 DoH 服务,并使用位于中国大陆的一台服务器持续不断地向其发送 DoH 请求。大概 4 个小时后,我的监控服务器又报出了异常状态,正是该蜜罐域名丢失连接,这证实了我的假设:“中国互联网络防火墙已经可以精确识别与境外 DNS over HTTPS(DoH) 服务器的连接并加以封锁”。


鉴于以上情况,结合之前 Google(8.8.8.8)、Cloudflare(1.1.1.1) 等大型公开 DNS 服务器被 DNS 抢答的现状分析,说明如今中国互联网络防火墙不仅不允许在大陆内架设 DNS 服务器,也不允许位于大陆的网民访问外部的 DNS 服务器,更别提在境外架设公开 DNS 服务器用于国内访问了。


我已经关闭位于中国大陆境外的五台 DoH 服务器的公共访问,在研究出更为合规的直接 DNS 请求方式、或该封锁被证实不再存在之前,不再提供位于境外的任何直接 DNS 解析服务。



看来想要使用国外 DoH 可能需要将 DNS 查询也通过代理工具转发,缺点是会增加延迟、降低速度…


当然这和我需求的速度快、准确性高也就是本文的主题关系不大,只能有时间再写一写 Tunnel、Cache 了。


参考文档



下列文档内列出的所有国外服务商均已测试,本文内没写说明是无法使用的…




更新日志


欢迎继续补充服务商以测试

举报· 353 次点击
登录 注册 站外分享
19 条回复  
laikey.lau 初学 2024-10-18 22:27:12

感谢分享。。

F-droid 初学 2024-10-18 22:27:12

不错,我在下面贴一个有关ECH的帖子


zzc0621 初学 2024-10-18 22:27:12

这个不错,学习了

Boyle 初学 2024-10-18 22:27:12

真的很不错,学习学习!

FrancisLiu 初学 2024-10-18 22:27:12

大佬强,有些深奥,待我补充下基础知识再来回顾

Bagful3960 初学 2024-10-18 22:27:12

所以,结合ECH,能被识别吗,期待测试!感谢

sanquan 小成 2024-10-18 22:27:12

精准识别 上tor

Ichigo 限制会员 2024-10-18 22:27:12

佬讲得很详细,学习了 :tieba_013:

handsome 限制会员 2024-10-18 22:27:12

感谢大佬教程

12下一页
返回顶部