这是一个基于 Cloudflare Workers / Snippets 的高级节点订阅管理与分发系统。
源代码来自于AK的strllTCP1.3
它集成了 自适应订阅生成、优选IP自动负载均衡、智能白名单、Telegram 实时通知 以及 可视化的后台管理面板。
- snippets代码 所有数据都需要在代码顶部【用户配置区域进行修改】
- worker代码 环境变量第一优先级 第二优先级为代码硬编码【在用户配置区域进行修改】
- 默认清空sub订阅器为空值 有的人喜欢本地ADD那些花里花俏 有的人喜欢SUB 自己改
- 默认什么都不改就是默认的 我写入了支持proxyip作为节点。所以即便是默认值也依旧有一个节点使用
- 所有教程都在github写了说明 我希望你认真查看每一处
- 修复KV空间/D1数据库溢出问题
- 更换sub默认为周润发的sub
🌟 核心特性:
- 无状态部署:无需服务器,完全依托 Cloudflare 免费生态 (Workers + D1 + Pages)。
- 极致安全:采用 会话级强制登录 机制,杜绝后台“闪屏”泄露;新增 HTTP 安全响应头 (X-Frame-Options 等),防止点击劫持攻击。
- 智能防死循环:内置递归保护机制,防止因配置错误导致 Worker 自我请求炸库。
- 可视化管理:后台直接管理白名单 IP、TG 通知配置、Cloudflare 统计配置,无需反复修改代码。
- 🆕 动态配置热更新:支持在面板中直接修改并保存 TG Bot Token、Cloudflare API、优选 IP 库等关键配置(写入 D1/KV),无需重新部署代码。
- 🆕 白名单可视化管理:支持在后台添加/删除允许访问的 IP (IPv4/IPv6),配置后即时生效,防止未授权访问。
- 🆕 修改SUB跟远程在线编辑 ADD ADDAPI ADDCSV 跟上游SUB 两者只能二选一 使用上游SUB 远程编辑本地不生效,使用远程本地编辑 SUB禁止加任何数据【包括环境变量跟硬编码】目前 SUB我默认为空
- 🆕 修改ADD ADDAPI ADDCSV三合一共存体 前置条件 没有设置SUB订阅器情况下可用 设置了SUB之后不可用
核心逻辑调整:实现了 “二选一互斥” 逻辑。
- 优先级判定:代码会先检查 SUB_DOMAIN(无论是环境变量还是硬编码)。
- 情况A(有上游):如果 SUB_DOMAIN 存在且不为空,只执行上游订阅逻辑。完全忽略本地的 ADD/ADDAPI/ADDCSV。
- 情况B(无上游):只有当 SUB_DOMAIN 被清空(删除环境变量 + 代码留空)时,才会降级去执行本地 ADD 节点的生成逻辑。
- Base64 识别保留:无论走哪条路,都会经过 Base64 客户端识别(Clash/Singbox 自动转换),保持自适应功能。
优先级顺序:环境变量 (Env) > D1 数据库 (后台保存) > KV 空间 > 代码默认配置
推荐直接在 Cloudflare 后台
Settings->Variables中设置以下变量。 如果不使用环境变量 请在代码中最顶端修改好用户配置区域
| 变量名 | 必填 | 说明 | 示例 |
|---|---|---|---|
UUID |
✅ | 主 UUID (用户ID),客户端连接凭证 | 06b65903-406d-4a41-8463-6fd5c0ee7798 |
WEB_PASSWORD |
✅ | 后台登录密码 (务必设置复杂密码) | admin888 |
SUB_PASSWORD |
✅ | 订阅路径密码 (访问 https://域名/密码) |
my-secret-sub |
PROXYIP |
✅ | 默认优选域名/IP (节点连接地址) | cf.090227.xyz |
SUB_DOMAIN |
✅ | 真实订阅源 (上游优选订阅生成器地址) 自动清洗 https:// 和尾部 / |
sub.cmliussss.net |
SUBAPI |
可选 | 订阅转换后端 (用于 Sing-box/Clash 转换) 自动补全 https:// |
https://subapi.cmliussss.net |
PS |
可选 | 节点备注 (自动追加到节点名称后) 支持本地节点与上游订阅双重生效 |
【专线】 |
| 变量名 | 说明 | 示例 |
|---|---|---|
TG_BOT_TOKEN |
Telegram 机器人 Token (后台也可配置) | 123456:ABC-DEF... |
TG_CHAT_ID |
Telegram 用户 ID (后台也可配置) | 123456789 |
CF_ID |
Cloudflare Account ID (用于统计) | e06... |
CF_TOKEN |
Cloudflare API Token (用于统计) | Go... |
CF_EMAIL |
Cloudflare Email (Global Key 模式) | user@example.com |
CF_KEY |
Cloudflare Global API Key | 868... |
WL_IP |
静态白名单 IP (免检,视为管理员) | 210.61.97.241 |
| 变量名 | 说明 | 格式说明 |
|---|---|---|
ADD |
本地优选 IP 列表 | 1.1.1.1:443#美国, 2.2.2.2#香港 |
ADDAPI |
远程 TXT 优选列表 | 填入 URL,格式同上 (一行一个 IP) |
ADDCSV |
远程 CSV 优选列表 | 填入 URL,支持高级节点信息导入 |
- 路径: Cloudflare Dashboard -> 域名 -> Security (安全性) -> 设置 (Settings)。
- 操作: 在安全性设置页面的下方找到 “自动程序攻击模式” (Bot Fight Mode),开启开关。
-
- 作用: 自动拦截已知的恶意爬虫和脚本小子,减少垃圾流量。
本版本支持 Cloudflare D1 (SQLite) 数据库,推荐使用以获得最佳体验。
-
创建数据库:
- 在 Cloudflare 左侧菜单选择 Workers & Pages -> D1。
- 点击 创建数据库,命名为
sub_db(或其他你喜欢的名字)。
-
初始化表结构 (必做):
- 进入刚才创建的数据库,点击 控制台 (Console) 标签。
- 复制以下 SQL 代码粘贴到控制台并点击 Execute (执行):
CREATE TABLE IF NOT EXISTS config (key TEXT PRIMARY KEY, value TEXT);
CREATE TABLE IF NOT EXISTS whitelist (ip TEXT PRIMARY KEY, created_at INTEGER);
CREATE TABLE IF NOT EXISTS logs (id INTEGER PRIMARY KEY AUTOINCREMENT, time TEXT, ip TEXT, region TEXT, action TEXT);
CREATE TABLE IF NOT EXISTS stats (date TEXT PRIMARY KEY, count INTEGER DEFAULT 0);
- 绑定变量:
- 回到你的 Worker 项目设置。
- 点击 设置 -> 变量 -> D1 数据库绑定。
- 变量名称:
DB(必须大写,不能改名)。 - 选择刚才创建的数据库。
- 保存并部署。
如果您不想配置 D1,系统支持自动降级使用 KV 存储配置和白名单。
- 在 Cloudflare 左侧菜单选择 Workers & Pages -> KV。
- 点击 创建命名空间 (Create a Namespace),命名为
BLACKLIST(或任意名称)。 - 回到你的 Worker/Pages/Snippet 项目设置页:
- Workers/Pages:
设置->变量->KV 命名空间绑定。
- Workers/Pages:
- 点击 添加绑定:
- 变量名称 (Variable name):
LH(⚠️ 必须填这个,不能改) - KV 命名空间: 选择你刚才创建的空间。
- 变量名称 (Variable name):
- 保存并重新部署。
本项目包含两套代码,请根据您的部署方式选择:
- Worker / Pages 部署 (推荐):请使用
_worker.js代码。- UI 特效:高级毛玻璃风格
- 新增特性:支持 D1 数据库高速读写、后台动态配置、强制安全登录
- Snippets 部署:请使用
snippets.js代码。 【也支持worker部署】- UI 特效:紫色渐变风格
✅ 完美支持 Cloudflare Workers / Pages / Snippets
- 🗄️ D1 数据库支持:完美支持 Cloudflare D1 (SQLite),日志记录更全,统计更准,无 KV 写入限制。
- 🔐 强制安全登录 (防闪屏):
- 采用 会话级 验证机制。
- 防闪屏修复:后台页面默认隐藏,只有鉴权通过后才显示,杜绝加载瞬间的数据泄露。
- 自动退出:关闭浏览器或标签页即自动退出登录,每次进入后台均需重新验证。
- XSS 防御:新增 HTTP 响应头 (X-Frame-Options, X-Content-Type-Options) 策略,防止管理面板被恶意嵌入。
- 🛡️ 白名单机制:
- 自动记录:登录成功的管理员 IP 会自动加入临时白名单。
- 可视化管理:后台可手动添加/删除白名单 IP,支持 IPv4/IPv6,确保只有授权设备能访问后台接口。
- 🤖 智能通知系统:
- 静默模式:自动过滤爬虫扫描,只有管理员登录或操作时才发送通知,告别刷屏。
- UA 拦截:自动拦截
bot,spider,python,curl等常见爬虫 User-Agent。
- 💡 状态指示灯:后台直观显示 TG 推送和 CF 统计的配置状态(绿灯/红灯)。
- 🚀 自适应订阅:自动识别以下客户端并返回对应格式:
- 支持列表:Clash, Sing-box, Mihomo, Flclash, V2rayNG, Surge, Quantumult X, Shadowrocket, Loon, Hiddify 全平台主流客户端等。
- 🌍 优选 IP 支持:支持环境变量。支持在线编辑
- 📊 可视化后台:
- 直接在后台修改和保存 TG/CF/优选IP 配置(优先于硬编码,无需重新部署)。
- 查看 Cloudflare 今日 API 请求量。
- 查看最近 50 条访问日志(从 D1/KV 读取)。
- 集成 ProxyIP 连通性检测。
适用场景:Cloudflare Workers 或 Cloudflare Pages
- 登录 Cloudflare Dashboard。
- 找到 计算 (Workers & Pages) -> 概述。
- 选择 从 Hello World! 开始。
- 输入任意名称,点击 部署。
- 在 Workers 列表找到刚部署的项目,点击 编辑代码。
- 清空原有代码,将项目中的
_worker.js内容完整复制粘贴进去。 - 点击右上角 保存并部署。
注意:修改任何内容都需要重新上传一次代码
- 选择 连接到 Git。
- 选择你 Fork 的 GitHub 仓库。
- 特别注意:后续修改内容要在 GitHub 上的
_worker.js进行修改,之后会自动同步到 Pages。 - 点击 开始设置,然后 保存并部署。
适用场景:已有域名托管在 Cloudflare,想利用 Snippets 功能
- 进入 Cloudflare Dashboard,点击你的域名。
- 在左侧菜单找到 规则 (Rules) -> Snippets,点击 创建片段。
- 输入片段名称。
- 将项目中的
snippets.js内容完整复制粘贴进去。 - 设置触发规则:
- 选择 自定义规则。
- 字段:
主机名 (Hostname) - 运算符:
等于 (equals) - 值:你的子域名 (例如
sub.yourdomain.com)
- 点击 创建片段 保存。
- 配置 DNS (重要):
- 前往 DNS 设置页,添加一条 A 记录。
- 名称:填写上面设置的子域名 (例如
sub)。 - IPv4 地址:
192.0.2.1(保留地址,仅作占位用)。 - 代理状态:必须开启 小黄云 (Proxied)。
访问 https://你的域名/ 自动跳转登录页。
- 🔒 强制安全登录:
- 会话级验证:关闭浏览器标签页或刷新页面(视缓存策略而定)会自动退出登录。
- 未设置密码保护:如果未设置
WEB_PASSWORD,系统会强制显示登录页且无法进入,防止后台裸奔。
- 🛡️ 白名单管理:
- 查看: 点击 "刷新" 按钮查看当前数据库中的白名单 IP。
- 添加: 输入 IP 地址点击 "添加白名单" 即可,无需重启。
- 删除: 点击列表右侧的 "删除" 按钮。
- 注:系统内置的白名单 IP (环境变量
ADMIN_IP或WL_IP) 无法在后台删除。
- ⚙️ 动态配置:
- 保存配置: 在 "🛠️ 优选 IP 与 远程配置" 或 Telegram/CF 弹窗中修改内容后,点击保存。
- 数据将写入 D1/KV,优先级高于代码中的默认值。
- 检测: 支持检测 ProxyIP 可用性,支持测试订阅链接连通性。
特别感谢天诚修复的所有 Bug 与新增功能:
- ❇️ 修复了 Cloudflare 网站不能访问的问题。
- ❇️ 新增加了机场三字码的适配。
- ❇️ 新增负载均衡轮询。
- ❇️ 新增解锁 Emby 播放器。
- ❇️ 新增了韩国节点适配。
- ❇️ Trojan/Vless 订阅器内置 CSV 文件优化识别功能。
相关支持与链接:
- 源代码作者:Alexandre_Kojeve (致敬原版 stallTCP1.3)
- 后台作者:ym94203
- ProxyIP 支持:COMLiang
- Telegram 交流群:zyssadmin
- Cloudflare Docs:Support
本项目仅供技术交流与学习使用,请勿用于非法用途。使用本程序产生的任何后果由使用者自行承担。