为什么你需要自建DoH代理?doh-cf-workers破解运营商DNS封锁的隐私防御全攻略
【免费下载链接】doh-cf-workersDNS-over-HTTPS proxy on Cloudflare Workers项目地址: https://gitcode.com/gh_mirrors/do/doh-cf-workers
运营商DNS劫持、广告污染、隐私泄露——只要还在使用默认DNS,这些问题就可能随时找上门。doh-cf-workers 是一个部署在 Cloudflare Workers 上的极简 DoH(DNS-over-HTTPS)代理项目:粘贴几行代码,3 分钟即可搭建一套自建 DoH 代理,绕过运营商对公共 DoH 服务的封锁,把 DNS 隐私防护的主动权握在自己手里。
DNS 劫持有多严重?为什么公共 DoH 会被运营商封锁?
📖 可以把 DNS 理解为"互联网的通讯录":你访问example.com,先要问 DNS 服务器"这个网站在哪个 IP?"
问题在于,传统 DNS 流量是明文传输的,运营商(ISP)可以轻易:
- 🎯 篡改解析结果,把网站指向广告页
- 🔍 记录你的完整上网记录
- 🚫 直接屏蔽某些域名
DoH 技术把 DNS 查询加密在 HTTPS 通道里,运营商既看不懂内容、也难以精准阻断。但公共 DoH 服务(如 Cloudflare、Google 的节点)地址广为人知——一旦运营商开始封禁知名 DoH 服务,公共节点可能一夜失效。
破解之道就是本文的主题:自建一个专属的 DoH 代理。因为你的代理地址只属于你自己,运营商无法提前封锁。
doh-cf-workers 简介:只需一个文件的极简 DoH 代理
项目结构非常简单,核心代理逻辑全部在 index.js 中,不到 60 行代码:
| 文件 | 作用 |
|---|---|
index.js | 核心代理逻辑,转发你的 DNS 查询到上游 DoH 服务 |
wrangler.toml | Cloudflare Workers 部署配置 |
README.md | 项目说明与使用指引 |
它的工作方式可以概括为:
- 你的设备把 DNS 查询发到你部署的 Worker 地址;
- Worker 把查询原样转发给上游 DoH 服务(默认 Cloudflare,已确认兼容 Google、NextDNS);
- 上游返回的解析结果再原路传回你的设备。
整个过程中,你的 DNS 行为对运营商来说只是一段加密的 HTTPS 流量,无法识别、无法劫持。🛡️
项目同时兼容三种常用 DoH 请求方式:
- GET 请求(带
dns参数,二进制格式) - POST 请求(二进制报文,多数客户端默认方式)
- JSON 格式API(通过代码中的
dohjson变量控制)
这意味着绝大多数支持 DoH 的设备都能直接对接。
3 步快速部署:免费搭建你的专属 DoH 代理
第 1 步:注册免费的 Cloudflare 账号
访问 Cloudflare Workers 官方页面注册账号即可,个人使用免费额度完全够用(每天 10 万次请求,一般家庭都绰绰有余)。
第 2 步:粘贴代码并部署 Worker
在 Workers 控制台新建一个 Worker,把默认模板清空,替换为 index.js 的完整内容,直接部署。
如果想换上游 DNS 服务商,只需修改代码里的一行:
// 默认使用 Cloudflare 的 DoH 服务 const doh = 'https://security.cloudflare-dns.com/dns-query'把它换成你信任的任意 DoH 地址即可(Google、NextDNS、AdGuard 等均支持,注意 Google 和 AdGuard 的路径是/resolve)。
第 3 步:获取你的专属 DoH 地址
部署成功后,你会得到一个形如https://xxx.your-worker.workers.dev的地址。这个地址就是你自建 DoH 代理的入口,把它填进任何支持 DoH 的客户端就完成了。⚡
💡 习惯命令行部署的话,也可以先克隆仓库到本地:
git clone https://gitcode.com/gh_mirrors/do/doh-cf-workers,再用 wrangler 工具部署(依赖已在package.json中声明)。
客户端配置:让手机和电脑用上你的 DoH 代理
拿到地址后,配置过程非常直接——任何接受 DoH 地址的地方都能用:
| 客户端 | 配置位置 |
|---|---|
| 浏览器 | 安全 DNS / DNS over HTTPS 设置,填你的 Worker 地址 |
| AdGuard(手机/路由器) | DoH 上游服务器设置 |
| YogaDNS、Nebulo、Intra 等 | 添加 DoH 服务器 |
填完后重启 DNS 服务,即可验证:查询流量已全部走你的自建代理,绕开了运营商的封锁清单。✅
进阶技巧:workers.dev 域名被整体封锁怎么办?
极端情况下,运营商可能直接封掉workers.dev这个公共域名。项目对此有预案:
- 将你自己的域名(需托管在 Cloudflare 上)通过CNAME 记录指向任意值,再在 Workers 的 Routes 里绑定该域名;
- 此后你的 DoH 代理就走自有域名,封锁成本大幅上升。
这样即使公共域名被拉黑,你的私有 DoH 通道依然畅通。🔐
常见问题解答(FAQ)
免费版每天 10 万次请求够用吗?
对绝大多数个人用户甚至一个家庭都足够。若需求更大,可以升级付费计划(修改 wrangler.toml 配置);但月费 $5 起,此时也可以考虑在 VPS 上自建 AdGuard Home 作为替代方案。
用一键部署按钮会不会泄露地址?
用仓库里的 Deploy 按钮快速部署时,Action 日志是公开可见的,任何人都能看到你的 Worker 地址并消耗你的免费配额。建议部署后删除日志,或保持仓库私有。📌
可以完全离线使用吗?
不行,代理依赖 Cloudflare 边缘节点和上游 DoH 服务。它解决的是"运营商封锁/劫持 DNS"问题,而非断网问题。
总结:把 DNS 隐私握在自己手里
doh-cf-workers 用最少的代码解决了一个真实而紧迫的问题:当运营商开始封锁公共 DoH 服务时,你仍然有一个只属于自己的加密 DNS 通道。
- 🆓 免费额度即可覆盖个人与家庭使用
- ⏱️ 三步完成部署,无需服务器、无需运维
- 🔁 上游 DNS 可自由切换,兼容 GET / POST / JSON 三种请求格式
- 🌐 支持自定义域名,应对公共域名被封锁的极端情况
几行代码换来的,是长期、可控的 DNS 隐私防御能力。现在就部署你的专属 DoH 代理吧!
【免费下载链接】doh-cf-workersDNS-over-HTTPS proxy on Cloudflare Workers项目地址: https://gitcode.com/gh_mirrors/do/doh-cf-workers
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考