把代理转发留在 Cloudflare,把控制台、优选操作和订阅生成交给独立面板。内核 37,806 字节,较原完整版本减少约 92%。节点流量直接连接你自己的 Worker。
当前默认分支是 core-only。旧完整版保留在 main,旧版发行是 v3.1。独立面板源码在 cfnew-panel。
- 打开 cfnew.xy.kg,填写自己的 Worker 域名和同一个 UUID。域名填 HTTPS 根地址,不带 UUID、路径或查询参数。
- 在配置管理中选择协议、优选来源、出站方式等,点击保存。未绑定 KV 时可以读取环境配置、生成订阅,不能在线保存。
- 复制面板生成的订阅地址,导入对应客户端。订阅域名是面板,节点的 SNI / Host 和实际代理入口仍是你的 Worker。
也可以自己部署面板。Vercel 部署步骤和可选变量 w 见该仓库;w 设置在面板项目,不要填到 Worker。
UUID、自定义路径和完整订阅链接都能用于访问你的配置,请妥善保管。“记住节点”只保存在当前浏览器,删除已保存节点不会删除 Worker 或 KV 配置。
Windows、macOS、Linux 都用同一份文件,按部署方式选择即可。
| 部署方式 | 下载文件 | 怎么用 |
|---|---|---|
| Cloudflare Pages | Pages.zip | 整包直接上传,不用解压。包根目录只有 _worker.js。 |
| Cloudflare Workers | _worker.js | 在 Worker 编辑器中完整替换代码,再部署。 |
| 校验下载 | SHA256SUMS.txt | 用 SHA-256 核对文件是否完整。 |
仓库里的 pages.zip 与发行的 Pages.zip 字节一致。GitHub 自动生成的 Source code (zip / tar.gz) 是整个仓库源码,不能直接当 Pages 部署包上传。
准备一个 Cloudflare 账号,以及自己生成的 UUID。所有示例里的域名和凭据都要换成自己的。
- 下载上面的
Pages.zip。 - Cloudflare 控制台 → Workers 和 Pages → 创建应用 → Pages → 直接上传 / 上传资产。创建项目,把整个
Pages.zip上传并部署。 - 项目设置 → 变量和机密,在生产环境添加文本变量
u,值填自己的 UUID。大写U也支持。 - 需要在面板保存设置时,创建一个 Workers KV 命名空间,在 Pages 项目的绑定设置中添加 KV,绑定名称填
C或c。 - 兼容日期设置为
2026-01-20。添加变量、绑定或更改兼容日期后,重新部署,使新设置进入生产版本。 - 使用可访问的
pages.dev地址,或给项目绑定自己的域名,然后按上面的步骤接入面板。
Pages 页面若只允许拖文件夹,可把压缩包解压后上传包含 _worker.js 的目录,确保它在上传内容的根目录。
- 新建 Worker,先完成初始部署,再进入代码编辑器。
- 下载
_worker.js,把文件内容完整粘贴到编辑器。使用 ES Module 格式,保留import和export default,保存并部署;不要复制 GitHub 网页的 HTML。 - 在设置 → 变量和机密中添加
u,值填自己的 UUID;需要在线保存设置时,添加名为C或c的 KV 绑定。 - 兼容日期设为
2026-01-20,重新部署后绑定可用域名。
打开 Worker 首页显示 hello 就是本版预期行为。管理页面和订阅已经移到独立面板,不在 Worker 首页。
变量设置在 Cloudflare 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 / YXURL / YX_URL |
空 | 在线优选列表地址,搭配“仓库优选”开关使用。 |
jk / JK |
no |
开启家宽链式订阅,面板会提供“CLASH 家宽”入口。 |
freeCpu / FREE_CPU |
no |
Free CPU 预算保护,达到预算会断开连接。 |
全部 32 项配置、环境变量别名、默认值、请求参数和 API →
配置优先级是 KV 已保存的配置 > 环境变量 > 内置默认值。因此修改环境变量后,KV 里保存过的同名值仍会覆盖它。通过面板修改并保存,或按完整变量表说明清理对应 KV 字段。环境变量更改后需要重新部署。
| 功能 | 当前支持 |
|---|---|
| 代理入站 | VLESS WebSocket、Trojan WebSocket、VLESS XHTTP。 |
| 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,按客户端适配。 |
| 家宽链式 | 开启 jk 后使用面板的“CLASH 家宽”订阅;依赖外部节点,速度和可用性会变化。 |
sing-box 使用 1.12 及以上版本的配置格式。不同客户端能用的协议不同,优先用面板提供的对应入口。精简内核不提供 Shadowsocks 入站。
| 客户端 | 协议怎么开 |
|---|---|
| Surge | 开启 et=yes。当前 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。 |
优选只改变客户端连接的入口地址,节点的 Host / SNI 仍使用你的 Worker 域名。第三方 ProxyIP、在线优选源、订阅转换服务和家宽节点的可用性由各自提供方决定。
优选域名、优选 IP、仓库优选默认开启,IPv4 / IPv6 与三网筛选也默认开启。有手填列表时优先使用手填内容。
104.16.1.1:443#手填IPv4
[2606:4700::1111]:8443#手填IPv6
edge.example.com:443#手填域名
每行一个,也支持英文逗号分隔。端口会保留到订阅;IPv6 带端口时必须加方括号。上述地址只用于说明格式,不代表从你的位置连接一定可用。
在线列表填到 yxURL,并开启“仓库优选”。可以获取在线列表、筛选、测试,然后把勾选结果覆盖或追加保存。
检测由面板服务器发起,使用你的 Worker 域名作为 Host / SNI。显示的是面板服务器视角的延迟,实际体验以客户端测试为准。Vercel 的 IPv6 在线检测可能受平台出站限制,不代表 IPv6 节点一定不可用。
手填优选列表上限 262144 字符,配置请求正文上限 1 MiB。更大的列表改用在线 URL。
设置 d=/Admin/Panel 后,在公共面板的第二项填 /Admin/Panel 或 Admin/Panel 即可。支持多级路径、中文与前后斜杠,大小写必须一致。
登录成功后面板会读取真正的代理 UUID,并用 UUID 生成稳定入口。因此更改 d 后,原来已复制的 UUID 订阅仍可用。d 是管理入口,tp 用于 Trojan 密码与 XHTTP 兼容路径,两者用途不同。UUID 和自定义路径接口可以同时使用。
旧内核若不支持自定义路径登录,可以先用 UUID 进入,再更新 _worker.js。
配套版本 2026.10.17.2 新增,默认关闭。可在面板开启并保存,或设置 Worker 变量 freeCpu=yes / FREE_CPU=yes;KV 中的设置优先。
开启后,单条连接上下载共用 384 KiB / 96 个数据块的预算。超过任一项就主动断开,客户端需要重新连接。新连接重新计算,重试出站不会重置当前预算。开关修改对新连接生效。
这是流量和处理次数预算,不能保证免费账号 CPU 零超限。正在进行的下载、视频和长连接可能中断,也不保证自动续传。旧内核缺少该功能时面板会提示升级。
- 备份原有 Worker 代码,记下原
u、KV 绑定、域名和兼容日期。 - 上传本版
_worker.js或Pages.zip,保留原 UUID 和原 KV 绑定,兼容日期设为2026-01-20,重新部署。 - 打开独立面板,用原域名和 UUID 登录,确认保存的配置仍在。
- 重新复制面板生成的订阅到客户端。 旧
https://Worker域名/UUID/sub或 Worker/sub地址不再生成订阅。 - 检查协议和客户端兼容性;本版 XHTTP 使用
stream-one,不支持的旧协议需在面板重新选择。
上传内核不会主动清空 KV。切换前保留旧代码,可以按原样重新上传回退;回退到完整版时也换回该版本的订阅入口。
面板与核心同版时不显示更新提示。不一致或旧内核没有版本标记时,面板会显示双方版本和下载入口。
| 现象 | 先检查 |
|---|---|
打开 Worker 只有 hello |
正常。请从独立面板登录。 |
| 面板无法接入 / 鉴权失败 | 域名是否可公网访问、u 是否已部署、UUID 是否一致;自定义路径检查大小写。Cloudflare Access 或验证码挑战会阻断 API。 |
| 能生成订阅,但保存失败 | KV 是否绑定为 C 或 c,是否绑定到生产环境,绑定后是否重新部署。 |
| 改环境变量不生效 | 先重新部署,再检查 KV 里是否已有同名配置覆盖它。 |
| Worker 的旧订阅地址失效 | 从独立面板重新复制订阅。 |
客户端订阅拿到 hello / HTML |
检查是否用了 Worker 首页,或面板被 Vercel 登录保护拦住。 |
| XHTTP 不通 | 开启 ex,使用支持该协议的客户端、HTTP/2 和 stream-one。 |
| 下载一会儿就断 | 检查 Free CPU 保护;开启后达到预算会主动断开。 |
| Pages 上传失败 | 使用发行里的 Pages.zip,别上传整个源码包;解压检查 _worker.js 是否在根目录。 |
维护者在 core-only 更新后,可运行以下命令校验和打包:
python3 scripts/package-release.py --output dist --tag v2026.10.17.2脚本会检查内核版本、仓库 pages.zip 与 _worker.js 一致,再生成 Pages.zip、_worker.js、SHA256SUMS.txt。推送匹配版本的 v20* 标签后,由本分支工作流创建发行;每个版本的说明放在 docs/releases/版本号.md。不要对旧版 main 打新内核标签。
沿用项目来源说明:基于 zizifn/edgetunnel 修改,ProxyIP 部分参考 cmliu,反代 IP 来源包括 qwer-search,在线优选接口来源包括 白嫖哥。独立面板及其第三方规则的许可见 cfnew-panel。
本项目供学习与网络技术研究,请遵守当地法律及所用平台的服务条款。