项目地址:byJoey/cfnew(当前默认分支
core-only)· 内核版本 2026.10.17.2 · 热度约 1.7 万 Star / 8524 Fork(2026-11 仓库页数据)· 独立面板:cfnew.xy.kg(源码 byJoey/cfnew-panel)· 作者:博客 / YouTube @joeyblog
CFnew 走的是和全家桶面板相反的路线:把内核做到极致精简,把面板拆出去。精简内核只有 37,806 字节,比原完整版小了约 92%,只负责代理转发;控制台、优选操作和订阅生成全部交给独立面板。流量直接连你自己的 Worker,订阅域名是面板、节点入口还是你的 Worker。本文按官方 README 与完整变量表的最新口径(2026.10.17.2)写全两种部署、变量、协议与客户端的对应关系和常见问题。提醒:本项目供学习与网络技术研究,请遵守当地法律法规与平台条款。
先搞清结构:内核 + 面板两件套
- 内核(部署在你自己的 Cloudflare Workers / Pages):只做 VLESS WS / Trojan WS / VLESS XHTTP 转发,打开 Worker 首页只显示
hello,这是预期行为 - 面板(独立项目):用官方公共面板 cfnew.xy.kg 即可,也可以自己部署一份(Vercel 一键部署,见 cfnew-panel 仓库)。在面板里填你的 Worker 域名 + 同一个 UUID,就能读配置、改设置、生成订阅
- 保存配置需要 KV:内核绑定 KV(绑定名
C或c)后才能在面板在线保存;不绑 KV 也能用——读环境变量配置、生成订阅,只是不能在线保存 - 配置优先级:KV 已保存的配置 > 环境变量 > 内置默认值。这条很关键:改了环境变量不生效,多半是 KV 里存过同名值在覆盖它
准备工作
- 一个 Cloudflare 账号(免费计划即可)
- 一个 UUID:用任意 UUID 在线生成器生成并记好,它既是节点密码也是面板登录凭据;也可以让面板帮你生成(自己生成可用命令:Mac/Linux 终端
uuidgen,Windows PowerShell[guid]::NewGuid().ToString()) - 决定部署在 Pages 还是 Workers(两者内核相同,只是承载方式不同),下载对应的文件
- 一个客户端(按文末的协议对应关系选)
第一步:下载对的文件
| 部署方式 | 下载文件 | 怎么用 |
|---|---|---|
| Cloudflare Pages | 发行页的 Pages.zip | 整包直接上传,不用解压;包根目录只有 _worker.js |
| Cloudflare Workers | 发行页的 _worker.js | 在 Worker 编辑器里完整替换代码再部署 |
| 校验 | SHA256SUMS.txt | 用 SHA-256 核对下载文件完整性 |
下载入口:最新版发行页。两个坑别踩:GitHub 自动生成的 Source code(zip/tar.gz)是整个仓库源码,不能当 Pages 部署包上传;仓库里的 pages.zip 与发行的 Pages.zip 字节一致,用哪个都行。部署前先自己生成一个 UUID 备用(面板登录凭据就是它)。
部署方法一:Cloudflare Pages
- 下载
Pages.zip - Cloudflare 控制台 → Workers 和 Pages → 创建应用 → Pages → 直接上传/上传资产,创建项目,整包上传并部署
- 项目「设置 → 变量和机密」,在生产环境添加文本变量
u,值填你的 UUID(大写U也支持) - 需要在线保存设置时:新建一个 KV 命名空间,在项目绑定设置里添加 KV 绑定,绑定名填
C或c - 兼容日期设置为
2026-01-20 - 添加变量、绑定、改兼容日期之后重新部署一次,新设置才进生产版本
- 用
pages.dev地址或给项目绑自己的域名,然后接入面板(见下节)
如果 Pages 页面只让拖文件夹:解压后上传包含 _worker.js 的目录,确保 _worker.js 在上传内容的根目录。
部署方法二:Cloudflare Workers
- 新建 Worker,先完成一次初始部署,再进代码编辑器
- 下载
_worker.js,把内容完整粘贴替换编辑器里的代码(ES Module 格式,保留import和export default;不要复制 GitHub 网页渲染出来的 HTML),保存并部署 - 「设置 → 变量和机密」添加
u= 你的 UUID;要在线保存再加 KV 绑定C或c - 兼容日期设为
2026-01-20,重新部署后绑可用域名 - 打开 Worker 首页显示
hello就是成功了,管理和订阅都去独立面板
接入面板、拿订阅
- 打开 cfnew.xy.kg,填你自己的 Worker 域名和同一个 UUID。域名填 HTTPS 根地址,不带 UUID、不带路径和查询参数
- 在配置管理里选协议、优选来源、出站方式等,点保存(没绑 KV 时只能读配置、生成订阅,不能保存)
- 复制面板生成的订阅地址,导入客户端。注意:订阅域名是面板的,节点的 SNI / Host 和实际代理入口仍然是你的 Worker
- UUID、自定义路径和完整订阅链接都等于钥匙,妥善保管;面板里「记住节点」只存在当前浏览器,删掉已保存节点不会删 Worker 或 KV 里的配置
自部署面板(Vercel 一键部署,可选)
不想用公共面板,可以把面板部署到自己的 Vercel(源码 byJoey/cfnew-panel,作者有 图文教程):
- 点仓库里的「Deploy to Vercel」按钮,登录 Vercel 并连接 GitHub,创建仓库副本(名字可用
cfnew-panel) - 项目设置:根目录保持
./,Application Preset(框架预设)选 Other(被自动识别成 Node 时手动改回),不用填构建命令,点 Deploy - 等状态变 Ready,用分配的
项目名.vercel.app打开即是你的面板(公共模式:首页填 Worker 域名 + UUID 使用)
只给自己用时,在 Vercel 面板项目(不是 Worker)里再加一个变量收紧入口:
| 项目 | 填写内容 |
|---|---|
| Name | w(小写) |
| Value | https://你的Worker域名(只填根地址,不带 UUID、/sub 或路径) |
| Environment | Production(如需预览环境也生效再勾 Preview) |
保存后对正式部署执行一次 Redeploy 才生效。设了 w 之后:面板首页只显示 hello(正常),控制台从 https://面板域名/你的UUID 进入,订阅是 https://面板域名/你的UUID/sub?target=clash(target 可换 singbox / surge / loon / quanx / stash / base64 / v2ray,不带 target 时按客户端请求头自动识别)。面板绑自己的域名时,DNS 的 CNAME 要设为仅 DNS(灰云),且不要和 Worker 的域名共用同一个完整域名。
两个高频坑:
- 浏览器能打开、客户端更新订阅失败:多半是 Vercel 的 Deployment Protection(Vercel Authentication) 把未登录请求拦了——到面板项目 Settings → Deployment Protection 放行该域名的公开访问,再让客户端更新
- 改了
w没变化:确认变量加在面板项目、环境选对,并已 Redeploy;旧的 Preview 链接仍是旧变量,用正式域名验证
常用变量(全 32 项见官方完整变量表)
变量加在 Worker / Pages 项目里;除 u 和 KV 绑定外,大多数设置可以直接在面板改,不必逐项加变量。
| 变量 | 默认 | 用途 |
|---|---|---|
u / U | 自行设置 | 代理 UUID,也是面板登录凭据 |
C / c | 未绑定 | KV 命名空间绑定(在线保存配置用),不是普通文本变量 |
d / D | 空 | 自定义面板登录路径,如 /Admin/Panel |
ev / et / ex | yes / no / no | 分别开 VLESS WS、Trojan WS、VLESS XHTTP |
p / P | 空 | 指定 ProxyIP,支持 host:port 与 [IPv6]:port |
s / S | 空 | SOCKS5 / HTTP / HTTPS 出站代理 |
qj / QJ | 空 | 出站策略:空=代理优先,no=直连优先,only=只走代理 |
yx / YX | 空 | 手填优选地址列表,每行一个,可带端口和备注 |
yxURL 等 | 空 | 在线优选列表地址,配合面板「仓库优选」开关 |
jk / JK | no | 开家宽链式订阅,面板出现「CLASH 家宽」入口 |
freeCpu / FREE_CPU | no | Free CPU 预算保护(见下节) |
完整变量表:docs/variables.md(32 项配置、别名、默认值、请求参数与 API 都在里面)。
协议与客户端对应关系(最容易踩坑的一节)
| 功能 | 支持情况 |
|---|---|
| 入站 | VLESS WebSocket、Trojan WebSocket、VLESS XHTTP(不支持 Shadowsocks 入站) |
| XHTTP | HTTP/2 + stream-one;不要改 packet-up / stream-up,auto 也不保证兼容 |
| 出站 | 直连、ProxyIP 回退、SOCKS5、HTTP、HTTPS |
| DNS | VLESS 的 UDP DNS 转发;不提供通用 UDP / 游戏 UDP / QUIC 隧道 |
| 订阅格式 | Base64/V2Ray、Clash、Stash、sing-box、Surge、Loon、Quantumult X;sing-box 用 1.12+ 配置格式 |
按客户端开协议:
- Surge:必须开
et=yes(Trojan)。Surge 订阅只输出 Trojan,只开 VLESS 时生成不出节点 - Clash / Mihomo、sing-box、Loon、Quantumult X:用 VLESS 保持
ev=yes。这些格式会把 XHTTP 来源转换成 WS,只开ex、关了ev,生成的 VLESS 节点会不可用 - 支持 XHTTP 的客户端:开
ex=yes,用 Base64/VLESS 分享链接导入,保持 HTTP/2 与stream-one
优选地址怎么填
优选域名、优选 IP、仓库优选默认开启,IPv4/IPv6 与三网筛选默认开启;有手填列表时优先用手填的。
104.16.1.1:443#手填IPv4
[2606:4700::1111]:8443#手填IPv6
edge.example.com:443#手填域名每行一个,也支持英文逗号分隔;端口会保留到订阅里;IPv6 带端口必须加方括号(以上地址只示意格式,不保证从你的网络可用)。在线列表填 yxURL 并开「仓库优选」,可在面板获取、筛选、测试后勾选保存。注意面板显示的是面板服务器视角的延迟,实际体验以客户端实测为准;手填优选列表上限 262144 字符,再大就改用在线 URL。
自定义路径登录
设置 d=/Admin/Panel 后,在公共面板第二项填 /Admin/Panel 或 Admin/Panel 即可登录,支持多级路径与中文、大小写必须一致。登录成功后面板会读取真正的代理 UUID 并生成稳定入口,所以改了 d 之后,原来复制的 UUID 订阅仍然可用(d 是管理入口;tp 是 Trojan 密码与 XHTTP 兼容路径,用途不同,别混)。旧内核不支持自定义路径时,先用 UUID 进入再更新 _worker.js。
Free CPU 保护(2026.10.17.2 新增)
默认关闭。面板里开启保存,或设变量 freeCpu=yes / FREE_CPU=yes(KV 设置优先)。开启后单条连接共享 384 KiB / 96 个数据块的预算,超了主动断开、客户端需重连;新连接重新计算,开关修改只对新连接生效。要说清的是:这是流量与处理次数预算,不能保证免费账号 CPU 零超限;正在进行的下载、视频和长连接可能被中断,也不保证自动续传——长下载多的场景慎开。
从旧完整版升级
- 备份原 Worker 代码,记下原
u、KV 绑定、域名和兼容日期 - 上传本版
_worker.js或Pages.zip,保留原 UUID 和原 KV 绑定,兼容日期设2026-01-20,重新部署(上传新内核不会主动清空 KV) - 打开独立面板,用原域名 + UUID 登录,确认原有配置还在
- 从面板重新复制订阅到客户端——旧的
https://Worker域名/UUID/sub地址不再生成订阅 - 检查协议与客户端兼容性(本版 XHTTP 用
stream-one);想回退就把备份的旧代码按原样重新上传,再换回完整版订阅入口
常见问题与检查维修
| 现象 | 先检查 |
|---|---|
打开 Worker 只有 hello | 正常,去独立面板登录 |
| 面板接入/鉴权失败 | 域名能否公网访问、u 是否已随部署生效、UUID 是否一致;自定义路径查大小写;Cloudflare Access 或验证码挑战会阻断 API |
| 能生成订阅但保存失败 | KV 是否绑为 C/c、是否绑到生产环境、绑定后是否重新部署 |
| 改环境变量不生效 | 先重新部署,再查 KV 里有没有同名旧值在覆盖 |
| 旧订阅地址失效 | 从独立面板重新复制订阅 |
订阅拿到 hello/HTML | 是不是用了 Worker 首页地址,或面板被 Vercel 登录保护拦住 |
| XHTTP 不通 | 开 ex、客户端支持 XHTTP、HTTP/2、stream-one 三件套对齐 |
| 下载一会儿就断 | 查 Free CPU 保护是否开启且已达预算 |
| Pages 上传失败 | 用发行里的 Pages.zip,别传整个源码包;解压确认 _worker.js 在根目录 |
视频教程
- 作者官方视频教程(YouTube):CFnew 部署教程
- CFnew Vercel 部署教程:独立面板+精简 Worker:对应当前精简内核形态,面板部署到 Vercel + 内核部署到 Worker,变量一次讲清
- 作者官方:CFnew 自动更新教程:Pages + GitHub Actions 每 6 小时同步上游自动更新(含工作流读写权限这个必踩的坑)
- 作者官方:CFnew v3.1 免费家宽:家宽链式开启方法与兼容日期避坑
- 作者博客:joeyblog.net · Telegram:t.me/+ft-zI76oovgwNmRh
和同系列另外两款的区别
- edgetunnel:全家桶面板的成熟代表,协议含 Shadowsocks,教程与社区资源最多,见《edgetunnel 2.1 部署教程》
- CFNext:功能最全的订阅管理面板,MASQUE / 家宽 / 多后端聚合,见《CFNext 部署教程》
- CFnew 的定位是轻内核 + 外置面板:转发层小而透明、变量与口径全公开,适合在意可控性和想少被面板绑架的人
资料来源
- 项目仓库 README 与完整变量表(2026-11,内核 2026.10.17.2):https://github.com/byJoey/cfnew
- 独立面板仓库:https://github.com/byJoey/cfnew-panel
还没有评论,来抢沙发。