项目地址:cmliu/edgetunnel(基于 zizifn/edgetunnel 二次开发)· 当前版本 2.1 · 热度约 4.9 万 Star / 3.9 万 Fork(2026-11 仓库页数据)· 作者图文教程:cmliussss.com/p/edt2

在 Cloudflare 上搭代理节点,edgetunnel 是绕不开的名字:一个 _worker.js 文件同时搞定节点、后台面板和订阅生成,部署在 Workers / Pages 免费额度里,不用买服务器。本文按官方 README 与作者教程的最新口径,把三种部署方法、全部环境变量、高级技巧和常见故障一次写全。部署前提醒:本项目仅供学习与网络技术研究使用,请遵守你所在地区的法律法规与 Cloudflare 服务条款。

edgetunnel 后台页面(项目官方图)
edgetunnel 后台页面(项目官方图)

它能干什么

  • 协议:VLESS、Trojan、Shadowsocks 三种主流协议,一个部署全给
  • 可视化后台:/admin 登录,配置实时修改、日志查看、流量统计都在面板里
  • 订阅系统:内置订阅生成与混淆转换,适配 Clash / sing-box / Surge 等客户端;后台可直接拿订阅地址
  • 加速手段:自定义 ProxyIP(反代 IP)、SOCKS5 / HTTP 链式代理、优选 API、并发拨号调参
  • 多端适配:Windows / Android / iOS / macOS / 软路由全覆盖(客户端清单见文末)
  • 演示站:官方 Demo 在 EDT-Pages.github.io/admin,部署前可以先点进去看面板长什么样

准备工作

  • 一个 Cloudflare 账号(邮箱注册即可,免费计划够用)
  • 一个已接入 Cloudflare 的域名:Workers 绑自定义域、Pages 设自定义域都要用它;实在没有域名,也可以先用项目自带的 pages.dev / workers.dev 地址把流程跑通,日后再绑
  • 一个顺手的客户端(按文末适配表选),部署完立刻能测

部署方法一:Workers 部署

  1. 在 Cloudflare 控制台创建一个新的 Worker,把仓库 _worker.js 的内容粘贴进在线编辑器并部署
  2. 左侧「设置 → 变量」添加变量:变量名 ADMIN,值填你的管理员密码,保存
  3. 「设置 → 绑定」添加 KV 命名空间绑定:变量名填 KV(没有命名空间就新建一个)
  4. 「触发器」选项卡添加自定义域:填一个已接入 Cloudflare 的次级域名(例如 vless.example.com),等证书生效
  5. 访问 https://你的域名/admin,输入 ADMIN 密码登录后台

部署方法二:Pages 上传部署(作者最佳推荐)

  1. 下载仓库的 main.zip
  2. Cloudflare 控制台 → Pages →「上传资产」,取个项目名,上传 main.zip 后「部署站点」
  3. 部署完成点「继续处理站点」→「设置 → 环境变量」,为生产环境添加变量 ADMIN = 管理员密码,保存
  4. 回「部署」选项卡 →「创建新部署」,重新上传一次 main.zip 并「保存并部署」(让刚设的变量生效)
  5. 「设置 → 绑定」添加 KV 命名空间绑定,变量名 KV,保存后重试部署一次
  6. 「自定义域」选项卡设置自定义域:填次级域名(不要用根域名),按提示去域名 DNS 处加 CNAME 记录指向 项目名.pages.dev,点「激活域」
  7. 访问 https://你的域名/admin 登录

图文对照(官方教程截图,Pages 上传部署)

下面 7 张图来自作者官方图文教程,与上面步骤一一对应(图为作者演示环境,项目名与域名请替换成你自己的):

第 2 步·创建 Pages 项目时选「Get started」进入上传部署:

创建 Pages 项目入口(官方教程图)
创建 Pages 项目入口(官方教程图)

第 2 步·上传 main.zip(选「上传压缩包」):

上传压缩包(官方教程图)
上传压缩包(官方教程图)

第 3 步·添加环境变量 ADMIN(类型选文本,变量名大写,值填你自己的密码):

添加 ADMIN 变量(官方教程图)
添加 ADMIN 变量(官方教程图)

第 5 步·在「设置 → 绑定」里添加 KV 绑定:

绑定 KV 命名空间(官方教程图)
绑定 KV 命名空间(官方教程图)

第 4 步·重新部署:部署环境选「生产」,再传一次压缩包让变量与绑定生效:

重新部署到生产环境(官方教程图)
重新部署到生产环境(官方教程图)

第 6 步·自定义域要加的 CNAME 记录(名称与目标照页面给出的复制):

CNAME 记录设置(官方教程图)
CNAME 记录设置(官方教程图)

第 7 步·打开 /admin,输入 ADMIN 密码登录:

edgetunnel 登录页(官方教程图)
edgetunnel 登录页(官方教程图)

部署方法三:Pages + GitHub 部署(适合长期跟更新)

  1. 在 GitHub 上 Fork 该仓库(顺手点 Star)
  2. Cloudflare 控制台 → Pages →「连接到 Git」,选中你 Fork 的 edgetunnel 仓库,「开始设置」
  3. 在「设置构建和部署」页下方展开「环境变量(高级)」,添加 ADMIN = 管理员密码,「保存并部署」
  4. 同方法二的第 5、6 步:绑定 KV(变量名 KV)、设置自定义域
  5. 访问 https://你的域名/admin 登录

三种方法的区别:Workers 最轻量但要自己绑域名才好用;Pages 上传最省事、作者最推荐;Pages + GitHub 后续在 GitHub 点同步就能跟上游更新,适合长期用。

环境变量全表

变量名必填示例说明
ADMIN✅123456后台管理面板登录密码(示例只是格式,务必换成自己的强密码)
KEY❌CMLiussss快速订阅路径密钥,访问 /你的KEY 直接获取节点
UUID❌90cd4a77-…强制固定 UUID,只支持 UUIDv4 标准格式,格式不对节点不可用
PROXYIP❌proxyip.cmliussss.net:443全局自定义反代 IP
URL❌https://…默认主页伪装地址(填网页 URL 或 1101)
GO2SOCKS5❌*google.com强制走 SOCKS5 的域名名单,逗号分隔,* 为全局
DEBUG❌1开发者模式:开启调试日志(console.log)
OFF_LOG❌1关闭 KV 日志记录功能(默认开启)
BEST_SUB❌1开启「优选订阅生成器」功能
PRELOAD_RACE_DIAL❌1开启预加载竞速拨号
TCP_CONCURRENT_DIAL❌2TCP 并发拨号数,默认 2;设置后不再按移动网络自动降为单路
PROXY_CONCURRENT_DIAL❌1反代并发拨号数,默认 1;越高连接越快但 IP 切换越频繁

高级技巧

  • 改订阅 TOKEN 与 UUID:修改 ADMIN 或 KEY 的值,订阅地址里的 TOKEN 和节点验证 UUID 会跟着变;想固定下来就设 UUID 变量(必须是 UUIDv4)
  • 用路径临时切换代理方案(不用改配置、不用重新部署):
  • 指定反代:/proxyip=proxyip.cmliussss.net 或 /?proxyip=…
  • 指定 SOCKS5:/socks5=用户:密码@127.0.0.1:1080;/socks://…、/socks5://… 形式默认激活全局 SOCKS5
  • 指定 HTTP 代理:/http=用户:密码@127.0.0.1:1080
  • Trojan fallback 对接自建服务:/trojan=1.1.1.1:1234(fallback 需同密码、非 WebSocket、非 TLS,UDP 透传给 fallback)

客户端适配

平台推荐客户端
Windowsv2rayN、Hiddify、FlClash、Clash Verge Rev、Karing 等
Androidv2rayNG、ClashMetaForAndroid、FlClash、NekoBox、Hiddify 等
iOSShadowrocket(小火箭)、Stash、Loon、Surge、Quantumult X、Hiddify 等
macOSFlClash、Clash Verge Rev、Surge、Karing 等
鸿蒙ClashBox

常见问题与检查维修

  • 打开后台报 Error 1101:多半是代码粘贴不完整或变量/KV 没绑对。先对照部署步骤检查:ADMIN 变量有没有保存、KV 绑定变量名是不是 KV、改完绑定有没有重新部署;作者还专门录了 1101 问题视频解析
  • 改了变量不生效:Pages 部署必须「创建新部署」重新上传/重新部署一次,变量只对新部署生效;Workers 在控制台改完变量要确认已保存并重新部署
  • 节点连不上:检查 UUID 格式(设了 UUID 变量时必须是 UUIDv4)、自定义域证书是否已生效、订阅地址里的 TOKEN 是否与当前 ADMIN/KEY 对应(改过密码后旧订阅会失效,需回后台重新复制)
  • 速度慢:在后台换优选 IP / 设置 PROXYIP,或适当调高 PROXY_CONCURRENT_DIAL;移动网络可试 TCP_CONCURRENT_DIAL 固定并发数
  • 日志占 KV:不需要日志就设 OFF_LOG=1 关掉 KV 日志记录

视频教程

在 YouTube 打开原视频 ↗

和同系列另外两款的区别

  • CFNext:同样是单文件全家桶路线,但多了 MASQUE / 家宽模式、前后端分离和多后端管理,玩法更重,见《CFNext 部署教程》
  • CFnew 精简内核:反过来做减法——内核只剩 37KB 只管转发,面板独立外置,见《CFnew 精简内核部署教程》
  • edgetunnel 的定位是最成熟、教程最多、社区最大的全能面板,第一次搭建议从它开始

资料来源

  • 项目仓库 README(2026-11,版本 2.1):https://github.com/cmliu/edgetunnel
  • 作者图文教程与官方视频(见上)