
开源地址: https://github.com/jqknono/cloudflare-doh

这是一个基于 Cloudflare Workers 的 DNS over HTTPS (DoH) 转发代理服务。本服务可以根据路径将请求转发到不同的 DoH 提供商,同时保留查询参数。
该 Worker 根据请求的路径前缀确定转发目标,然后将请求转发到相应的 DoH 服务提供商。例如,当访问 doh.example.com/google/query-dns?name=example.com 时,该请求会被转发到 dns.google/dns-query?name=example.com。
Worker 内置了以下默认映射规则:
/google/query-dns → dns.google/dns-query( Google 的 DoH 服务)/cloudflare/query-dns → one.one.one.one/dns-query( Cloudflare 的 DoH 服务)Worker 可以使用默认配置直接部署使用。
可以在 Cloudflare Workers 控制台中添加名为 DOMAIN_MAPPINGS 的环境变量来自定义路径映射规则。该变量接受符合以下格式的 JSON 字符串:
{ "/path-prefix": { "targetDomain": "target.domain.com", "pathMapping": { "/source-path": "/target-path" } } } 例如,若要添加对 Quad9 DoH 服务的支持,配置可能如下:
{ "/google": { "targetDomain": "dns.google", "pathMapping": { "/query-dns": "/dns-query" } }, "/cloudflare": { "targetDomain": "one.one.one.one", "pathMapping": { "/query-dns": "/dns-query" } }, "/quad9": { "targetDomain": "dns.quad9.net", "pathMapping": { "/query-dns": "/dns-query" } } } _worker.js 中的代码粘贴到编辑器中DOMAIN_MAPPINGS 变量来自定义路径映射DOMAIN_MAPPINGS 变量来自定义路径映射部署完成后,Cloudflare Pages 会自动检测 _worker.js 文件并将其用作 Worker 函数。
假设您已将此 Worker 部署到 doh-proxy.workers.dev,您可以通过以下方式使用:
使用 Google 的 DoH 服务:
https://doh-proxy.workers.dev/google/query-dns?name=example.com 使用 Cloudflare 的 DoH 服务:
https://doh-proxy.workers.dev/cloudflare/query-dns?name=example.com 本项目采用 MIT 许可协议。您可以自由地使用、修改和分发本代码,但需要在您的项目中包含原始许可证和版权声明。
1 itechify PRO 打开网站,查询 dns 会慢很多吧,个人观感体验有影响吗? |
2 jqknono OP @oneisall8955 http3 协议下 500ms 上下, 具体要看 cloudflare 使用了哪个节点. 这是解决一些域名无正确解析的问题, 客户端最好做个分流. |
3 molezznet 2025 年 3 月 14 日 手机上用 doh 还不成熟, 系统只支持 dot |