CFnew 独立面板
把 CFnew 控制台、优选操作和订阅生成放在 Vercel,Cloudflare Worker 只负责代理转发和 KV 配置。节点流量直接连接你自己的 Worker,不经过面板。
图文教程:CFnew 独立面板:Vercel 一键部署。
一键部署
- 先部署 CFnew 精简内核,设置 Worker 变量
u为自己的 UUID。需要在线保存配置时,绑定 KV,名称填C或c。已有用户保留原 UUID 和 KV 绑定,兼容日期用2026-01-20。 - 点击上面的 Deploy 按钮,登录 Vercel,按页面提示连接 GitHub 并创建自己的仓库副本。
- Application Preset(旧界面叫 Framework)选择 Other;如果自动识别成 Node,请改为 Other。根目录保持仓库根目录,无需手填构建命令。点击 Deploy,等待完成。
- 打开分配的面板域名,填写自己的 Worker 域名与 UUID 或自定义路径,即可连接。
- 在面板中配置并复制订阅到客户端。订阅使用面板域名;节点的 SNI / Host 与代理入口仍是 Worker。
部署按钮会引导平台登录、Git 授权和创建项目,这些步骤仍需用户在自己的账号完成。项目无需付费数据库或面板 KV。
如果仓库列表为空,先到 Vercel 账号的 Authentication → Sign-in Methods 连接 GitHub,再返回部署页面。
GitHub 中已经有自己的 cfnew-panel 仓库时,在 Vercel 的 New Project → Import Git Repository 选择该仓库即可。通过 Git 连接部署后,推送到 main 会自动更新正式站;其它分支用于预览。已有源码无需删掉重建。
可选变量:w
w 设置在 Vercel 面板项目的 Settings → Environment Variables,变量名为小写。选择 Production;需要预览也生效时同时选择 Preview。保存后重新部署。
| w 的值 | 入口与行为 |
|---|---|
| 不设置或留空 | 公共面板。首页显示 Worker 域名和 UUID / 自定义路径连接表单,可接入任意兼容 Worker。 |
https://your-worker.example.com |
只管理这个 Worker。首页返回 hello,不显示连接表单;通过 https://面板域名/UUID 或自定义路径进入原控制台。 |
只填 Worker 的 HTTPS 根地址,不带 UUID、路径或查询参数。HTTPS 前缀可省略。无效值会拒绝连接;填写后不能通过换查询参数接入其它 Worker。
w 不需要写到 Worker 内核里,也不代替 UUID 验证。面板不能凭这个变量替你隐藏 Worker 的全部网络路径。
固定 Worker 后:
控制台:https://面板域名/你的UUID
订阅: https://面板域名/你的UUID/sub
Clash: https://面板域名/你的UUID/sub?target=clash
如果 Worker 的 d 是 /Admin/Panel,也可用 https://面板域名/Admin/Panel 进入。大小写必须一致。登录后地址自动使用稳定的 UUID,后续修改 d 不影响当前面板重载和已复制订阅。d 是配置入口,tp 是代理传输设置。
让订阅客户端能访问
先用未登录 Vercel 的浏览器打开面板。若被 Vercel 登录页拦住,在 Settings → Deployment Protection 调整 Vercel Authentication,使使用中的部署域名可公开访问。
浏览器登录 Vercel 后能打开面板,不代表客户端能更新订阅。用实际对外域名验证,不能给订阅链接附上 Vercel 账号令牌。
公共模式
首页填写域名和 UUID 即可。也可使用:
控制台:/panel?host=your-worker.example.com&uuid=你的UUID
订阅: /sub?host=your-worker.example.com&uuid=你的UUID
Clash: /sub?host=your-worker.example.com&uuid=你的UUID&target=clash
支持 base64、v2ray、clash、stash、singbox、surge、loon、quanx;开启家宽链式后可使用 target=vg。不指定时按客户端请求头识别。
未绑定 Worker KV 仍可读取环境配置并生成订阅,但页面不能保存。原来直接指向 Worker 的 /sub 需替换成独立面板生成的新订阅。
Free CPU 保护
更新配套内核到 2026.10.17.2,在“配置管理”开启 Free CPU 保护,保存后对新连接生效。默认关闭,旧内核会提示更新。
开启后保留 WS 和 XHTTP:每条连接上下载合计最多 384 KiB 或 96 个数据块,超过就主动断开。新连接重新计算预算;关闭后恢复原来的传输方式。没有 KV 时可设置 Worker 变量 freeCpu=yes 或 FREE_CPU=yes,KV 中的设置优先。
这是按流量和处理次数估算的保护,Worker 无法读取实时 CPU 余量,不能保证所有免费账号零超限。客户端需自行重连,正在进行的下载、视频和长连接可能中断,不会自动续传。
自有服务器与 Docker
Node.js 22:
git clone https://github.com/byJoey/cfnew-panel.git cd cfnew-panel npm start # 可选:固定自己的 Worker w=https://your-worker.example.com npm start
运行不需要 npm 依赖,默认监听 127.0.0.1:3100。用 Nginx / Caddy 反代并启用 HTTPS。不要对外开放未加 HTTPS 的管理入口。
Docker:
docker compose up -d --build
# 固定 Worker 可在 .env 中填写 w,或通过环境变量传给 compose。面板不把 UUID 或配置写入数据库。勾选“记住节点”只保存在当前浏览器;UUID 和订阅地址相当于访问凭据,勿公开分享,反代访问日志建议不记录这些入口。
更新与限制
- 一键部署得到自己的仓库副本。更新面板源码需同步上游并重新部署;修改环境变量也要重新部署。
- 原 WebSocket、XHTTP、出站代理、ECH、IPv6 与客户端订阅生成保留;代理数据面仍由配套核心处理。
- 在线 IP 检测在面板服务器执行,延迟是服务器视角。Vercel 实测 IPv4 检测可用,IPv6 在线检测出现平台出站错误;IPv6 节点生成和 Worker 实际连接已验证,不能用在线检测结果代替客户端测速。
- sing-box 使用 1.12 起的 DNS / 路由格式,内置分流规则,不要求启动时下载规则文件。规则许可见 NOTICE 和
/rules-license。 - 请求正文上限 1 MiB,大量地址可改用在线列表 URL。健康检查为
/health。 - GitHub Pages 只能托管静态页面,不能运行本项目的服务端配置转发、订阅转换和在线检测;本项目使用 Vercel Functions。
开发与验证
npm ci
npm test测试使用内存 KV 与本地隔离 Worker,不访问你的真实 Worker。CFNEW_ALLOW_PRIVATE=yes 仅供隔离测试,线上不要设置。
可生成单独的压缩运行包:
npm run build:vercel -- /一个空目录
规则更新:python3 src/tools/update-singbox-rules.py --revision <完整提交号> --sing-box <可执行文件>。更新后需验证真实客户端的 DNS、代理联网和分流,再发布。
来源与交流
允许任何合法用途的修改、二次开发和 AI 辅助维护。禁止将基于本项目源码的 AI 改写冒充为与本项目无关的完全原创代码;改写相同逻辑、换语言、改名或重排结构后,仍须保留来源和版权说明。可以注明自己实际新增的独立贡献。
本版本采用自定义的 CFnew 源码使用与署名许可,不再标为标准 MIT。此前已按 MIT 发布的版本仍按其原许可使用。来源与第三方许可见 NOTICE.md,内置规则数据继续遵循其原始许可。
本项目供学习与网络技术研究,请遵守当地法律及所用平台的服务条款。