在折腾个人博客的间隙,我又顺手把 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 上传版)

  1. 下载部署包:从 GitHub 仓库下载 main.zip 文件。

  2. 在 Cloudflare Pages 创建项目:进入 Cloudflare 控制台 → Workers & Pages → 创建应用程序 → 选择 Pages → 上传资产 → 为项目命名并上传 main.zip,点击部署。

  3. 配置 ADMIN 密码(必须):部署完成后,进入项目 设置 → 环境变量 → 生产环境,添加一个变量:

    • 变量名:ADMIN
    • 值:你自己设定的管理员密码

    这个变量是登录管理面板的凭证,不设置将无法访问后台。

  4. 绑定 KV 命名空间(必须):edgetunnel 使用 KV 存储配置数据。在 设置 → 绑定 → 添加 → KV 命名空间,变量名必须严格填写 KV(大小写敏感),然后选择或新建一个命名空间。

  5. 重新部署使配置生效:回到 部署 标签页,点击 创建新部署,再次上传同一个 main.zip,点击“保存并部署”。

  6. 访问后台:部署成功后,通过 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 绑定名、核心变量名、兼容性日期这三项,绝大多数问题都能定位到。