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)

webui
Searching Database…

1.9K ·GitHub
What is this?CFNext is a proxy subscription management panel you deploy on Cloudflare Workers or Pages; a single script both runs the actual VLESS/Trojan/XHTTP proxy and serves a /sub subscription link plus a graphical config panel.
Is this a standalone proxy server or just a subscription aggregator?Both: the single-file Worker/Pages script is the actual VLESS/Trojan/XHTTP proxy endpoint, and it also aggregates/generates the client subscription links and hosts the GUI panel.
How do I deploy it?Create a Worker (or Pages project) on Cloudflare, paste in the CFNext plain or obfuscated source, set the env var U to your UUID (used both as the VLESS ID and the panel path), then open the UUID path for the panel and /sub for the subscription link.
Do I need to set up Cloudflare KV?Not strictly: without a bound KV namespace, panel settings only persist for the current session; binding a KV namespace as variable K makes your saved config persist across redeploys.
Will it blow through Cloudflare's free tier?CFNext monitors your Workers/Pages quota in real time and automatically shrinks the number of nodes it hands out once daily usage passes 60% of the free allowance, down to a 100-node floor at 100% usage.
Who is this mainly built for?It targets users who need to get around network censorship, especially mainland Chinese users whose direct connections to services get blocked, while running everything on Cloudflare's free serverless tier.
Which proxy client apps does the subscription support?It auto-detects the client by User-Agent and serves correctly formatted configs for Clash, Sing-box, Surge, Loon, Quantumult X, V2ray, Shadowrocket, Nekoray and Stash, or you can force a format with ?format=.
What is the 'home broadband' (家宽) mode?It pulls the current VPN Gate OpenVPN node list and relays it as regular subscription nodes, tunneling the OpenVPN traffic through CFNext's own Cloudflare front so it stays reachable even when direct VPN Gate access is blocked.
What does enabling ECH do?ECH encrypts the TLS handshake (hiding the SNI) for stronger anti-censorship, and automatically switches the panel into TLS-only node mode.
Can I run VLESS, Trojan and XHTTP at the same time?Yes, each protocol has its own toggle and they can be enabled simultaneously; Trojan's password defaults to your UUID if left blank.
Creator
PAICNI
Size
8.5 MB
Stars
1.9K
Updated
CommitOct 16
Age
1mo
Commits · 90 Days