CFNext README

The project's README from github.com/PAICNI/CFNext. As one markdown file: README.md.

CFNext 订阅管理器

CFNext —— 部署在 Cloudflare Workers / Pages 的代理订阅管理面板,单文件同时实现 VLESS / Trojan / XHTTP 多协议代理与图形化配置:/UUID(或自定义路径)进入面板,/sub 输出订阅;内置节点优选器、节点数量控制、轮询下发、ECH 加密、落地与出站代理及地区 / 运营商 / IP 版本多维筛选,部署即用,绑定 KV 后改完即生效。

Telegram 交流群 YouTube 频道


更新日志 _V2.3.0(祝各位国庆快乐!)

✨ 更新内容

🐛 BUG 处理


更新日志 _V2.2.0

✨ 更新内容

🐛 BUG 处理


更新日志 _V2.1.0

✨ 更新内容

🐛 BUG 处理

1.修复2.0版本下发的配置文件在SingBox客户端无法启动的两处问题,


更新日志 _V2.0

✨ 更新内容

🐛 BUG 处理

  1. 修复 Issues 反馈的开启 ECH 后,通过 Clash / Mihomo 订阅下发 ECH 不生效的问题(mihomo 规范为顶层 ech-opts,旧格式 tls-opts.ech 不被识别)
  2. 修复 XHTTP 节点在 mihomo / Nekobox 下导入报错的问题(主机字段改为规范顶层 host,headers.Host 会被误读为请求标头)
  3. 修复 XHTTP 节点在 Clash 下全部超时的问题(stream-one 依赖 HTTP/2 双向流,xhttp 节点 alpn 强制 h2,ws 节点保持 http/1.1)
  4. 修复原生地址不受面板开关控制下发的问题(新增「地址来源」开关,原生地址默认关闭不下发)
  5. 修复内置反代 IP 节点默认下发的问题(proxyip.*.cmliussss.net 不再自动塞进订阅,需要反代请自行填写)
  6. 修复 AsteriskNG / v2rayNG 无法加载配置文件的问题(下发回滚明文与 1.x 版本保持一致,避免客户端按 GBK 解码 base64 导致乱码 / 加载失败)
  7. 修复 Surfboard 下发的配置文件为空的问题:Surfboard 分支改为输出 Surge 风格配置,VLESS 节点全部转换为 Trojan(密码 = UUID,与 Worker 服务端一致),过滤 XHTTP 与明文端口节点(Surfboard 不支持 XHTTP;Trojan 定义内嵌 TLS,明文端口无法握手)
  8. 修复出站代理不可达时永久挂起的问题(所有出站连接统一 6 秒超时快速失败,及时走反代兜底)
  9. 修复 TLS 握手中途被截断的问题(SOCKS5 / HTTP 代理握手残留字节不再丢弃,转发前补发给客户端,解决 Telegram 等"连接通但流量为 0")
  10. 修复代理账号密码含 URL 编码字符认证失败的问题(user:pass 中 %40/@、%28/() 等先解码再认证)
  11. 修复自定义域名部署明文端口节点全部不可用的问题(非 *.workers.dev 自动开启仅 TLS,实测自定义域名明文端口被 CF 边缘拒绝)
  12. 修复 QuanX 节点 IPv6 格式与证书校验问题(IPv6 补方括号避免端口歧义,tls-verification 改为 true)
  13. 优化云端测活机制,移除大测活块对齐 1.x 版本,仅保留初始化测活(测活仍存在 4 处:1. 首次初始化测活,2. fillCount 补足小范围测活,3. 优选域名测活,4. 节点数量控制补足测活)
  14. 优化 KV 读写:配置读取走 30 秒边缘缓存(太长影响更改保存写入),轮询窗口仅在内容实际变化时写入(KV 免费写配额仅 1000 次/日)
  15. 修复了混淆版下发节点乱码的问题,混淆器把代码里 '\uFFFD' 转义字面量改写成空格判定, bestcf 源(行内含空格)被误判 GBK, "香港 / 台湾 / 美国" 乱码;

更新日志 _V1.0.6

🐛 BUG 处理

1. 筛选设置勾选「IPv6」但实际只下发 IPv4 节点;IPv4+IPv6 同选不能混合下发;IPv6 节点全部 -1 不可用

筛选不生效:

修复:


更新日志 _V1.0.5

🐛 BUG 处理

  1. Trojan 协议在 Mihomo/Clash Verge 中延迟失败/不可用的问题
  2. 更换Mihomo内核下发的配置文件,新配置增加防DNS泄露;
  3. 根据现有代码,更新特别鸣谢/调用 API 接口名单

🚩 节点名称说明:

来源 节点名称 说明
内置 6 条 bestcf 地区优选池(HK / TW / JP / SG / US / KR) 香港-01、日本-01… 数据行自带地区标记("地区随机 | 香港 HK"),代码提取中文地区命名
bestcf 源中不带地区标记的行 优选IP-XX 名称提取不到地区 → 留空兜底
默认 CNAME 域名池(40 个域名,如 cloudflare.182682.xyz) 优选IP-XX 解析出的纯 CF 优选 IP 无法判定地区,统一改名"优选IP-XX"
CF CIDR 随机补足 + 内置静态优选池(208+ 条纯 CF IP) 优选IP-XXX 纯 IP 无任何地区信息,统一兜底命名

更新日志 _V1.0.4

✨ 更新内容

🐛 BUG 处理

  1. 节点数量控制 不生效的问题,改为全局生效;

更新日志 _V1.0.3

✨ 更新内容

🐛 BUG 处理

  1. 下发节点可用数量少 → 根因四处叠加(地区池从未使用 / 非 CF 段 IP 全被过滤 / 静态池占满上限 / 默认值保守),修复后默认下发 800 节点(Clash 结构化 300),地区节点排前
  2. 静态内置 IP 挤占节点列表前部 → 内置池置后追加,动态地区节点优先
  3. 自定义订阅模式合并默认节点数量不足 → 修复合并逻辑,自定义+追加=800、自定义严格=600
  4. 节点过多触发 Worker 免费版 10ms CPU 限制 → 本地冷启动实测后钳制(clash 300≈5-6ms、v2ray 800≈7ms),全部收敛到安全范围
  5. GUI.for.SingBox 连接速度有、网络速度为 0 → 修复三处BUG:①直连无超时,CF 托管站点被回环保护拦截后无限挂起,永远走不到反代兜底;②兜底反代仅单个地区,失效即死路;③出站建立期间到达的早期数据帧被静默丢弃,TLS 握手无法完成。
  6. CF 托管站点(speed.cloudflare.com 等)直连被回环保护拦截 → 超时后自动进入反代兜底链路

更新日志 _V1.0.2

✨ 更新内容

🐛 BUG 处理

  1. YouTube 掉速 / 节点大面积 -1 → 出站逻辑回滚至 1.0.1 版:直连目标永远最先尝试,自定义落地其次,内置地区反代最后;若仍出现掉速,将节点配置中的出站模式改为其它模式,再改回默认(优先代理,失败直连)即可

更新日志 _V1.0.1

✨ 更新内容


一、项目概述与兼容性

项 内容
项目名称 CFNext 订阅管理器
当前版本 v1.0.3
运行环境 Cloudflare Workers / Pages
部署形态 单文件 Worker/Pages(CFNext 明文版/混淆版)
数据存储 Cloudflare KV(绑定变量 K),未绑定时配置仅存于当前会话
面板入口 https://你的域名/<UUID>(或自定义路径)
订阅入口 https://你的域名/<UUID>/sub(按客户端 UA 自动识别格式)
配置 API https://你的域名/<UUID>/api/config(GET 读取 / POST 保存)

1.1 节点下发逻辑


二、主要功能

# 功能 说明
1 多协议支持 VLESS / Trojan / XHTTP 三协议独立开关,可同时启用;Trojan 密码留空默认使用 UUID
2 图形化配置面板 全模块化面板:快速开始 / 基础配置 / 节点配置 / ECH 配置 / 协议开关 / 落地与出站 / 优选器,保存即生效
3 订阅模式 关闭(默认)/ 自定义订阅(支持汇聚)/ 随机优选模式(官方接口)三种模式切换
4 节点数量控制 下拉开关 + 数量输入,开启后精确控制下发节点总数(1-1000)
5 轮询机制 默认开启:Clash 上限 300 / V2rayN 上限 800,更新订阅覆盖旧节点;关闭后忽略限制一次下发全部
6 优选器 内置微测网 IPv4/IPv6、优选 IP 列表、HostMonit 优选、微测优选域名 + 自定义数据源 URL;在线 TCP 测速后「加入优选」随订阅下发
7 自定义订阅(支持汇聚) 内置 6 条在线源(bestcf 地区源,可增删),支持域名 / 优选 API / IP 逐行汇聚;可切换「仅自定义节点」——关闭后只下发输入框内内容
8 地区与筛选 地区选择(全部 / 香港 / 台湾 / 美国 / 新加坡 / 日本 / 韩国 / 德国)+ IP 版本(IPv4 / IPv6)+ 运营商(移动 / 联通 / 电信)组合筛选
9 落地与出站 反代 / 落地 IP(留空使用内置 VLESS 中继 + 地区反代兜底;填写后启用透明代理)+ 出站代理(SOCKS5 / HTTP,user:pass@host:port)+ 出站模式选择
10 ECH 加密 自定义 ECH 域名 / ECH DNS(DoH),开启后自动进入仅 TLS 节点模式
11 多客户端 Clash / Sing-box / Surge / Loon / Quantumult X / V2ray / Shadowrocket / Nekoray / Stash,按 UA 自动识别(URL 追加 ?format= 可强制指定)
12 日间 / 夜间模式 面板右上角一键切换,选择持久化到本地
13 配置 API /api/config GET/POST 读写配置,便于脚本化管理

三、部署说明

Worker 部署

  1. 登录 Cloudflare 控制台 → Workers 和 Pages → 新建 Worker
  2. 将 CFNext 明文版/混淆版 全文粘贴到 Worker 代码编辑器
  3. 设置 环境变量 U = 你的 UUID(必填,同时用作面板访问路径;可另设 D 自定义路径)
  4. (推荐)创建 KV 命名空间 并在 Worker 设置中绑定,变量名设为 K——配置面板保存后持久化
  5. 部署后访问 https://你的域名/UUID 进入图形化配置面板

Pages 部署

  1. 登录 Cloudflare 控制台 → Workers 和 Pages → 新建 Pages 项目
  2. 将 CFNext 明文版/混淆版 放到项目目录(或压缩为 zip 上传),框架选择「无」
  3. 设置 环境变量 U(同上)
  4. (推荐)创建 KV 命名空间并在 Pages 设置中绑定,变量名设为 K
  5. 部署后访问 https://你的域名/UUID 进入图形化配置面板

登录与访问


四、环境变量与配置变量

优先级:KV 配置 > 环境变量 > 默认值

4.1 基础配置

变量 值 说明
U 你的 UUID 必需,VLESS 用户 ID 与面板访问路径,更改后不影响功能;留空自动生成
D(兼容 PATH) 自定义路径 可选,自定义面板 / 订阅访问路径(默认用 UUID)
ADMIN(兼容 admin) 管理密码 可选,设置后访问面板需登录;留空无需登录
HOST 自定义 SNI / Host 可选,客户端连接的 SNI 与 WS Host;留空用 Worker 域名

4.2 协议与传输

变量 值 说明
ECH true / 1 启用 ECH 加密客户端握手(开启后自动仅 TLS 端口)
TROJAN true / 1 启用 Trojan 协议(默认禁用)
TROJAN_PASSWORD 自定义密码 Trojan 密码,留空用 UUID
ALPN h2 / http/1.1 ALPN 协商,留空由客户端协商

4.3 优选与出站

变量 值 说明
PROXYIP host 或 host:port 反代 / 落地 IP,留空使用内置 VLESS 中继(地区反代兜底);填写后启用透明代理
S(兼容 OUTBOUND) user:pass@host:port 出站代理(SOCKS5 / HTTP)
YX IP:端口#名称 自定义优选列表,逗号分隔
YXURL URL 优选器自定义数据源地址

4.4 面板配置项(保存于 KV 或当前会话)

配置项 说明
uuid / path / admin / host 基础配置(同环境变量,面板可视化编辑)
enableVless / enableTrojan / enableXhttp 协议开关(默认 VLESS 开、其余关)
trojanPassword Trojan 密码
alpn / tlsOnly ALPN 协商 / 仅 TLS 端口节点
ech / echHost / echDns ECH 开关 / 自定义 ECH 域名 / ECH DoH
nodeLimit / nodeLimitCount 节点数量控制开关 / 下发数量(1-1000)
polling 轮询机制开关(默认开启)
optimizer.subMode 订阅模式:'' 关闭 / custom 自定义订阅(支持汇聚)/ random 随机优选
optimizer.subIncludeDefault 自定义订阅模式下是否追加内置及默认节点(默认关闭:仅自定义)
optimizer.subRandomCount 随机优选数量(默认 16)
optimizer.fillCount 随机补足节点数
optimizer.sourceURL 自定义优选数据源 URL
preferredDomains / preferredIPs 优选节点(域名 / 优选 API / IP,每行一个,IP:端口#名称)
filter.region 地区:all / HK / TW / US / SG / JP / KR / DE
filter.ipType IPv4 / IPv6
filter.isp 移动 / 联通 / 电信
proxyIP / outboundProxy / outboundMode 反代落地 IP / 出站代理 / 出站模式

五、面板功能说明

部署后访问 https://你的域名/<UUID> 进入图形化配置面板。

模块 说明
快速开始 三种使用方式:免配置使用(小白专属)/ 配置协议使用 / 优选方式使用,含客户端选择与订阅链接复制
基础配置 面板路径 / 管理密码 / VLESS UUID / 自定义 SNI Host
节点配置 ALPN(留空由客户端协商)/ TLS 控制(开启仅下发 TLS 端口节点)/ 节点数量控制(开启后限制下发节点总数)/ 轮询机制
ECH 配置 ECH 开关 / 自定义 ECH 域名 / 自定义 ECH DNS(DoH)
协议开关 启用 VLESS / Trojan / XHTTP + Trojan 密码
落地与出站 反代 / 落地 IP + 出站代理 + 出站模式
地区与筛选 地区 / IP 版本 / 运营商组合筛选
订阅地址 各客户端订阅链接一键复制
运行状态 当前版本 / Worker 地区 / 配置状态等
在线优选 数据源选择(微测网 / 优选 IP 列表 / HostMonit / 自定义 URL)+ 端口选择 + 测速 + 加入优选节点
测速结果 在线优选测速实时结果(同一 IP 自动去重)
优选节点 域名 / 优选 API / IP 逐行配置,随订阅下发
调用 API 接口 /api/config 读写示例
相关链接 常用外链

六、订阅模式与优选

6.1 订阅模式

模式 说明
关闭(默认) 使用默认订阅生成逻辑:优选域名解析 + 内置优选池 + 官方域名,随机补足 ≤ 20%
自定义订阅(支持汇聚) 按「优选节点」输入框内容逐条汇聚,支持 域名 / IPv4 / IPv6 / sub:// 优选 API / https:// 优选 API;内置 6 条 bestcf 地区在线源(可增删);「仅自定义节点」开关:关闭后只下发输入框内内容(含内置 6 条源),开启后追加内置及默认节点
随机优选模式(官方接口) 按设定数量(默认 16)从 Cloudflare 官方 CIDR 随机生成优选 IP,下发前自动 TCP 探测剔除不可达

6.2 在线优选

6.3 地区与命名


七、性能优化与安全


八、致谢

CFNext (PAICNI/CFNext)

Searching Database…

1.9K ·GitHub
这是什么?CFNext 是一个部署在 Cloudflare Workers 或 Pages 上的代理订阅管理面板;单个脚本既能运行实际的 VLESS/Trojan/XHTTP 代理,又提供 /sub 订阅链接和一个图形化配置面板。
这是一个独立的代理服务器,还是仅仅是订阅聚合器?两者都是:这个单文件的 Worker/Pages 脚本本身就是实际的 VLESS/Trojan/XHTTP 代理端点,同时也聚合/生成客户端订阅链接并承载图形界面面板。
怎么部署它?在 Cloudflare 上创建一个 Worker(或 Pages 项目),粘贴 CFNext 的明文或混淆版源码,把环境变量 U 设置为你的 UUID(它同时用作 VLESS ID 和面板路径),然后打开 UUID 路径进入面板,访问 /sub 获取订阅链接。
需要设置 Cloudflare KV 吗?不是必需的:不绑定 KV 命名空间时,面板设置只在当前会话内保留;把一个 KV 命名空间绑定为变量 K,可以让保存的配置在重新部署后依然保留。
它会把 Cloudflare 免费额度用爆吗?CFNext 会实时监控你的 Workers/Pages 配额,当日用量超过免费额度的 60% 时自动减少发放的节点数,用量达到 100% 时保底为 100 个节点。
它主要为谁而做?它面向需要绕过网络审查的用户,尤其是服务直连会被阻断的中国大陆用户,同时所有东西都运行在 Cloudflare 的免费无服务器套餐上。
订阅支持哪些代理客户端应用?它通过 User-Agent 自动检测客户端,并提供格式正确的配置,支持 Clash、Sing-box、Surge、Loon、Quantumult X、V2ray、Shadowrocket、Nekoray 和 Stash,也可以用 ?format= 强制指定格式。
“家宽”模式是什么?它会拉取当前的 VPN Gate OpenVPN 节点列表,并将其作为普通订阅节点转发,把 OpenVPN 流量通过 CFNext 自己的 Cloudflare 前置隧道传输,因此即使 VPN Gate 的直连访问被阻断也依然可用。
启用 ECH 有什么作用?ECH 会加密 TLS 握手(隐藏 SNI)以获得更强的抗审查能力,并自动把面板切换为仅 TLS 节点模式。
可以同时运行 VLESS、Trojan 和 XHTTP 吗?可以,每个协议都有独立的开关,可以同时启用;Trojan 的密码留空时默认使用你的 UUID。
Creator
PAICNI
Size
8.5 MB
Stars
1.9K
Updated
CommitOct 16
Age
1mo
Commits · 90 Days