当你听到"用 CF Workers 跑代理隧道"时,第一反应可能是"这么冷门的方案能靠谱吗?"
edgetunnel(项目主页:cmliu/edgetunnel)用自己的方式给出了答案:支持 VLESS、Trojan、Shadowsocks,内置可视化管理后台,三分钟就能在 Cloudflare 边缘节点上跑起来。这篇文章会从项目特点讲起,一路带你走完部署全流程。
一、edgetunnel 是什么?
edgetunnel 是一个基于 Cloudflare Workers / Pages 平台的边缘计算代理协议方案。它的核心思路是:利用 CF 全球边缘节点作为中转,在前端处理网络流量,同时内置 VLESS / Trojan / Shadowsocks 协议解析,无需你购买独立 VPS 就能获得一个全球可用的代理节点。
你可以把它理解成:"把代理跑在 CF 的全球 CDN 节点上",用户通过 VLESS 等协议连接到你配置的域名,流量在 CF 的边缘计算环境中完成处理,最终穿透到目标站点。
1.1 与其他方案的定位区别
| 维度 | edgetunnel (CF Workers) | 3x-UI (VPS 面板) | Marzban (轻量面板) |
|---|---|---|---|
| 运行位置 | CF 全球边缘 | 自购 VPS | 自购 VPS |
| 部署门槛 | ⭐ 极低(无需 VPS) | ⭐⭐ 中 | ⭐⭐ 中 |
| 维护成本 | 近乎零 | 需手动更新 | 需手动更新 |
| 协议支持 | VLESS / Trojan / SS | VLESS / VMess / Trojan / Hysteria2 | VLESS / VMess / Trojan |
| 管理面板 | 内置 Web 面板 | 自带面板 | 自带面板 |
| 上限带宽 | 受 CF 免费额度 | 受 VPS 带宽 | 受 VPS 带宽 |
| 适用人群 | 轻量 / 测试 / 教育 | 中小企业 / 机场 | 小型团体 / 个人 |
全球低延迟:用户自动连接到最近的 CF 边缘节点。
免域名备案:CF 自有证书,CNAME 即可接入。
边缘协议加速:支持自定义 ProxyIP、链式 SOCKS5/HTTP 代理优选。
二、前置条件
在开始之前,你需要准备以下东西:
- 一个 Cloudflare 账号(免费 Plan 即可)。
- 一个已托管到 CF DNS 的域名(推荐使用 CF Nameserver 解析)。
- 基础的终端操作能力(复制粘贴命令级别)。
CF 账号准备注意事项:确认账号没有被禁用边缘计算功能,新建 Workers/Pages 时不会报权限错误。
三、三种部署方式
edgetunnel 支持三种部署方式,你可以根据自己的需求选择:
- CF Workers 部署:最快速,适合有 CF 操作经验的人。
- CF Pages 文件上传:通过 ZIP 包直接上传,最直观。
- CF Pages + GitHub 自动部署:Fork 仓库后 GitHub Actions 自动构建,最适合长期维护。
3.1 方式一:CF Workers 直接部署
这是最简单的方式,适合快速测试。
步骤 1:新建 Worker
登录 CF Dashboard → 左侧 Workers & Pages → 点击 Create Application → 选择 Create Worker,填一个名称(如 mytunnel)→ 创建。
步骤 2:粘贴代码
进入 Worker 的在线编辑器,将 edgetunnel 仓库中的 _worker.js 内容全部复制粘贴进去,保存。
步骤 3:添加变量
进入 Settings 选项卡 → Variables → Add Variable:
- 变量名填
ADMIN,值为后台管理密码(必填)。 - 变量名填
KV,值为 KV 命名空间名称(见下一步绑定)。
步骤 4:绑定 KV 命名空间
进入 Settings → Bindings → Add Binding → 选择 KV Namespace → 创建一个新命名空间(如 edgetunnel-kv),变量名填 KV,绑定到 Worker。
步骤 5:绑定自定义域
进入 Triggers 选项卡 → Add Custom Domain,填入你的子域名(如 proxy.yourdomain.com),等待 CF 证书生效后即完成绑定。
步骤 6:访问管理后台
浏览器访问 https://proxy.yourdomain.com/admin,输入 ADMIN 设置的密码登录,即可看到可视化面板。
3.2 方式二:CF Pages 上传文件部署
适合不想用 GitHub、想一次部署稳定运行的情况。
- 下载 edgetunnel 仓库的
main.zip:main.zip - 登录 CF Dashboard → Pages → Create a project → 选择 Upload Assets
- 上传
main.zip文件,等待构建部署完成 - 进入 Settings → Environment Variables → 设置
ADMIN变量 - 返回 Deployments → Create new deployment,重新上传
main.zip保存 - 重新绑定 KV 命名空间(变量名
KV) - 在 Custom Domains 添加你的子域名,完成接入
3.3 方式三:CF Pages + GitHub 自动部署
推荐:适合以后还想持续维护和更新的场景。
- 在 GitHub 上 Fork 本项目仓库,给主仓库点一个 Star ⭐
- CF Dashboard → Pages → Create a project → Connect to Git
- 选择 edgetunnel 的 GitHub 仓库,点击 Begin setup
- 在 Build and Output 页面,找到 Environment variables (Advanced),添加
ADMIN变量 - 点击 Save and Deploy
- 部署完成后进入 Settings → Bindings,添加 KV 命名空间绑定(变量名
KV) - 进入 Custom Domains,按提示添加 CNAME 记录,等待生效
GitHub 方式部署成功后,以后你在自己的 Fork 里修改代码或配置,GitHub Actions 会自动触发一次新部署,省心省力。
四、环境变量配置说明
edgetunnel 的绝大部分行为通过环境变量控制,不需要改动核心代码。
| 变量名 | 必填 | 示例值 | 说明 |
|---|---|---|---|
ADMIN | ✅ 必填 | MyP@ssw0rd! | 管理后台登录密码 |
KEY | ❌ 可选 | CMLiussss | 快速订阅路径密钥,访问 /KEY 即可直接获取订阅 |
UUID | ❌ 可选 | 90cd4a77-... | 强制固定 UUID(需 UUIDv4 标准格式) |
PROXYIP | ❌ 可选 | proxyip.example.com:443 | 全局自定义反代 IP,优化入境延迟 |
URL | ❌ 可选 | https://cloud.example.com | 默认主页伪装地址,可填 URL 或 1101 |
GO2SOCKS5 | ❌ 可选 | blog.example.com,*.ip111.cn | 强制走 SOCKS5 的域名名单,逗号分隔,* 为全局 |
DEBUG | ❌ 可选 | 1 或 true | 开启开发者调试日志 |
OFF_LOG | ❌ 可选 | 1 或 true | 关闭日志记录(默认开启记录,填 1 关闭) |
BEST_SUB | ❌ 可选 | 1 | 开启优选订阅生成器功能 |
PRELOAD_RACE_DIAL | ❌ 可选 | 1 | 开启预加载竞速拨号功能 |
变量交互说明
修改 ADMIN 或 KEY 的值为随机字符,会同步影响订阅路径中的 TOKEN 及节点验证用的 UUID。若需要强制固定 UUID,直接设置 UUID 变量(必须是 UUIDv4 标准格式,否则节点无法正常使用)。
五、管理面板功能
部署完成后,访问 https://你的域名/admin 即可进入可视化后台。主要功能模块包括:
- 节点配置:增删改 VLESS / Trojan / SS 节点,自动生成订阅链接。
- 日志查看:实时查看请求记录和错误日志。
- 流量统计:监控当日/当月流量消耗。
- 订阅管理:自动生成 Clash / Sing-box / Surge 等客户端可用的订阅地址。
如需修改配置(比如更换代理节点 IP),直接在后台编辑保存即可实时生效,不需要重启 Workers。
六、动态代理链配置
edgetunnel 支持通过 URL 参数或路径来动态切换代理方案,无需修改配置即改即用:
/proxyip=proxyip.example.com→ 指定自定义反代 IP/?proxyip=proxyip.example.com→ 同上,query string 方式/socks5=user:[email protected]:1080→ 指定 SOCKS5 上游代理/http=user:[email protected]:1080→ 指定 HTTP 代理上游
这一特性让 edgetunnel 可以在复杂的网络环境中灵活切换链路,适合有 SOCKS5/HTTP 代理需求的进阶用户。
七、订阅系统与客户端支持
edgetunnel 内置自动订阅生成,支持 KEY 变量的快速订阅路径,也支持手动生成的订阅链接,主流客户端均可直接导入:
7.1 客户端推荐
| 平台 | 推荐客户端 |
|---|---|
| Windows | v2rayN · Hiddify · Clash Verge Rev · Clashmi |
| Android | v2rayNG · FlClash · Hiddify · NekoBox |
| iOS | Shadowrocket · Surge · Stash · Hiddify |
| macOS | FlClash · Clash Verge Rev · Clashmi · Surge |
| 鸿蒙 | ClashBox |
订阅地址格式:https://proxy.yourdomain.com/你的KEY值(或 /sub 路径),在客户端中选择对应的协议导入即可。
八、优化与进阶技巧
8.1 自定义 ProxyIP 加速
在 CF 免费 Plan 下,用户连接的是 CF 边缘节点,但最后出口 IP 是 CF 自有 IP。你可以通过设置 PROXYIP 变量,将代理链路指向更优的专属出口节点,显著改善目标站点的连通性。社区里常见做法是使用 CF 优选 IP 池,结合 BEST_SUB 变量生成优选订阅。
8.2 SOCKS5/HTTP 链式代理
如果你已经有外部 SOCKS5/HTTP 代理(比如自备的住宅 IP 代理),可以通过 GO2SOCKS5 变量批量指定哪些域名走这条链路,有效绕过目标站点的 IP 风控。
8.3 隐藏管理面板
建议将管理路径从 /admin 修改为一个不易被猜到的路径(可通过修改 ADMIN 变量的同时调整路由,或在 CF Workers 的路由规则层做访问控制)。
8.4 主页伪装
将 URL 变量设为任意真实网站的 URL(如 Cloudflare 官方博客),当用户访问根域名时看到的是伪装页面,而不是一个空白的服务页面,降低被扫描的概率。
九、常见问题与限制
Q1:Error 1101 是什么?
Error 1101 是 CF Workers 的常见错误,通常由请求体积过大、响应超时或流量异常触发。建议检查请求是否携带了过大的 payload,或开启 DEBUG=1 查看 Workers 控制台的日志。
Q2:CF Free Plan 有流量上限吗?
CF Free Plan 的 Workers 每日有 10 万次请求的限制,超出后当日会返回 429 错误。如果你需要更大的用量,考虑升级到 Workers Paid Plan($5/月,1000 万次请求)或使用 Pages 方案。
Q3:协议支持会持续更新吗?
xray-core 社区对 VLESS / Trojan / SS 的长期维护较为稳定。Shadowrocket、v2rayN 等主流客户端都完美支持,协议下层没有明显的退役风险。edgetunnel 项目也会跟随上游保持更新。
Q4:订阅地址里的 TOKEN 被泄露了怎么办?
可以直接在 CF 后台修改变量 ADMIN 的值,TOKEN 和 UUID 会同步刷新。如果要强制固定 UUID,设置 UUID 变量为新的 UUIDv4 格式字符串。
Q5:为什么选择 edgetunnel 而非其他 CF 代理项目?
edgetunnel 相对同类项目(如 EDtunnel、workers-vless)的主要优势在于:内置管理面板(无需手改配置)和KV 持久化(配置重启不丢失)。对于非开发者来说,后台 UI 是一条重要的可用性分水岭。
十、总结
edgetunnel 是一个让人"意外地好用"的项目。它的巧思在于:不跟你争 VPS 资源,而是在 CF 的边缘世界给你安了一个家。如果你的需求是轻量代理、快速验证、低维护,CF Workers 方案是一个值得一试的选择。
整个部署流程在熟练操作下不到 10 分钟,配置变量清晰,后台操作直观,配合 KV 持久化也不怕数据丢失。缺点是 Free Plan 有请求量限制,高并发场景需要在计划内升级 Plan 或搭配其他节点使用。
项目地址:github.com/cmliu/edgetunnel,欢迎 Star 支持原作者的工作。
□ 新建 Worker 或 Pages 项目
□ 粘贴
_worker.js 或上传 main.zip□ 设置
ADMIN 变量□ 绑定 KV 命名空间(变量名
KV)□ 绑定 CNAME 自定义域
□registration 访问
/admin 确认后台正常□ 在客户端导入订阅测试连通性