本文更新时间:2026 年 7 月 28 日,适用于 EdgeTunnel 2.1。
EdgeTunnel 涉及网络隧道与代理协议,请仅用于学习研究、个人安全测试以及经过授权的网络环境,并遵守所在地法律法规、Cloudflare 服务条款和项目许可证。不要把订阅地址、二维码、管理密码公开分享。
很多 EdgeTunnel 教程一上来就讲 UUID、ProxyIP、优选 IP,新手往往还没开始部署就被一堆名词劝退。其实先抓住一句话就够了:
EdgeTunnel 是部署在 Cloudflare Workers 或 Pages 上的“服务端程序”,部署完成后通过网页后台生成订阅,再交给电脑或手机上的客户端使用。
它本身不是 Windows、Android 或 iPhone 上的客户端,也不需要你先购买一台传统 VPS。对于第一次接触这类项目的人,最简单的路线是:
下载项目压缩包 → 上传到 Cloudflare Pages → 设置管理密码 → 绑定 KV → 重新部署 → 打开 /admin → 复制订阅。
图 1:客户端连接到 Cloudflare 边缘网络,EdgeTunnel 负责处理连接;Workers KV 用来保存后台配置和操作日志。
一、EdgeTunnel 2.1 是什么?
EdgeTunnel 是一个运行在 Cloudflare Workers/Pages 上的开源边缘隧道项目,目前仓库主版本为 2.1。它提供了一个可视化管理后台,不需要每次改配置都去手工修改代码。
它主要有这些特点:
- 支持 VLESS、Trojan、Shadowsocks 等协议;
- 自带网页管理后台,可以查看配置、生成节点和订阅;
- 支持自适应订阅、Base64 订阅、Clash 订阅和 Sing-box 订阅;
- 可以部署到 Workers,也可以部署到 Pages;
- 支持自定义域名、ProxyIP、SOCKS5/HTTP 链式代理和优选订阅;
- Windows、Android、iOS、macOS 上都有可配套使用的客户端。
这里最容易混淆的是“服务端”和“客户端”:
| 部分 | 作用 | 常见例子 |
|---|---|---|
| EdgeTunnel | 部署在 Cloudflare 上,生成节点和订阅 | Workers、Pages |
| 客户端 | 安装在电脑或手机上,导入订阅并建立连接 | v2rayN、v2rayNG、Hiddify、Clash Verge Rev |
所以,只部署 EdgeTunnel 还不够,最终仍需要在设备上安装一个兼容客户端。
二、部署前需要准备什么?
正式开始前,只需要准备下面几样东西:
- 一个可以正常登录的 Cloudflare 账号;
- EdgeTunnel 项目压缩包;
- 一个强度足够的后台密码;
- 一个客户端;
- 可选:一个已经可以管理 DNS 的自定义域名。
项目下载地址:
后台密码不要使用 123456、生日、手机号等弱口令。建议由密码管理器生成至少 16 位、包含大小写字母、数字和符号的随机密码。
Cloudflare 后台的栏目名称可能会随着版本调整。例如“Workers 和 Pages”“计算和 AI”“Workers & Pages”可能指向同一类入口,找不到完全相同的按钮时,不必慌张,认准 Pages、变量、绑定、KV、自定义域 这些关键词即可。
三、三种部署方式应该怎么选?
EdgeTunnel 目前主要有三种部署方式。
图 2:第一次部署建议选择 Pages 压缩包上传;熟悉后再考虑 Workers 或 GitHub 自动部署。
| 部署方式 | 难度 | 更新方式 | 适合谁 |
|---|---|---|---|
| Pages 压缩包上传 | 最低 | 新版本发布后重新上传 | 第一次部署的新手 |
| Workers 粘贴脚本 | 较低 | 重新复制 _worker.js |
想快速试用、方便改代码的人 |
| Pages + GitHub | 中等 | 同步 Fork 后自动重新部署 | 想长期维护、习惯 GitHub 的人 |
本文把 Pages 压缩包上传 作为主教程。需要注意:Cloudflare 官方文档说明,Direct Upload 项目创建后不能直接切换成 Git 集成项目;以后想改为 GitHub 自动部署,需要另建一个 Pages 项目。
四、推荐方案:使用 Cloudflare Pages 上传部署
第 1 步:下载项目压缩包
打开 EdgeTunnel 仓库,点击页面右上方的 Code,再点击 Download ZIP。
下载后通常会得到:
edgetunnel-main.zip
Cloudflare Pages 的拖放上传支持 ZIP 文件,也支持包含 _worker.js 的项目。为避免目录层级错误,上传前可以先打开压缩包确认:_worker.js 应当位于项目根目录附近,而不是被套在多层无关文件夹中。
第 2 步:创建 Pages 项目
登录 Cloudflare 后,进入:
Workers 和 Pages
→ 创建应用程序
→ Pages
→ 拖放文件 / Direct Upload
然后依次完成:
- 输入一个全新的项目名称,例如
edt-20260728; - 选择刚才下载的
edgetunnel-main.zip; - 点击“部署站点”或“保存并部署”;
- 等待首次部署完成。
部署成功后,Cloudflare 会分配一个类似下面的地址:
https://edt-20260728.pages.dev
现在先不要急着配置客户端,因为后台密码和 KV 还没有设置好。
第 3 步:添加 ADMIN 管理密码
进入刚刚创建的 Pages 项目,找到:
设置
→ 变量和机密 / 环境变量
→ 添加变量
新增一个文本变量:
| 项目 | 填写内容 |
|---|---|
| 变量名 | ADMIN |
| 变量值 | 你自己生成的强密码 |
| 环境 | 生产环境 |
变量名必须写成大写的 ADMIN。这个值就是以后登录 /admin 管理后台时使用的密码。
ADMIN不只是登录密码。在没有手工固定 UUID 时,项目还可能根据ADMIN与KEY派生节点身份信息。因此修改密码后,旧订阅或旧节点可能需要重新导入。
第 4 步:创建并绑定 Workers KV
KV 可以理解为 EdgeTunnel 的“小型配置数据库”。后台保存的设置、部分日志和管理数据都需要它。
先在 Cloudflare 左侧找到:
存储和数据库
→ Workers KV
→ 创建实例
命名空间可以填写:
EDT2
创建完成后,回到 EdgeTunnel 的 Pages 项目,进入:
设置
→ 绑定
→ 添加绑定
→ KV 命名空间
填写:
| 项目 | 填写内容 |
|---|---|
| 变量名称 | KV |
| KV 命名空间 | 选择刚创建的 EDT2 |
这里的变量名称必须是大写 KV,不能写成 kv、edt 或命名空间本身的名字。
图 3:Pages 部署真正的关键只有两个——添加 ADMIN,以及把 KV 以变量名 KV 绑定到项目。
第 5 步:重新部署,让变量和绑定生效
很多人明明设置了密码和 KV,打开后台却仍然报错,原因就是忘记重新部署。
回到项目的“部署”页面,选择:
创建新部署
重新上传同一个 edgetunnel-main.zip,部署环境选择“生产”,然后保存并部署。
有些 Cloudflare 页面也会提供“重试部署”“重新部署当前版本”等按钮,效果相同。只要确保新的生产部署是在变量和 KV 绑定完成之后生成的即可。
第 6 步:绑定自定义域名(可选但推荐)
不绑定域名也可以先使用 Cloudflare 分配的 pages.dev 地址。不过在部分网络环境中,默认域名可能访问不稳定,此时可以绑定自己的子域名。
进入:
Pages 项目
→ 自定义域
→ 设置自定义域
推荐使用子域名,例如:
edt.example.com
如果域名已经托管在 Cloudflare,系统通常会自动添加记录并签发证书;如果 DNS 在其他平台,按照页面提示添加 CNAME 记录即可。证书与 DNS 生效需要一点时间,显示“待验证”时先检查记录,再耐心等待。
第 7 步:打开管理后台
部署和绑定完成后,在项目地址后面加上 /admin:
https://你的项目.pages.dev/admin
或者:
https://edt.example.com/admin
输入刚才设置的 ADMIN 密码即可登录。
如果直接访问主页看到 Welcome to nginx! 或其他普通网页,不一定是部署失败。EdgeTunnel 会使用伪装主页,真正的管理入口是 /admin。

图 4:EdgeTunnel 2.1 管理后台。图片来自项目仓库,后台可以生成节点、订阅并调整详细配置。
五、第一次进入后台,哪些设置需要改?
EdgeTunnel 2.1 的后台选项很多,但新手不需要全部研究。第一次进入时,建议点击页面上方的 “我是小白!我想简单点!”,先使用精简配置。
1. HOST
一般保持当前访问域名即可。例如你使用:
edt.example.com
那么 HOST 通常也使用这个域名。不要填写 https://,也不要随意添加路径。
2. UUID
不手工设置时,系统会根据环境变量生成 UUID。新手可以先保持默认。
如果你希望以后修改 ADMIN 密码时尽量保持节点身份稳定,可以设置一个固定的 UUIDv4。UUIDv4 的格式类似:
90cd4a77-141a-43c9-991b-08263cfe9c10
不要照抄示例值,应当使用本地可信工具随机生成自己的 UUID。
3. 节点协议与传输协议
新手建议:
- 节点协议先保持默认;
- 传输协议优先使用 WebSocket;
- XHTTP、gRPC、ECH、链式代理等功能等基础连接稳定后再研究。
高级传输方式可能增加请求量、客户端兼容性和排错难度。先把默认配置跑通,比一开始追求“所有高级功能全开”更重要。
4. 优选订阅
初次使用可以保留“随机优选”或默认设置,不要一次生成过多节点。节点越多不代表速度一定越快,反而会增加客户端测试时间和订阅体积。
5. ProxyIP、SOCKS5 和 HTTP 代理
这些都是高级功能,不是部署成功的必要条件。
PROXYIP用于特定访问场景的反代;- SOCKS5/HTTP 可以作为额外出口或链式代理;
- 不要使用来源不明的账号、密码和公共代理;
- 不要把私人代理凭据填写到陌生的在线检测网站。
对于新手,先保持默认,能正常生成订阅和连接后再调整。
六、如何把订阅导入电脑或手机?
管理后台的“获取节点链接”区域通常会提供多种格式:
- 节点链接;
- 自适应订阅;
- Base64 订阅;
- Clash 订阅;
- SingBox 订阅;
- 二维码。
不知道选哪一个时,可以先尝试 自适应订阅;如果客户端明确区分格式,就选择对应的订阅类型。
图 5:服务端部署完成后,真正的日常使用只有“复制订阅—导入客户端—更新—选择节点”四步。
Windows
可以使用:
- v2rayN:适合 VLESS/Trojan/Base64 订阅;
- Hiddify:界面相对直观,支持多种订阅;
- Clash Verge Rev:使用后台提供的 Clash 订阅。
通用步骤:
订阅管理
→ 新增订阅
→ 粘贴后台复制的订阅地址
→ 更新订阅
→ 选择节点
→ 开启系统代理
Android
可以使用:
- v2rayNG;
- Hiddify;
- FlClash 等兼容客户端。
通常在“订阅分组”或“从剪贴板导入”中粘贴订阅地址,也可以使用后台二维码导入。
iOS 和 macOS
iOS 常见客户端包括 Shadowrocket、Surge、Stash、Hiddify 等;macOS 可以使用 Hiddify、Clash Verge Rev、FlClash 或 Surge。
不同客户端按钮名称略有区别,但核心步骤完全相同:
- 新增订阅;
- 粘贴 URL 或扫描二维码;
- 更新订阅;
- 选择节点;
- 开启 VPN 或系统代理。
订阅地址和二维码相当于访问凭据。不要发到群聊、论坛、截图网站或公开仓库中。怀疑泄露时,应立即修改相关配置并重新生成订阅。
七、另外两种部署方式
方案 A:Workers 粘贴脚本
适合想直接看代码或快速试用的人。
- 打开 Cloudflare 的 Workers 和 Pages;
- 创建一个 Worker;
- 打开在线编辑器;
- 复制仓库中的
_worker.js全部内容,替换示例代码; - 保存并部署;
- 添加
ADMIN环境变量; - 创建 KV,并以变量名
KV绑定; - 再次部署;
- 访问
https://你的Worker域名/admin。
Workers 方式的优点是代码集中在一个脚本中,缺点是项目更新后需要重新复制最新脚本。
方案 B:Pages + GitHub
适合熟悉 GitHub、希望长期维护的人。
- Fork cmliu/edgetunnel 到自己的 GitHub;
- 在 Cloudflare Pages 中选择“连接到 Git”;
- 授权 GitHub,并选择自己 Fork 的仓库;
- 生产分支选择
main; - 按仓库默认结构部署;
- 添加
ADMIN; - 创建并绑定
KV; - 重新触发生产部署;
- 绑定自定义域并访问
/admin。
GitHub 集成的“自动部署”指的是:你自己的 Fork 有新提交后,Cloudflare 自动部署。 上游仓库更新后,仍需要先把上游改动同步到自己的 Fork。
八、常用环境变量说明
新手真正必须处理的只有 ADMIN,以及名为 KV 的 KV 绑定。其他变量按需使用。
| 名称 | 是否必需 | 作用 |
|---|---|---|
ADMIN |
是 | 管理后台登录密码 |
KEY |
否 | 设置快速订阅路径密钥 |
UUID |
否 | 固定节点 UUID,必须是 UUIDv4 |
PROXYIP |
否 | 设置全局反代地址 |
URL |
否 | 设置主页伪装地址 |
GO2SOCKS5 |
否 | 指定需要走 SOCKS5 的域名 |
DEBUG |
否 | 开启调试日志,排错后应关闭 |
OFF_LOG |
否 | 设置为 1 或 true 时关闭 KV 日志记录 |
BEST_SUB |
否 | 开启优选订阅生成器模式 |
PRELOAD_RACE_DIAL |
否 | 2.1 默认开启,设为 0 或 false 可关闭 |
TCP_CONCURRENT_DIAL |
否 | 调整 TCP 并发拨号数 |
PROXY_CONCURRENT_DIAL |
否 | 调整反代并发拨号数 |
不理解的变量先不要填写。空着通常比随便复制网上的值更安全。
九、常见问题
1. 打开 /admin 后跳转、白屏或提示未配置
依次检查:
- 是否添加了大写
ADMIN; - 是否创建了 Workers KV;
- KV 绑定变量名是否为大写
KV; - 变量和绑定是否配置在生产环境;
- 配置后是否重新部署。
2. 出现 Error 1101
可以按下面顺序处理:
- 查看 Cloudflare 部署日志;
- 确认
_worker.js位于上传内容的根目录; - 使用一个全新的 Pages 项目名称重新创建项目;
- 先使用一个最简单的 Pages Direct Upload 示例初始化项目,再上传 EdgeTunnel 压缩包;
- 不要在已经异常的旧项目上反复覆盖而不看日志。
项目作者的图文教程也专门给出了 1101 的初始化处理方式。
3. 主页显示 Welcome to nginx!
这是默认伪装页,不代表失败。请访问:
https://你的域名/admin
4. 修改 ADMIN 后,原来的节点不能用了
在没有固定 UUID 时,ADMIN 或 KEY 的变化可能导致 UUID、订阅 TOKEN 发生变化。重新进入后台复制订阅,并在客户端更新或重新导入即可。
需要长期保持 UUID 不变时,可以提前设置自己的 UUIDv4,但管理密码泄露后仍应优先处理安全问题,而不是为了保持旧订阅继续使用弱密码。
5. 后台能打开,配置却保存不了
多数情况下是 KV 没有正确绑定。检查:
绑定类型:KV 命名空间
变量名称:KV
6. 订阅添加成功,但客户端更新失败
检查:
- 复制的是否是完整 HTTPS 地址;
- URL 前后是否多了空格;
- 是否选错了订阅格式;
- 自定义域名证书是否已经生效;
- 默认
pages.dev或workers.dev在当前网络是否可访问; - 修改密码或 UUID 后是否仍在使用旧地址。
7. 自定义域一直“待验证”
检查 DNS 平台中的 CNAME 或 Cloudflare 自动生成记录是否正确,确认没有同名冲突记录。DNS 和证书签发并非瞬间完成,修改后需要等待一段时间。
十、安全与维护建议
- 不要公开管理地址、密码、订阅 URL 和二维码。
- 为
ADMIN使用独立强密码,不要与邮箱、Cloudflare、GitHub 密码相同。 - 只从项目官方仓库获取
_worker.js和压缩包。 - 项目更新时先阅读 CHANGELOG,再替换生产部署。
DEBUG只在排错时开启,处理完后关闭。- KV 中可能保存配置和操作日志,不要把 Cloudflare 账号借给不可信的人。
- 使用第三方 ProxyIP、SOCKS5、HTTP 代理前,先确认来源、隐私风险和授权范围。
- Cloudflare 免费套餐、请求配额和产品规则可能调整,应以 Cloudflare 当前控制台和官方文档为准。
- 项目仅适合合法、授权的学习研究和网络测试,不要用于未授权访问、攻击或规避应承担的网络管理责任。
总结
第一次部署 EdgeTunnel,不需要把所有概念一次学完。只要记住下面这条主线:
Pages 上传
→ ADMIN
→ KV
→ 重新部署
→ /admin
→ 复制订阅
→ 导入客户端
其中最常见的错误只有两个:忘记把 KV 绑定名写成大写 KV,以及设置变量后忘记重新部署。
基础连接稳定后,再逐步研究自定义域名、固定 UUID、优选订阅、ProxyIP、ECH 和链式代理,会比一开始照抄一大堆高级参数更容易排错。
参考资料
EdgeTunnel 2.1 新手部署与使用教程:从 Cloudflare Pages 到客户端导入
https://wangling.hauchet.cn/archives/edgetunnel-2-1-cloudflare-deploy-guide
评论