Edgetunnel 2.0 部署与配置指南:Cloudflare Pages + KV
Edgetunnel 2.0 部署与配置指南:Cloudflare Pages + KV
zhangchangsheng本文仅用于学习 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 项目
登录 Cloudflare 控制台,进入“计算和 AI”中的“Workers 和 Pages”。
选择创建应用程序,切换到 Pages,然后选择上传文件或拖放文件。
输入一个没有使用过的项目名称,例如
edt123123123。项目名称只能使用 Cloudflare 允许的字符,建议使用小写字母、数字和短横线。上传
edgetunnel-main.zip,等待文件校验完成后点击部署。部署结束后打开项目地址,看到默认页面即表示 Pages 项目已经创建成功。
此时页面还没有管理员变量和 KV 数据库。先不要把这个地址公开分享,继续完成下面的绑定步骤。
第二步:设置管理员密码
进入 Pages 项目的“设置”页面,在环境变量或变量和机密中添加一条文本变量:
变量名:ADMIN |
密码不要使用站点名称、生日或常见单词,也不要把它写入 Git 仓库。建议使用密码管理器生成至少 16 位的随机字符串。
变量添加完成后先保存。后续修改 ADMIN 后必须重新创建一次生产部署,旧版本实例不会自动读取新值。
第三步:创建并绑定 Workers KV
Edgetunnel 使用 KV 保存面板配置和优选数据。创建方式如下:
- 在 Cloudflare 控制台打开 Workers KV,点击创建命名空间。
- 命名空间名称可以填写
EDT2,名称只用于区分项目。 - 返回 Pages 项目,打开“设置”中的“绑定”。
- 添加 KV 命名空间,变量名称必须填写大写的
KV。 - 在命名空间下拉框中选择刚才创建的
EDT2,保存绑定。
变量名称是代码读取 KV 的键,不能随意写成 EDT2 或 DATABASE。保存后检查项目设置中同时存在 ADMIN 环境变量和 KV KV 绑定。
第四步:上传正式版本
完成变量和 KV 绑定后,需要上传正式项目包使配置生效:
- 点击项目右上角的创建部署。
- 选择生产环境和上传压缩文件。
- 上传与当前版本匹配的
edgetunnel-main.zip。 - 点击保存并部署,等待构建和发布完成。
如果只是修改 ADMIN、KV 绑定或其他环境变量,也要重复这一步。部署日志出现错误时,先检查 ZIP 是否为项目根目录结构,以及 Pages 项目是否绑定到了正确的 KV 命名空间。
第五步:绑定自定义域名
Pages 自带的 pages.dev 地址可以直接使用;如果需要更易记的地址,可在项目的“自定义域”中添加域名。
- 进入自定义域,点击设置自定义域。
- 输入准备好的域名并继续。
- 根据 Cloudflare 给出的目标值,在域名 DNS 中添加 CNAME 记录。
- 等待 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,也可指定443、2053、2083、2087、2096、8443端口;
注意:更新订阅时不可使用代理更新订阅,否则会导致无法识别对应三网优选IP,会自动降级为三网优选订阅!也就是会同时下发所有三网优选IP!
⚙️ 自定义优选 - 折腾
- 自由度最高,适合喜欢折腾的选手,提供在线优选和优选API,等多种优选接入方式,在线优选可以自选落地国家,使用优选API可以实现自动化实时优选!
✍️ 点击展开 自定义优选 - 手动添加 图文教程
✍️ 手动添加
- 您可以手动添加你的优选域名IP,格式:IP域名:端口#备注,每行一条记录,例如:
104.18.38.47:2053#这是优选IPv4案例 |
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#周润发 |
在线测试
在线优选功能需要浏览器直接访问测试接口。进行测试时关闭系统代理,并确认当前网络允许直接访问 Cloudflare,否则测试到的可能是代理出口的延迟,而不是本地网络的实际结果。
选择地址库、端口和并发线程后开始测试,完成后按地区筛选结果,追加到配置并保存。手机浏览器建议使用较低的线程数,避免页面卡顿或触发浏览器并发限制。
接入外部 API
优选 API 可以是返回纯文本地址列表的接口,也可以是测速项目生成的 CSV 文件。添加前先使用面板的可用性验证,确认返回格式能被识别,再选择一次性追加或保存为定时 API。
外部接口属于不受你控制的第三方服务,接入前应阅读其隐私和使用条款。不要把包含敏感信息的内部地址提交到陌生 API。
🔀 点击展开 协议切换与通知配置
切换节点协议
在详细配置中找到节点协议,选择 VLESS 或 Trojan,然后保存配置并重新获取订阅。切换协议后,旧客户端配置不会自动变化,需要重新更新订阅或手动替换配置。
建议先使用一个客户端验证新订阅,确认 TLS、端口和传输参数均正常,再将其同步到其他设备。
配置 Telegram 通知
如果需要接收登录、订阅访问等事件通知,可以配置 Telegram Bot:
- 在 Telegram 中通过官方 Bot 管理器创建机器人,保存 Bot Token。
- 向机器人发送一次
/start,确保机器人可以向你发送消息。 - 获取目标聊天的 Chat ID。
- 在管理面板的消息通知设置中填写 Bot Token 和 Chat ID,先点击可用性验证。
- 验证成功后保存,并打开 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 绑定、域名解析和订阅返回值,通常比反复重新上传更容易定位原因。









