项目地址: https://github.com/crzidea/doh

我知道大家很多人的分流规则是这样的:

1. 国内域名转发到 DHCP 获取的 DNS
2. 国外域名转发到 1.1.1.1

但是肯定会有漏网之鱼不在已知的域名列表里,该怎么办呢?我猜有能力的各位是这么配置的:

1. 支持 EDNS Client Subnet 的环境中,比如在 dnsmasq 中配置,再将请求通过 DoH 转发到 8.8.8.8 。
2. 不支持 EDNS Client Subnet 的环境中,比如 clash ,通过 fallback 配置根据默认的解析结果,如果不是大陆的 IP 再从 1.1.1.1 解析一遍。

但是上述方法都有一些小瑕疵:

1. EDNS Client Subnet 虽然可以准确的解析出来离我们墙内最近的结果,但是当解析结果不在墙内时,有可能会产生相反的效果。比如 VPN 出口在美国,我们要访问的 CDN 虽然在国内没有节点,但是在日本有节点,这时我们的流量会路由到美国,再路由到日本,回程时也一样再绕回来。
2. clash fallback 的方法目前已经不可靠了。我自己遇到过 Wikipedia 的 DNS 被污染后的解析结果是国内 IP 的结果。

在这个背景下,本着能不花钱就不花钱的原则,我开发了这个项目。用户解析 DNS 的时候,会同时向 Google DNS 查询两次:

1. 第 1 个的 Client Subnet 参数带着本地 ISP 的 IP
2. 第 2 个的 Client Subnet 参数带着 VPN 的 IP

如果第 1 个的解析结果对应的地区信息与我们想要的地区信息一致,就采纳第 1 次的解析结果,否则的话采用第 2 个。

这样做还会有以下好处:

1. Github Actions 、Cloudflare Workers 、Cloudflare D1 全都是免费的,甚至 MaxMind 的最基础的数据库也是免费的。
2. 不支持 EDNS Client Subnet 的客户端,比如 clash ,可以把查询参数放到 URL 参数中,也可以使用。
3. 利用 Cloudflare 的网络资源和 Cloudflare 许诺的未来 D1 支持跨地区同步,理论上可以是分布式的。但是我没交钱,所以网络延时大概 200 ms 左右,有钱的大哥可以开个订阅试试。另外建议 D1 位置选择欧洲西部,别问我怎么知道的。
4. GeoIP 数据库的更新过程是全自动的,自己完全不用管,不用担心长时间忘记更新数据库。感谢 Github Actions 和 MaxMind 。
5. 甚至直接支持了 IPv6 和 HTTP/3 。

附带博客链接: https://crzidea.com/#/article/introducing-crzidea-doh

![]( https://www.plantuml.com/plantuml/png/bP7HRjCm58RlznI7NWs9sXfi876rAKLT9T95BTc4fgboujFMmh63VRokF3sEILKQxMQNFZxVdo-_hpq9Hw7HP--KgNMG25kYrd_bt8aTsoZQXYfuTBKrX8PORHlUQc4wPkn9QbNnx79STACo_yuRuGbT7AsoZdWXrdRff4WZrEwFaYYujDkpvJukDkVJcmymcYgw3HNSrAIiyQCu6Rq_BEHvFERY9LT6djva3_6OQHlaMWk7y63TBtG3F9kSBaqk-liYhbfpNiPJwT5rquczXKmhD7Jafnq_jNQZ8pjVzl02TJ9FSXSCYg0rJD7E2f22H2KymjhP1WxYHoG9VMHGjjeAEOJ8mgdi4Ko_-ud112Ev_x_BdXhqqADbJruoME3lW9uEBzoXp8TAsaOemtR_C2RncTUfXR5g-UDiMQncnTDXLDjWoEtvOtPNpdyiVgwokyct9ouqeJE2r3CcwhwO9qeQFuuVTVlUfbD9bLwzecCyswIcZnZi56qXEa1iAReQf67IvxSaHQzNazAhV65mBxIIWX0S-g09x1fS7twL4WOF5YEkqSZGwBy0)
举报· 172 次点击
登录 注册 站外分享
13 条回复  
lightionight 小成 2024-9-13 16:08:43
想法比较有创意👍, 还没用过 CF workers, 有空试试
yxmyxmyyy 小成 2024-9-13 16:12:08
看起来好麻烦,我用的最简单的分流就是默认走节点解析,然后根据国内白名单域名匹配走国内 dns 解析,这样又快又简单,走节点解析也会就近解析节点附近的 cdn ,而且这个方案也完全杜绝了 dns 泄露,毕竟只有国内域名用国内 dns 解析,这个方案用了一年多没啥问题
terrancesiu 小成 2024-9-13 16:14:24
这个很舒服啊,该有的都有。
hello158 小成 2024-9-13 16:32:10
这个图是用啥画的
ztmzzz 小成 2024-9-13 16:47:33
客户端带上自己的 ip 访问 cf 的 worker ,问题是访问 cf 很慢啊,还时不时断联。
iorilu 小成 2024-9-13 16:53:26
不错, 有空试试

不过建议 OP 有空弄个中文的 readme

毕竟这东西主要也是给国内人用的把
Phant0m 小成 2024-9-13 17:17:25
dns 查询延迟 200ms 有点大啊
SenLief 小成 2024-9-13 17:21:40
除了 geosite cn 外全部由代理解析。
Chad0000 初学 2024-9-13 17:21:57
V 站黑幕 /t/1072723
https://i.fshex.co/Nx54zanW.png

此帖首页看不到 3
12下一页
返回顶部