Digital screens display data on a circuit board background

用 DMIT 这类付费 VPS 搭代理节点,稳定性好但有成本。很多人不知道,Cloudflare Workers 有每天 10 万次的免费请求额度,可以用来跑一个完全零成本的 VLESS 节点——作为备用或平替方案,值得每人都部署一个。

本文用的是开源项目 edgetunnel,部署过程 10 分钟以内完成。

原理简介

Cloudflare Workers 是运行在 CF 边缘节点的 JavaScript 函数。edgetunnel 把 VLESS 协议实现在 Worker 里,流量经过 CF 的 CDN 网络中转,绕开直接 IP 识别。

优点:

  • 完全免费(免费计划每天 10 万次请求,足够个人使用)
  • 无需服务器,不存在 IP 被封问题
  • CF 的 IP 段被封概率极低

局限:

  • 速度受 CF 网络质量影响,高峰期不如专线 VPS
  • 不适合大流量下载,适合日常浏览和轻量使用
  • 部分地区对 CF IP 有 QoS

前置准备

  • 一个 Cloudflare 账号(免费注册)
  • 一个域名(可选,但推荐,CF 免费提供 workers.dev 子域名也行)

部署步骤

第一步:Fork 项目到你的 GitHub

打开 https://github.com/cmliu/edgetunnel,点右上角 Fork,复制到自己的账号。

第二步:在 Cloudflare 创建 Worker

  1. 登录 dash.cloudflare.com
  2. 左侧菜单点 Workers & Pages
  3. 点 Create → Create Worker
  4. 给 Worker 起个名字(比如 my-proxy),点 Deploy

第三步:粘贴 Worker 代码

  1. 部署完成后点 Edit code
  2. 清空编辑器里的默认代码
  3. 打开你 Fork 的 GitHub 仓库,找到 _worker.js 文件,复制全部内容
  4. 粘贴到 Worker 编辑器里
  5. 点右上角 Deploy

第四步:配置 UUID(你的连接密码)

UUID 是你节点的唯一标识。生成一个:

# macOS / Linux
uuidgen | tr '[:upper:]' '[:lower:]'

# 输出类似:
# a1b2c3d4-e5f6-7890-abcd-ef1234567890

在 Worker 代码顶部找到 userID 变量,填入你生成的 UUID:

let userID = 'a1b2c3d4-e5f6-7890-abcd-ef1234567890';

或者通过环境变量设置(更安全):

  1. Worker 页面点 Settings → Variables
  2. 添加变量:UUID = 你的 UUID
  3. 点 Save and Deploy

代码里对应改为读取环境变量:

let userID = env.UUID || 'default-uuid';

第五步:绑定自定义域名(可选但推荐)

Workers.dev 域名在部分地区访问不稳定,绑定自己的域名更好:

  1. 前提:域名已托管到 Cloudflare(NS 指向 CF)
  2. Worker 页面点 Settings → Domains & Routes
  3. 点 Add → Custom domain
  4. 填入你的域名,比如 proxy.yourdomain.com
  5. 保存,CF 自动配置 SSL

获取订阅链接

Worker 部署完成后,访问:

https://你的Worker域名/你的UUID

比如:

https://my-proxy.workers.dev/a1b2c3d4-e5f6-7890-abcd-ef1234567890

页面会返回一个 Base64 编码的订阅内容,包含多种协议格式(VLESS、Trojan、VMess)的节点信息。

订阅链接格式

https://你的域名/你的UUID?sub           # 订阅链接(返回所有节点)
https://你的域名/你的UUID?clash         # Clash/mihomo 格式
https://你的域名/你的UUID?singbox       # sing-box 格式

在 mihomo 中使用

方式一:订阅导入(推荐)

直接把 ?clash 格式的 URL 作为订阅链接,粘贴到 Clash/mihomo 的订阅管理里。

方式二:手动配置

proxies:
  - name: "CF-Workers-VLESS"
    type: vless
    server: 你的Worker域名
    port: 443
    uuid: 你的UUID
    network: ws
    tls: true
    ws-opts:
      path: "/"
      headers:
        Host: 你的Worker域名
    client-fingerprint: chrome

优化:选择更快的 CF 优选 IP

edgetunnel 默认走 CF 分配的节点,速度因地区而异。可以通过 CF 优选 IP 工具测速选择延迟最低的节点。

把 Worker 域名里的 IP 替换成延迟最低的 CF IP,速度有时能提升 50% 以上。

工具:CloudflareSpeedTest

# 下载工具
wget https://github.com/XIU2/CloudflareSpeedTest/releases/latest/download/cfst_linux_amd64.tar.gz
tar -xzf cfst_linux_amd64.tar.gz
./CloudflareST

# 测速完成后,结果保存在 result.csv
# 取延迟最低的 IP 替换到节点配置里

和 DMIT VPS 方案对比

对比项CF WorkersDMIT VPS
成本免费$20+/月
速度(日常)中等快(CN2 GIA)
稳定性较好(CF 托管)好
大流量不适合适合
被封风险极低有一定概率
适用场景备用/平替主力节点

推荐策略: DMIT 作为主力,CF Workers 作为备用。两个方案互补,主节点被封期间 CF Workers 顶上,完全无感知切换。

配合 mihomo 的 fallback 机制:

proxy-groups:
  - name: "主力线路"
    type: fallback
    url: http://www.gstatic.com/generate_204
    interval: 30
    proxies:
      - DMIT-HK-Reality
      - CF-Workers-VLESS   # 备用,主力挂了自动切

常见问题

Worker 部署后访问报错 522

Worker 域名没有正常解析。检查:

  1. 域名是否已绑定到 Worker
  2. Worker 是否正常 Deploy(状态显示 Active)

速度很慢

  1. 尝试优选 IP(见上方 CloudflareST 方法)
  2. 检查当前时段,高峰期 CF 节点压力大
  3. 换一个 CF 数据中心城市(可以在优选结果里选不同地区的 IP)

节点连接但无法访问某些网站

检查 Worker 代码里的 proxyIP 配置,部分版本需要填一个出口 IP 才能正常回源。


需要更稳定的主力方案,见:


📷 封面图 · Flux Schnell AI 生成 · panshi.io 品牌风格