Skip to content
微笑鼠 A Smiling Quokka
更新于 2026年4月28日

Cloudflare 免费部署 VPN:Pages、KV 与自定义域实操

整理 Cloudflare Pages + Workers KV + EdgeTunnel 面板的部署流程,并说明免费计划限制、合规风险和更稳妥的替代方案。

这篇文章是视频教程的文字增强版,整理的是 Cloudflare Pages、Workers KV、自定义域和 EdgeTunnel 面板的部署流程。

重要提醒:Cloudflare 的自助服务条款和平台规则会限制把服务主要用作 VPN、开放代理或类似中转用途。本文只适合作为个人学习、临时实验和架构理解参考。正式使用前,请先阅读 Cloudflare Self-Serve Subscription Agreement 和所在地法律法规;如果你的用途涉及多人共享、商业分发、长期流量转发或规避网络管理,请不要按本文部署。

准备工作

你需要提前准备这些东西:

  • 一个 Cloudflare 账号
  • 一个已经托管到 Cloudflare 的域名
  • EdgeTunnel 项目源码或发布压缩包:cmliu/edgetunnel
  • 一个支持导入订阅链接或节点链接的代理客户端
  • 一个随机后台路径,例如 my-admin-20260428

如果只是想体验流程,可以先使用 Cloudflare Pages 默认分配的 pages.dev 域名。更稳定的做法是绑定自己的子域名,例如 vpn.example.com

风险先说清楚

这类方案看起来是“免费部署”,但免费不等于无限制。

  • 条款风险:Cloudflare 可能限制或停止明显的 VPN、代理、中转流量用途。
  • 账号风险:异常流量、滥用投诉、被公开分享的节点,都可能导致项目被封禁或账号受限。
  • 限额风险:Cloudflare Workers 和 Pages Functions 有请求数、CPU、子请求和运行时限制,具体以 Workers Limits 为准。
  • 代码风险:EdgeTunnel 是第三方项目,部署前应阅读源码、Issue 和 README,确认你理解它会生成哪些入口、配置和订阅内容。
  • 域名风险:不要把主站根域名直接用于实验。建议新建独立子域名,便于随时下线和隔离。

如果你想做的是内网访问、远程运维或团队零信任接入,优先看 Cloudflare 官方的 Cloudflare One Connectivity Options,例如 Cloudflare Tunnel、WARP Client 或 Zero Trust 方案。

1. 把域名接入 Cloudflare

如果你的域名还没有接入 Cloudflare,先在 Cloudflare 控制台添加站点,然后按提示把域名注册商处的 nameserver 改成 Cloudflare 提供的 nameserver。

等待 DNS 生效后,在 Cloudflare 的 DNS 页面创建一个准备给 Pages 使用的子域名,例如:

vpn.example.com

这一步可以暂时不填 CNAME,后面在 Pages 里绑定自定义域时 Cloudflare 会引导你补齐。

2. 创建 Workers KV 命名空间

EdgeTunnel 面板需要保存节点配置和订阅数据。进入 Cloudflare 控制台:

Workers & Pages -> KV -> Create namespace

命名空间名称建议用简单可识别的名字,例如:

edge_tunnel

创建后不用手动写入数据,后面把它绑定到 Pages 项目即可。Pages 的绑定规则可以参考官方文档:Pages Functions Bindings

3. 上传 EdgeTunnel 到 Pages

进入 Cloudflare 控制台:

Workers & Pages -> Pages -> Create a project -> Upload assets

把 EdgeTunnel 的源码或打包后的压缩包上传。不同版本的项目结构可能会变化,上传前建议先阅读仓库 README,确认你拿到的是适合 Pages 部署的版本。

项目创建时可以先保持默认设置。部署完成后,Cloudflare 会给你一个临时域名:

https://your-project.pages.dev

先打开这个地址,确认页面可以访问。如果看到报错,不要急着绑定域名,先去部署日志里看具体错误。

4. 设置 ADMIN 环境变量

为了避免后台入口过于明显,需要设置一个后台路径。进入 Pages 项目:

Settings -> Environment variables -> Add variable

添加变量:

ADMIN=my-admin-20260428

这里的值就是你的后台路径。不要使用 adminpanellogin 这类容易被猜到的词,也不要把它公开写在评论区或群聊里。

保存环境变量后,需要重新部署一次项目,变量才会进入新的部署版本。

5. 绑定 KV 到 Pages 项目

继续进入 Pages 项目设置:

Settings -> Functions -> KV namespace bindings -> Add binding

绑定名称必须按项目要求填写。视频流程和 EdgeTunnel 常见部署方式里通常使用:

KV

然后选择前面创建的 edge_tunnel 命名空间。

保存后再次重新部署项目。如果没有重新部署,页面可能仍然读不到 KV,后台也可能无法保存配置。

6. 打开后台面板

部署完成后,访问:

https://your-project.pages.dev/my-admin-20260428

如果已经绑定了自定义域,也可以访问:

https://vpn.example.com/my-admin-20260428

进入面板后,按页面提示生成订阅链接或节点配置。不同客户端的导入方式不完全一样,一般会在客户端里找到“订阅”“从 URL 导入”或“手动添加节点”。

不要把订阅链接公开发布。订阅链接通常等同于访问凭据,被别人拿到后就可能消耗你的免费额度,甚至触发滥用风控。

7. 绑定自定义域

在 Pages 项目里进入:

Custom domains -> Set up a custom domain

填写你准备好的子域名:

vpn.example.com

如果这个域名已经由 Cloudflare 托管,控制台通常会自动创建或提示你创建对应 DNS 记录。更多细节可以看官方文档:Pages Custom Domains

绑定完成后,等状态变成 Active,再使用自定义域访问后台和订阅链接。

客户端导入

打开你的代理客户端,找到订阅或节点导入入口,把面板生成的订阅 URL 粘贴进去。导入后先只做连通性测试:

  • 能否更新订阅
  • 能否连接节点
  • 是否频繁超时
  • 是否出现 Cloudflare 错误页
  • 免费计划额度是否异常消耗

如果只是学习部署流程,测试完成后建议关闭项目或删除订阅,不要长期裸跑。

常见问题

问题检查方向
1101Pages Functions 运行时错误,先看部署日志和函数日志。
1027Workers 免费计划或路由相关限制,检查账号计划、请求量和项目配置。
522回源连接超时,检查自定义域 DNS、代理状态和项目是否正常部署。
后台打不开ADMIN 是否写错,环境变量保存后是否重新部署。
无法保存配置KV 绑定名称是否正确,是否绑定到了正确命名空间。
自定义域不生效Pages 自定义域状态是否 Active,DNS 记录是否冲突。
客户端无法导入订阅链接是否复制完整,客户端是否支持对应协议格式。

更稳妥的替代方案

如果你的目标不是研究第三方代理项目,而是解决真实远程访问需求,可以优先考虑这些官方或更可控的方案:

  • Cloudflare Tunnel:适合把内网 Web 服务、安全面板或 SSH 入口暴露到 Zero Trust 后面。
  • Cloudflare One / WARP Client:适合团队设备接入、身份认证和访问策略。
  • 自建 VPS + 标准 VPN:适合你需要完整控制网络出口、日志、带宽和合规边界的场景。
  • Tailscale / Headscale / NetBird:适合个人设备组网和私有网络互联。

把 Cloudflare 免费计划当作学习实验可以,但不要把它当成长期、稳定、无限量的代理基础设施。