当你听到"用 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 / SSVLESS / VMess / Trojan / Hysteria2VLESS / VMess / Trojan
管理面板内置 Web 面板自带面板自带面板
上限带宽受 CF 免费额度受 VPS 带宽受 VPS 带宽
适用人群轻量 / 测试 / 教育中小企业 / 机场小型团体 / 个人
💡 核心优势
零 VPS 成本:CF Free Plan 即可运行。
全球低延迟:用户自动连接到最近的 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 选项卡 → VariablesAdd Variable

  • 变量名填 ADMIN,值为后台管理密码(必填)。
  • 变量名填 KV,值为 KV 命名空间名称(见下一步绑定)。

步骤 4:绑定 KV 命名空间

进入 SettingsBindingsAdd 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、想一次部署稳定运行的情况。

  1. 下载 edgetunnel 仓库的 main.zipmain.zip
  2. 登录 CF Dashboard → PagesCreate a project → 选择 Upload Assets
  3. 上传 main.zip 文件,等待构建部署完成
  4. 进入 SettingsEnvironment Variables → 设置 ADMIN 变量
  5. 返回 DeploymentsCreate new deployment,重新上传 main.zip 保存
  6. 重新绑定 KV 命名空间(变量名 KV
  7. Custom Domains 添加你的子域名,完成接入

3.3 方式三:CF Pages + GitHub 自动部署

推荐:适合以后还想持续维护和更新的场景。

  1. 在 GitHub 上 Fork 本项目仓库,给主仓库点一个 Star ⭐
  2. CF Dashboard → Pages → Create a projectConnect to Git
  3. 选择 edgetunnel 的 GitHub 仓库,点击 Begin setup
  4. Build and Output 页面,找到 Environment variables (Advanced),添加 ADMIN 变量
  5. 点击 Save and Deploy
  6. 部署完成后进入 SettingsBindings,添加 KV 命名空间绑定(变量名 KV
  7. 进入 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❌ 可选1true开启开发者调试日志
OFF_LOG❌ 可选1true关闭日志记录(默认开启记录,填 1 关闭)
BEST_SUB❌ 可选1开启优选订阅生成器功能
PRELOAD_RACE_DIAL❌ 可选1开启预加载竞速拨号功能

变量交互说明

修改 ADMINKEY 的值为随机字符,会同步影响订阅路径中的 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 客户端推荐

平台推荐客户端
Windowsv2rayN · Hiddify · Clash Verge Rev · Clashmi
Androidv2rayNG · FlClash · Hiddify · NekoBox
iOSShadowrocket · Surge · Stash · Hiddify
macOSFlClash · 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 是一条重要的可用性分水岭。

🔒 安全提醒
CF Workers/Pages 是公共网络资源,不要在其中储存敏感用户数据。管理密码请使用强密码(16 位以上,含大小写及符号),并定期更换。订阅链接不要在高风险场合公开分享。

十、总结

edgetunnel 是一个让人"意外地好用"的项目。它的巧思在于:不跟你争 VPS 资源,而是在 CF 的边缘世界给你安了一个家。如果你的需求是轻量代理、快速验证、低维护,CF Workers 方案是一个值得一试的选择。

整个部署流程在熟练操作下不到 10 分钟,配置变量清晰,后台操作直观,配合 KV 持久化也不怕数据丢失。缺点是 Free Plan 有请求量限制,高并发场景需要在计划内升级 Plan 或搭配其他节点使用。

项目地址:github.com/cmliu/edgetunnel,欢迎 Star 支持原作者的工作。

📋 快速检查清单
□ CF 账号 + 域名已托管到 CF DNS
□ 新建 Worker 或 Pages 项目
□ 粘贴 _worker.js 或上传 main.zip
□ 设置 ADMIN 变量
□ 绑定 KV 命名空间(变量名 KV
□ 绑定 CNAME 自定义域
□registration 访问 /admin 确认后台正常
□ 在客户端导入订阅测试连通性