edgetunnel 部署心得与 cfnew 备选方案对比
在折腾个人博客的间隙,我又顺手把 Cloudflare 上另一个“薅羊毛”的经典项目——edgetunnel 的部署流程跑了一遍。整个过程不需要本地环境,也无需绑定信用卡,全程在 Cloudflare 控制台里点点鼠标就能完成,很适合作为了解 Serverless 网络应用的入门实践。
下面就把我的部署心得和踩坑记录整理成篇,并附上一个备选方案 cfnew 的对比信息,供大家参考。
🚀 方案一:edgetunnel 部署实战
edgetunnel 是一个基于 Cloudflare Workers/Pages 平台的边缘计算隧道方案,核心功能是提供网络代理与配置面板。它的项目地址是:
edgetunnel GitHub 仓库:https://github.com/cmliu/edgetunnel
社区中也有许多衍生版本(如 sammy0101/edgetunnel、Missionary2035/edgetunnel),代码结构基本一致,均可参考。
部署方式的选择:Pages 上传比 Workers 更省心
edgetunnel 支持 Cloudflare Workers 和 Cloudflare Pages 两种部署模式。官方文档将 Pages 上传文件标记为“最佳推荐”,尤其对新手友好。Workers 需要手动粘贴代码、绑定 KV,对不熟悉控制台的人略显繁琐;而 Pages 允许直接上传一个 main.zip 压缩包,系统会自动解析并部署,步骤更少。
核心部署步骤(Pages 上传版)
下载部署包:从 GitHub 仓库下载
main.zip文件。在 Cloudflare Pages 创建项目:进入 Cloudflare 控制台 → Workers & Pages → 创建应用程序 → 选择 Pages → 上传资产 → 为项目命名并上传
main.zip,点击部署。配置 ADMIN 密码(必须):部署完成后,进入项目 设置 → 环境变量 → 生产环境,添加一个变量:
- 变量名:
ADMIN - 值:你自己设定的管理员密码
这个变量是登录管理面板的凭证,不设置将无法访问后台。
- 变量名:
绑定 KV 命名空间(必须):edgetunnel 使用 KV 存储配置数据。在 设置 → 绑定 → 添加 → KV 命名空间,变量名必须严格填写
KV(大小写敏感),然后选择或新建一个命名空间。重新部署使配置生效:回到 部署 标签页,点击 创建新部署,再次上传同一个
main.zip,点击“保存并部署”。访问后台:部署成功后,通过
https://你的项目名.pages.dev/admin即可进入管理面板,输入第 3 步设置的ADMIN密码登录。
踩坑心得:两个“必须严格匹配”的细节
KV绑定名不能改:在绑定 KV 命名空间时,变量名必须精确填写KV。如果写成kv或KV_NAMESPACE,edgetunnel 的代码将无法读取配置,后台登录会失败或配置无法保存。ADMIN变量名同样固定:代码在运行时直接读取名为ADMIN的环境变量来校验密码,随意命名会导致无法登录后台。
此外,如果遇到 Error 1101(Worker 运行时异常),常见原因是 KV 未正确绑定或环境变量缺失。项目仓库中提供了专门的视频解析链接,可对照排查。
自定义域名(可选但推荐)
部署完成后,*.pages.dev 的免费域名在国内的访问速度并不稳定。建议在 Pages 项目的 自定义域 中添加自己的子域名(如 edt.yourdomain.com),并按照提示在 DNS 服务商处添加 CNAME 记录,指向 你的项目名.pages.dev。
🔄 备选方案:cfnew 精简内核
如果 edgetunnel 的部署流程让你觉得偏“重”,或者你希望有一个更轻量、面板与内核分离的方案,cfnew 是一个值得关注的备选。
cfnew GitHub 仓库:https://github.com/byJoey/cfnew
cfnew 的定位差异
cfnew 的核心思路是把代理转发留在 Cloudflare,把控制台、优选和订阅生成交给独立面板。其默认分支 core-only 的内核仅约 37,806 字节,相比完整版减少了约 92%。代理流量仍然直接连接你自己的 Worker,不经过面板服务器,因此面板只承担配置管理和订阅生成的角色。
cfnew 的部署要点
cfnew 的 Pages 部署同样采用上传 Pages.zip 的方式,但配置项与 edgetunnel 不同:
| 对比项 | edgetunnel | cfnew (core-only) |
|---|---|---|
| 核心变量名 | ADMIN(登录密码) |
u 或 U(填写 UUID) |
| KV 绑定名 | KV(固定) |
C 或 c(固定) |
| 兼容性日期 | 无特殊要求 | 必须设为 2026-01-20,否则运行异常 |
| 配置入口 | 项目自带的 /admin 后台 |
独立面板 https://cfnew.xy.kg/,填入 Worker 域名和 UUID 即可 |
cfnew 的“独立面板”设计意味着你不需要在 Cloudflare 项目里访问后台,而是统一在外部面板完成配置修改、优选 IP 管理和订阅生成。修改后的配置会通过 KV 接口同步到 Worker,无需重新部署即可生效。
cfnew 的注意事项
- 兼容性日期是硬性要求:部署后必须前往 Cloudflare 项目的 设置 → 运行时 → 兼容性日期,选择
2026-01-20并保存,否则 Worker 可能无法正常运行。 - 不要直接上传 GitHub 自动生成的 Source code:必须使用 Releases 中提供的
Pages.zip,否则 Pages 项目无法正确识别和部署。 - 精简内核的功能取舍:
core-only版本不提供 Shadowsocks 入站和通用 UDP 转发,协议支持集中在 VLESS WS、Trojan WS 和 VLESS XHTTP。如果你需要更完整的协议支持,可以切回main分支的完整版。
💎 小结
edgetunnel 的优势在于功能完整、文档成熟、社区活跃,Pages 上传的部署路径对新手非常友好,适合作为 Cloudflare 代理方案的入门首选。
cfnew 则走的是轻内核 + 独立面板的路线,配置修改无需重新部署,在长期维护的便利性上有自己的特点。
两者都依赖 Cloudflare 的免费额度,日常个人使用绰绰有余,但都建议绑定自定义域名以提升访问稳定性。部署过程中如果遇到报错,优先检查 KV 绑定名、核心变量名、兼容性日期这三项,绝大多数问题都能定位到。
