Edgetunnel 2.0 部署与配置指南:Cloudflare Pages + KV

本文仅用于学习 Cloudflare Pages、Workers KV 和 Web 部署流程。请确认你的使用场景符合当地法律、Cloudflare 服务条款以及网络服务提供商的规定,不要将服务用于绕过访问控制、攻击他人或传播未经授权的内容。

Edgetunnel 2.0 将节点配置、订阅生成和运行状态集中到一个 Web 管理页面中。相比只修改环境变量的旧式部署方式,新版本可以直接在面板里调整协议、优选地址和通知选项,更适合需要长期维护的个人项目。

项目源码与版本说明请以 cmliu/edgetunnel 为准。本文演示 Cloudflare Pages 的“上传压缩包”方式,整个过程不需要购买服务器。

✨ 版本亮点

🚀 点击展开 详细更新内容
  • 使用 WebUI 管理配置,修改后不必反复编辑源码变量。
  • 支持在 VLESS 和 Trojan 协议之间切换。
  • 支持自动分配、手动维护、在线测试和外部 API 等地址来源。
  • 可以绑定 Workers KV 保存面板数据,并配置 Telegram 通知。
  • 支持查看 Cloudflare Workers/Pages 的请求统计。

部署前准备

你需要准备:

  • 一个已完成邮箱验证的 Cloudflare 账号;
  • Edgetunnel 项目发布包。正式部署时使用对应版本的 edgetunnel-main.zip
  • 一个用于管理页面的强密码;
  • 可选的自定义域名。没有域名时可以先使用 Pages 分配的 pages.dev 地址。

下载压缩包后不要解压再重新压缩,直接保留项目提供的 ZIP 文件,避免目录层级被改变导致 Pages 找不到入口文件。

🛠️ 部署教程

支持 Workers、Pages GitHub、Pages 上传 三种部署方式,本教程将以 Pages 上传 方式为例,因为该方式部署无需任何门槛。

如需了解其他部署方式,请自行查看:https://github.com/cmliu/edgetunnel 项目文档。

🚀 点击展开 Pages 上传部署步骤

第一步:创建 Pages 项目

  1. 登录 Cloudflare 控制台,进入“计算和 AI”中的“Workers 和 Pages”。

  2. 选择创建应用程序,切换到 Pages,然后选择上传文件或拖放文件。

  3. 输入一个没有使用过的项目名称,例如 edt123123123。项目名称只能使用 Cloudflare 允许的字符,建议使用小写字母、数字和短横线。

  4. 上传 edgetunnel-main.zip,等待文件校验完成后点击部署。

  5. 部署结束后打开项目地址,看到默认页面即表示 Pages 项目已经创建成功。

此时页面还没有管理员变量和 KV 数据库。先不要把这个地址公开分享,继续完成下面的绑定步骤。

第二步:设置管理员密码

进入 Pages 项目的“设置”页面,在环境变量或变量和机密中添加一条文本变量:

变量名:ADMIN
变量值:自行生成的长随机密码

密码不要使用站点名称、生日或常见单词,也不要把它写入 Git 仓库。建议使用密码管理器生成至少 16 位的随机字符串。

变量添加完成后先保存。后续修改 ADMIN 后必须重新创建一次生产部署,旧版本实例不会自动读取新值。

第三步:创建并绑定 Workers KV

Edgetunnel 使用 KV 保存面板配置和优选数据。创建方式如下:

  1. 在 Cloudflare 控制台打开 Workers KV,点击创建命名空间。
  2. 命名空间名称可以填写 EDT2,名称只用于区分项目。
  3. 返回 Pages 项目,打开“设置”中的“绑定”。
  4. 添加 KV 命名空间,变量名称必须填写大写的 KV
  5. 在命名空间下拉框中选择刚才创建的 EDT2,保存绑定。

变量名称是代码读取 KV 的键,不能随意写成 EDT2DATABASE。保存后检查项目设置中同时存在 ADMIN 环境变量和 KV KV 绑定。

第四步:上传正式版本

完成变量和 KV 绑定后,需要上传正式项目包使配置生效:

  1. 点击项目右上角的创建部署。
  2. 选择生产环境和上传压缩文件。
  3. 上传与当前版本匹配的 edgetunnel-main.zip
  4. 点击保存并部署,等待构建和发布完成。

如果只是修改 ADMIN、KV 绑定或其他环境变量,也要重复这一步。部署日志出现错误时,先检查 ZIP 是否为项目根目录结构,以及 Pages 项目是否绑定到了正确的 KV 命名空间。

第五步:绑定自定义域名

Pages 自带的 pages.dev 地址可以直接使用;如果需要更易记的地址,可在项目的“自定义域”中添加域名。

  1. 进入自定义域,点击设置自定义域。
  2. 输入准备好的域名并继续。
  3. 根据 Cloudflare 给出的目标值,在域名 DNS 中添加 CNAME 记录。
  4. 等待 DNS 传播,返回 Pages 页面完成验证。

如果使用的是多级免费域名,通常不能直接把根域名绑定到 Pages。例如已有 example.cloudns.org,可以添加 edt2.example.cloudns.org 作为实际访问地址。最终绑定的域名必须与 DNS 中的 CNAME 记录名称完全一致。

域名验证成功后,先使用 HTTPS 访问首页,再访问 /admin。不要在公开文章或截图中暴露管理密码、UUID、KV 内容和完整订阅链接。

第六步:登录管理面板

访问:

https://你的域名/admin

输入 ADMIN 变量对应的密码即可进入管理页面。首页显示默认欢迎页并不代表部署失败,部分版本会把首页作为伪装页面,管理入口仍然是 /admin

首次登录后建议立即完成以下检查:

  • 能否打开详细配置信息;
  • KV 配置是否能保存并在刷新后保留;
  • 订阅地址能否返回内容;
  • 修改配置后是否出现保存成功提示。

🔀 配置优选地址

Edgetunnel 2.0 自带了三种优选订阅生成方式。

🎲 随机优选 - 简单

内置三网优选IP,根据订阅时的网络自动分配对应三网优选IP,优选IP数量不要一次填写过大,先用少量地址验证可用性,再逐步增加。

🚀 点击展开 随机优选 图文教程
  • 随机优选数量:优选IP要多少就填多少,但是建议不要过多,过多会导致触发域名真链接响应 -1
  • 指定优选端口:随机端口可抑制真链接响应 -1,也可指定44320532083208720968443端口;

注意:更新订阅时不可使用代理更新订阅,否则会导致无法识别对应三网优选IP,会自动降级为三网优选订阅!也就是会同时下发所有三网优选IP!

⚙️ 自定义优选 - 折腾

  • 自由度最高,适合喜欢折腾的选手,提供在线优选和优选API,等多种优选接入方式,在线优选可以自选落地国家,使用优选API可以实现自动化实时优选!
✍️ 点击展开 自定义优选 - 手动添加 图文教程

✍️ 手动添加

  • 您可以手动添加你的优选域名IP,格式:IP域名:端口#备注,每行一条记录,例如:
104.18.38.47:2053#这是优选IPv4案例
104.18.42.98:2096
172.64.145.158

[2a06:98c1:3101::ac40:919e]:2087#这是优选IPv6案例
[2a06:98c1:3108::6812:2a62]:8443
[2a06:98c1:3108::6812:919e]

www.visa.cn:443#这是优选域名案例
mfa.gov.ua:8443
www.shopify.com

IPv6地址必须使用方括号[]括起来。
缺少端口时,默认为443
缺少备注时,将直接显示IP域名
更多优选域名可通过CloudFlare优选域名汇总获取;

🌐 点击展开 自定义优选 - 在线优选 图文教程

🌐 在线优选

  • 在线优选:点击 在线优选 按钮,注意必须关闭代理并且使用国内网络直连,才能进行在线优选!
    • IP库:默认为CF官方列表,推荐使用CM整理列表即可,该列表包含了大部分三网优选IP段,且会不定期更新维护;
    • 端口:默认为443,可自行修改为其他端口;
    • 测试线程数:默认为8,电脑浏览器推荐16线程以上,手机浏览器推荐8~ 16线程;
      • 选择好参数后,点击 开始优选 按钮,等待优选结果;
      • 点击你所需国家的标签,点击 追加保存 按钮后点击 关闭 返回上级菜单;
      • 点击 保存 自定义优选结果;
  • 如果你当前网络再非CN环境下,将不被允许使用在线优选功能,因为在代理环境下进行在线优选只会得到你代理的优选,选出来的地区基本上都是你代理所属地区,而延迟也是你代理延迟,可以说是毫无意义的。
  • 如果你是身处国外并且直连尝试在线优选,也毫无意义,因为也就只有在CN环境下,因为国内没有CF数据中心,所以才能实现直连多国数据中心,所以才需要优选。
🔌 点击展开 自定义优选 - 优选API 图文教程

🔌 优选API

  • 接入普通文本API
    • 例如 https://cf.090227.xyz/ct ,后点击可用性验证按钮;
    • 如返回格式符合IP域名:端口#备注,每行一条记录格式,则代表API可用;
    • 如果仅是一次性导入,无需实时自动更新,则点击追加结果,需要实时获取数据,则点击追加API,然后点击保存
  • 接入XIU2/CloudflareSpeedTest项目,测速csv结果文件
    • 例如 https://github.com/cmliu/WorkerVless2sub/raw/refs/heads/main/CloudflareSpeedTest.csv ,填写测速对应的默认端口后,点击可用性验证按钮;
    • 如返回格式符合IP域名:端口#备注,每行一条记录格式,则代表API可用;
    • 如果仅是一次性导入,无需实时自动更新,则点击追加结果,需要实时获取数据,则点击追加API,然后点击保存
  • 接入iptest项目,测速csv结果文件
    • 例如 https://raw.githubusercontent.com/cmliu/WorkerVless2sub/refs/heads/main/addressescsv.csv ,点击可用性验证按钮;
    • 如返回格式符合IP域名:端口#备注,每行一条记录格式,则代表API可用;
    • 如果仅是一次性导入,无需实时自动更新,则点击追加结果,需要实时获取数据,则点击追加API,然后点击保存

🛋️ 优选订阅生成器 - 偷懒

  • 让大佬坐上来自己动,站在巨人的肩膀上,直接使用大佬的优选订阅生成器的优选结果CMLiussss 技术交流群置顶里收集了众多大佬的优选订阅生成器,大家可以自行选择。
🚀 点击展开 优选订阅生成器 图文教程
  • 加入CMLiussss 技术交流群,在群组置顶信息里找到优选订阅按钮
  • 复制优选订阅器的变量SUB对应的值备用
  • 填入优选订阅生成器,点击保存即可
sub://zrf.zrf.me#周润发
sub://sub.keaeye.icu#文烨
sub://sub.mot.cloudns.biz#Kristi
sub://sub.lzjbaby.com#辣子鸡
sub://sub.cmliussss.net#CM
sub://sub.mia.xx.kg#𝓜𝓲𝓪
sub://owo.o00o.ooo#𝙈𝙤𝙞𝙨𝙩_𝙍
sub://sub.danfeng.eu.org#DanFeng
sub://sub.us.ci#洛璃
sub://cm.soso.edu.kg#天诚
sub://sub.xdu.qzz.io#辣椒炒肉少放辣

在线测试

在线优选功能需要浏览器直接访问测试接口。进行测试时关闭系统代理,并确认当前网络允许直接访问 Cloudflare,否则测试到的可能是代理出口的延迟,而不是本地网络的实际结果。

选择地址库、端口和并发线程后开始测试,完成后按地区筛选结果,追加到配置并保存。手机浏览器建议使用较低的线程数,避免页面卡顿或触发浏览器并发限制。

接入外部 API

优选 API 可以是返回纯文本地址列表的接口,也可以是测速项目生成的 CSV 文件。添加前先使用面板的可用性验证,确认返回格式能被识别,再选择一次性追加或保存为定时 API。

外部接口属于不受你控制的第三方服务,接入前应阅读其隐私和使用条款。不要把包含敏感信息的内部地址提交到陌生 API。

🔀 点击展开 协议切换与通知配置

切换节点协议

在详细配置中找到节点协议,选择 VLESS 或 Trojan,然后保存配置并重新获取订阅。切换协议后,旧客户端配置不会自动变化,需要重新更新订阅或手动替换配置。

建议先使用一个客户端验证新订阅,确认 TLS、端口和传输参数均正常,再将其同步到其他设备。

配置 Telegram 通知

如果需要接收登录、订阅访问等事件通知,可以配置 Telegram Bot:

  1. 在 Telegram 中通过官方 Bot 管理器创建机器人,保存 Bot Token。
  2. 向机器人发送一次 /start,确保机器人可以向你发送消息。
  3. 获取目标聊天的 Chat ID。
  4. 在管理面板的消息通知设置中填写 Bot Token 和 Chat ID,先点击可用性验证。
  5. 验证成功后保存,并打开 Telegram 通知开关。

Bot Token 等同于密码,不能提交到文章、截图或公开仓库。若 Token 泄露,应立即在 Bot 管理器中撤销并重新生成。

查看 Cloudflare 请求统计

面板还可以读取 Workers/Pages 的当天请求用量。配置前需要在 Cloudflare 账户中准备:

  • Account ID;
  • 只授予读取分析数据和日志权限的 API Token。

创建 Token 时遵循最小权限原则,不要直接使用账户级别的全能 Token。将两项信息填入消息通知设置中的统计模块,点击验证,页面能返回当天配额后再保存。

使用多个面板扩展配额

如果确实需要管理多个独立实例,可以为不同 Cloudflare 账号分别部署项目,再为每个实例绑定不同的域名。节点实例可以通过环境变量指定同一套 UUID,并在主面板的 HOST 配置中登记节点域名。

这种方式会增加域名、账号和配置的维护成本,也不会改变平台服务条款限制。部署多个实例前,应先确认实际请求量和运营需求,避免无意义地扩展资源。

常见问题

访问首页只有默认欢迎页

这是部分版本的默认伪装页,访问 /admin 进入管理面板即可。

登录密码不正确

确认变量名称是大写 ADMIN,并重新上传一次生产部署。修改变量后只保存设置而不重新部署,运行中的版本可能仍使用旧值。

保存配置后刷新丢失

检查 KV 变量名是否为 KV,并确认 Pages 项目绑定的命名空间就是当前创建的实例。

订阅为空或格式异常

先减少优选地址数量,用一条手动地址验证协议和端口;再检查外部 API 的返回格式,避免把 HTML 错误页当作地址列表导入。

总结

Edgetunnel 2.0 的部署可以拆成四个核心动作:上传 Pages 项目、设置 ADMIN、绑定名为 KV 的 Workers KV、重新部署正式版本。自定义域名、优选地址、协议切换和通知都是部署完成后的可选配置。

遇到问题时,优先查看 Pages 部署日志和面板保存提示,逐项验证变量名、KV 绑定、域名解析和订阅返回值,通常比反复重新上传更容易定位原因。

参考资料