使用 Cloudflare Pages 部署
edgetunnel搭建代理节点的方案,是近年来非常流行的一种 Serverless(无服务器) 翻墙技术。核心思想:利用 Cloudflare 遍布全球的边缘计算能力,将代理服务端代码运行在离你最近的 CDN 节点上。
一、名词解释
1.1 Cloudflare(基础设施:全球分发网络)
Cloudflare (CF) 是全球最大的 CDN(内容分发网络)和网络安全公司之一。选择它搭建代理有以下三个关键特点:
| 特性 | 说明 |
|---|---|
| Anycast 任播网络 | CF 在全球拥有数百个数据中心。用户访问时,请求自动路由到物理距离最近的节点 |
| 边缘计算 (Workers/Pages) | 传统 CDN 只分发静态文件,而 CF 允许在边缘节点直接运行代码(JavaScript/WebAssembly),即本次利用的 Workers 和 Pages 功能 |
| 反向代理护盾 | 对后端服务器而言,CF 是反向代理。用户只能看到 CF 的 IP,无法获取真实服务器 IP |
1.2 Edgetunnel(程序逻辑:协议转换网关)
edgetunnel 是运行在 Cloudflare 边缘环境(Workers 或 Pages)中的脚本代码。
| 特性 | 说明 |
|---|---|
| 逻辑核心 | 利用 Node.js 的流处理(Stream)或 fetch API,解析 VLESS 协议 |
| 白嫖服务器 | 通常代理需要一台 VPS,但 edgetunnel 让 Cloudflare 边缘节点充当服务器 |
| 协议转换 | 在边缘节点监听 WebSocket 连接,拆解代理请求并重新发起请求 |
二、工作原理
本架构可拆解为三个核心原理:
2.1 运行载体:边缘计算
传统 VPN 需要购买拥有公网 IP 的 VPS 服务器,而 Cloudflare Pages 提供了 Edge Computing(边缘计算) 能力:
- 代码不运行在固定服务器上,而是分发到全球数百个数据中心
edgetunnel本质是用 JavaScript(或 WebAssembly)编写的反向代理程序- Cloudflare 的 V8 引擎提供运行环境
2.2 传输协议:VLESS + WebSocket (WSS)
Cloudflare CDN 节点默认只处理标准 HTTP/HTTPS 流量,代理数据需进行伪装封装:
| 协议 | 作用 |
|---|---|
| WebSocket (WS) | CF 支持将 HTTP 连接升级为 WebSocket 长连接。代理流量包裹在 WS 数据帧中,表面看像在实时通信 |
| VLESS 协议 | Xray-core 提出的轻量级代理协议。edgetunnel 解析 VLESS,验证 UUID(密码)并提取目标地址 |
2.3 网络拓扑与流量转发
这是最关键的”偷天换日”过程。当你访问 YouTube 时,流量路径如下:
┌─────────────────────────────────────────────────────────────────────────┐
│ 用户设备 (Client) │
│ ↓ 封装: TLS [ WS [ VLESS [ Data ] ] ] │
├─────────────────────────────────────────────────────────────────────────┤
│ 防火墙 (GFW) │
│ ↓ 检测 SNI 和协议特征 → 识别为标准 HTTPS 访问,放行 │
├─────────────────────────────────────────────────────────────────────────┤
│ CF Pages (边缘节点) │
│ ↓ 1. TLS 解密 2. 建立 WebSocket 连接 3. Edgetunnel 校验 VLESS UUID │
├─────────────────────────────────────────────────────────────────────────┤
│ 目标网站 (Target) │
│ ← 以机房身份发起 Raw TCP/HTTP 请求 │
│ → 返回原始网页数据 │
├─────────────────────────────────────────────────────────────────────────┤
│ CF Pages (边缘节点) │
│ ↓ 重新进行 VLESS + WS + TLS 封装 │
├─────────────────────────────────────────────────────────────────────────┤
│ 用户设备 (Client) │
│ ← 通过建立好的隧道回传数据 → 客户端解包后呈现内容 │
└─────────────────────────────────────────────────────────────────────────┘
三、方案优缺点
✅ 优势
| 优势 | 说明 |
|---|---|
| 完全免费 | 只要流量不极其夸张,Cloudflare Pages 免费额度(每天 10 万次请求)对个人绝对够用 |
| 抗封锁能力强 | Cloudflare IP 数量庞大且属于商业 CDN IP,GFW 难以全面封杀(易误杀正常外贸业务) |
| 免维护服务器 | 无需操心 Linux 系统安全更新、DDoS 防护等运维问题 |
⚠️ 劣势/风险
| 劣势 | 说明 |
|---|---|
| 速度受限与优选 IP 依赖 | 如不通过脚本寻找并绑定”优选 IP”,国内直连 Cloudflare 节点延迟往往很高 |
| Cloudflare 封号风险 | edgetunnel 本质是将 CF 的 Web 服务滥用成大流量隧道代理,违反 ToS。单账户月流量达几百 GB ~ TB 级别极易被封禁 |
四、部署步骤
4.1 准备工作
| 项目 | 链接 |
|---|---|
| Cloudflare 平台 | https://dash.cloudflare.com/ |
| edgetunnel 源码 | 点击下载 ZIP |
4.2 必选步骤
Step 1:创建 KV 存储空间
进入 Cloudflare 控制台:
左侧栏 → 存储和数据库 → Workers KV → Create Instance
填写实例名称(如 helloworld-kv),然后创建。
💡 KV 是什么:存储数据库,用于存放
edgetunnel运行所需的配置数据。
Step 2:部署 Pages 脚本
左侧栏 → 计算 → Workers 和 Pages → 创建应用程序
→ 选择 "Pages" → 拖放文件上传
→ 项目名(如 helloworld)
→ 上传提前下载的 edgetunnel 压缩包
→ 部署站点
Step 3:设置管理员密码
部署完成后:
点击 "继续处理站点" → 设置 → 环境变量
→ "制作" 为生产环境定义变量 → 添加变量
| 变量名称 | 值 |
|---|---|
ADMIN |
你的管理员密码 |
点击 保存。
Step 4:绑定 KV 命名空间
Workers 和 Pages → 点击项目名 → 设置 → 绑定
→ + 添加 → KV 命名空间
| 变量名称 | KV 命名空间 |
|---|---|
KV |
刚创建的 KV 实例 |
点击 保存,然后重新部署。
Step 5:进入 edgetunnel 后台
部署完成后,在 Workers 和 Pages / helloworld 页面找到 生产域,访问地址:
https://helloworld-a0f.pages.dev/login
输入 ADMIN 密码登录,即可在 获取节点链接 中复制节点。
Step 6:速度优化(重要)
⚠️ 默认网络质量较差,建议进行以下优化
登录后台后,点击 “我是高手!我就要折腾!”,进行如下配置:
① 基础优化
- 详细配置信息 → 勾选 “启动 0-RTT”
- Encrypted Client Hello → 勾选 “启动”
💡 ECH 说明:WS + TLS 节点通信内容虽已加密,但 TLS 握手阶段仍会暴露 SNI(节点伪装域名 HOST)。ECH 将 SNI 也加密,外部观察到的域名统一显示为
cloudflare-ech.com。
② 订阅转换配置
订阅转换配置 → 选择:
"识别多地区、CloudFlareCDN负载均衡CF节点专用CM_Online_Full_multiMode_CF"
③ 添加优选 IP
进入 bestcf 获取推荐 IP,然后在后台配置:
优选订阅生成 → 选择 "自定义订阅(支持汇聚订阅)"
→ 填入优选地址
推荐优选订阅地址:
https://bestcf.pages.dev/domain/all.txt
https://bestcf.pages.dev/vps789/top20.txt
https://bestcf.pages.dev/gslege/Cfxyz.txt
https://bestcf.pages.dev/gslege/SG.txt
https://bestcf.pages.dev/gslege/JP.txt
https://bestcf.pages.dev/gslege/US.txt
https://raw.githubusercontent.com/HandsomeMJZ/cfip/refs/heads/main/best_ips.txt
Step 7:获取节点链接
展开 获取节点链接,根据客户端类型(v2rayN / sing-box / Clash 等)获取对应订阅链接。
4.3 可选步骤:自定义域名
使用 dnshe 注册免费域名(送 5 个永久免费域名,根域名选择
ccwu.cc或cc.cd)
Step 1:创建域名
登入 dnshe:
Free Domains → 注册新域名
获取新域名(如 zilong78.cc.cd)。
Step 2:申请 DNS 服务器
登入 Cloudflare:
账户主页 → 域 → 添加域名
→ 粘贴新域名(zilong78.cc.cd)
→ 继续 → 选择 Free 计划
→ 继续前往激活
→ 复制 CF 分配的两个 DNS 服务器地址
Step 3:绑定 DNS 服务器
① 在 dnshe 中配置
新域名 → DNS 服务器 → 添加 CF 的两个 DNS 服务器
→ 保存配置
② 在 Cloudflare 中确认
回到 CF 页面 → 点击 "我已更新名称服务器"
→ 等待约 2 分钟完成注册
Step 4:配置自定义域名
① 添加自定义域
Workers 和 Pages / helloworld → 自定义域
→ 添加域名(如 zilong78.cc.cd)
→ 确认新 DNS 记录(此时暂停)
② 添加 DNS 记录
CF → 域 → 选择刚创建的域名
→ DNS 记录 → 添加记录
→ 填写上一步显示的 "确认新 DNS 记录" 信息
→ 保存
③ 激活域名
回到 "确认新 DNS 记录" 界面
→ 点击 "激活域"
→ 等待约 2 分钟完成
Step 5:更新节点伪装域名
通过自定义域名访问 edgetunnel 后台:
https://zilong78.cc.cd/login
更新 “节点伪装域名” 为你的自定义域名。
五、自定义域名的好处
使用自定义域名替换默认的 *.pages.dev 域名,有以下优势:
| 好处 | 说明 |
|---|---|
| 规避域名封锁 | pages.dev 域名在某些地区已被针对性干扰,自定义域名可有效规避 |
| 提升隐蔽性 | 自定义域名看起来像普通个人网站,降低被识别为代理服务的风险 |
| 防止关联封禁 | 即使单个域名被封,只需更换新域名即可恢复,不影响 Cloudflare 账户 |
| 灵活管理 | 可随时更换域名、切换 DNS 解析,拥有完全控制权 |
| 支持更多功能 | 自定义域名可配合 ECH 加密,进一步隐藏 SNI 信息 |
💡 建议:即使是免费域名,也比默认的
pages.dev域名更稳定可靠。