一个功能强大的 Cloudflare Pages 代理管理工具,集成 ProxyIP、全局出站、CFIP 管理和订阅生成功能
本项目为老王的Snippets/Worker/Argo脚本功能扩展(SS/VLESS/VMess),需要先部署老王的Snippets/Worker/Argo,再部署这个,这个只负责根据配置的proxyIP、优选IP/域名、全局出站代理生成订阅,实际的节点还是走原本的 主要是为了方便更换优选域名/IP和proxyip
本项目采用 Cloudflare Pages 部署方式
- ✅ 支持 Git 集成,自动部署
- ✅ 无限请求额度
- ✅ 静态资源与 API 分离,性能更优
- ✅ 部署简单,维护方便
如需 Worker 部署方式,请切换到 worker 分支查看(worker代码非最新), 已经部署worker的,可以直接绑定原来的数据库即可完成迁移
详细改动记录见 CHANGELOG.md。
- 支持 IP/域名代理配置
- 批量添加/启用/禁用/删除
- 自动类型识别(IPv4/IPv6/域名)
- 备注管理,方便识别
- 支持 SOCKS5 和 HTTP 代理协议
- 支持用户名密码认证
- 批量测速:测试代理延迟和连通性
- 出站检测:自动检测代理出口 IP 的国家、城市、ASN 等信息
- 详细信息查看:查看代理的入口和出口详细信息(IP、地理位置、运营商、风险评分等)
- 地址隐藏/显示切换,保护隐私
- 优选 Cloudflare IP/域名配置
- 自定义端口(默认 443)
- 批量操作支持
- 支持 DNS 黑名单和节点黑名单两套独立规则
- DNS 黑名单中的 CFIP 不参与 CF/DNS 同步,节点黑名单中的 CFIP 默认不参与订阅生成
- 管理列表会保留已拉黑 CFIP,便于后续解黑或继续维护备注、测速和状态
- VLESS 订阅:一键生成 VLESS 协议订阅链接
- Shadowsocks 订阅:一键生成 SS 协议订阅链接
- ARGO 优选订阅:支持通过 ARGO 隧道模板生成优选订阅
- 支持 VLESS 和 VMess 模板解析
- 自动替换优选 IP/域名和端口
- 批量生成多节点订阅
- 自动组合 CFIP × ProxyIP/Outbound,生成所有可用节点
- 节点命名规则:
CFIP备注-ProxyIP备注-协议(如:香港-代理1-VLESS) - Base64 编码订阅输出
- 支持 Clash 订阅转换
- 数据持久化:配置自动保存,刷新页面后自动加载
- 支持自定义 UUID/密码、域名和路径
- 导出/导入:支持 JSON 格式数据备份和迁移
- 导出内容包含:ProxyIP、全局出站、CFIP、VLESS 订阅配置、SS 订阅配置
- 两种导入模式:作为新数据导入(追加)或完全覆盖导入(替换)
- 自动数据库初始化
- 30 天免登录会话
使用 API Key 登录,支持 30 天免登录
管理普通 IP/域名代理,支持批量操作
查看代理的入口和出口详细信息
管理 Cloudflare 优选 IP/域名
一键生成 VLESS 订阅链接
支持 ARGO 优选域名/IP 管理,自动生成优化订阅链接
无需安装任何软件,只需浏览器即可完成部署!
- 一个 Cloudflare 账号(没有的话去 cloudflare.com 免费注册)
- 一个 GitHub 账号(用于 Fork 项目)
- 访问本项目的 GitHub 页面
- 点击右上角的 Fork 按钮
- 将项目 Fork 到你的 GitHub 账号下
- 顺便点个 Star ⭐ 支持一下!
- 登录 Cloudflare Dashboard
- 在左侧菜单找到 Storage & databases,点击进入
- 切换到 D1 SQL 数据库 标签页
- 点击 创建数据库 按钮
- 数据库名称填写:
snippets-manager-db - 点击 创建 按钮
创建成功后,数据库会自动初始化,无需手动执行 SQL。
- 在左侧菜单找到 Compute & AI,点击进入
- 返回 Workers 和 Pages 主页
- 点击 创建应用程序 按钮
- 选择 Pages 标签页

- 点击 连接到 Git
- 授权 Cloudflare 访问你的 GitHub 账号
- 选择刚才 Fork 的项目仓库
- 配置构建设置:
- 项目名称:
cf-snippets-extend(可自定义) - 生产分支:
main - 构建命令:留空
- 构建输出目录:
public其他的默认
- 项目名称:
- 点击 保存并部署 按钮
部署过程大约需要 1-2 分钟,请耐心等待。
- 部署成功后,进入 Pages 项目设置页面
- 点击左侧 设置 → 函数 → D1 数据库绑定
- 点击 添加绑定 按钮
- 配置绑定:
- 变量名称:
DB(必须是大写的 DB) - D1 数据库:选择
snippets-manager-db(步骤 2 创建的数据库)
- 变量名称:
- 点击 保存 按钮
- 在 Pages 项目设置页面,点击 设置 → 环境变量
- 点击 添加变量 按钮
- 配置环境变量:
- 变量名称:
API_KEY(必须是大写) - 值:你自己设定的登录密码(例如:
mySecretKey123) - 环境:选择 生产 和 预览(都勾选)
- 变量名称:
- 点击 保存 按钮
注意:这个密钥将用于登录管理界面,请妥善保管!
由于绑定和环境变量需要重新部署才能生效:
- 点击 部署 标签页
- 找到最新的部署记录
- 点击右侧的 ... 菜单
- 选择 重试部署
等待部署完成后,你的应用就可以使用了!
- 在 Pages 项目主页,复制你的项目地址(格式:
https://cf-snippets-extend.pages.dev) - 在浏览器中打开这个地址
- 使用步骤 5 中设置的 API Key 登录即可!
为了快速开始使用,项目提供了初始数据文件 initial-data.json,包含:
- 2 个 ProxyIP 示例
- 5 个 CFIP 优选域名/IP
导入步骤:
- 下载项目中的
initial-data.json文件 - 登录管理界面后,点击右上角 📥 导入 按钮
- 选择 📥 作为新数据导入(推荐)或
⚠️ 完全覆盖导入 - 选择下载的
initial-data.json文件 - 导入成功后,即可看到示例数据
提示:
- 作为新数据导入:将示例数据添加到现有数据中,不会删除任何数据
- 完全覆盖导入:删除所有现有数据,然后导入示例数据(慎用)
你也可以跳过此步骤,手动添加自己的数据。
如果你是第一次使用,可以先导入项目提供的初始数据快速体验:
- 下载项目中的
initial-data.json文件 - 点击右上角 📥 导入 按钮
- 在弹出的模态框中选择 📥 作为新数据导入
- 选择
initial-data.json文件 - 导入成功后,会自动添加示例 ProxyIP 和 CFIP
两种导入模式说明:
- 📥 作为新数据导入:将导入的数据添加到现有数据中,不会删除任何现有数据(推荐)
⚠️ 完全覆盖导入:删除所有现有数据,然后导入新数据(危险操作,会有二次确认)
进入 CFIP 标签页,点击 + 添加,输入优选的 Cloudflare IP 或域名:
- 示例 1:
162.159.192.1(优选 IP) - 示例 2:
icook.hk(优选域名) - 端口:默认
443,可自定义
支持批量添加,每行一条,格式:IP/域名:端口#备注
进入 ProxyIP 标签页,添加普通代理 IP/域名:
- 示例:
cdn.xn--b6gac.eu.org - 备注:
ProxyIP-1
注意:ProxyIP 不支持 SOCKS5/HTTP 协议,如需添加请使用"全局出站"功能。
进入 全局出站 标签页,添加 SOCKS5 或 HTTP 代理:
- SOCKS5 示例:
socks5://user:pass@host:1080 - HTTP 示例:
http://user:pass@host:8080
添加后可以:
- 点击 测速 按钮测试延迟
- 点击 出站检测 查看代理出口 IP 信息
- 点击出站信息列查看详细信息(国家、城市、ASN、风险评分等)
进入 订阅生成VLESS 标签页:
- 填写 UUID : 使用已经部署的老王订阅的UUID
- 填写 Snippets/Worker 域名: 使用已经部署的老王订阅的域名
- 填写 Path(默认:
/?ed=2560) - 点击 💾 保存并生成订阅
生成后会显示:
- 订阅地址(格式:
https://你的Pages域名/sub/你的UUID,例如:https://cf-snippets-extend.pages.dev/sub/你的UUID) - Clash 订阅地址(自动转换为 Clash 格式)
进入 订阅生成SS 标签页: 如果使用substore的话需要注意,生成的SS订阅链接用substore转换为clash会丢数据,建议是先用老王的或者其他人的订阅转换转成clash订阅再加入到substore
- 填写 密码 (Password) 使用已经部署的老王订阅的密码
- 填写 Snippets/Worker 域名 使用已经部署的老王订阅的域名
- 填写 Path(可选,留空则使用密码作为路径)
- 点击 💾 保存并生成订阅
生成后会显示:
- 订阅地址(格式:
https://你的Pages域名/sub/ss/你的密码,例如:https://cf-snippets-extend.pages.dev/sub/ss/你的密码) - Clash 订阅地址(自动转换为 Clash 格式)
进入 ARGO优选订阅 标签页:
-
填写模板链接:
- 支持 VLESS 格式:
vless://uuid@host:port?... - 支持 VMess 格式:
vmess://base64编码的配置
- 支持 VLESS 格式:
-
选择优选 CFIP:
- 勾选需要使用的优选 IP/域名
- 可以选择多个 CFIP 批量生成节点
-
生成订阅:
- 点击 生成订阅 按钮
- 系统会自动解析模板,替换地址和端口
- 为每个选中的 CFIP 生成一个节点
-
获取订阅链接:
- 生成后会显示订阅地址
- 支持一键复制
- 可以直接导入到客户端使用
ARGO 订阅特性:
- 自动解析 VLESS/VMess 模板配置
- 保留原始配置的所有参数(加密、传输方式等)
- 只替换地址(add)和端口(port)字段
- 节点备注格式:
原始备注-CFIP备注 - 支持中文备注(已修复编码问题)
订阅特性:
- 自动组合所有启用且符合订阅配置的 CFIP 和 ProxyIP/Outbound
- 节点命名格式:
CFIP备注-ProxyIP备注-协议(如:香港-代理1-VLESS、美国-代理2-SS) - 配置自动保存,刷新页面后自动加载
- 支持一键复制订阅地址
- 支持指定ID生成订阅:通过URL参数指定特定的ProxyIP、Outbound或CFIP ID
你可以通过在订阅URL后添加参数来生成指定ID的订阅链接: 主要用于一个全局落地作为一个订阅源一致 可以设置自动检测最低延迟的,落地一致
参数说明:
proxyip:指定ProxyIP的ID,多个ID用逗号分隔outbound:指定全局出站的ID,多个ID用逗号分隔cfip:指定CFIP的ID,多个ID用逗号分隔speedTop:在订阅最前面追加“最大速度”节点的数量latencyTop:在订阅最前面追加“最低延迟”节点的数量speedTop和latencyTop只会从 IP 类型的 CFIP 中挑选,自动排除域名类型
使用示例:
-
指定单个ProxyIP:
https://你的Pages域名/sub/你的UUID?proxyip=1生成ID为1的ProxyIP × 所有启用且符合订阅配置的CFIP的订阅
-
指定多个ProxyIP:
https://你的Pages域名/sub/你的UUID?proxyip=1,3,5生成ID为1、3、5的ProxyIP × 所有启用且符合订阅配置的CFIP的订阅
-
指定全局出站:
https://你的Pages域名/sub/你的UUID?outbound=2,4生成ID为2、4的全局出站 × 所有启用且符合订阅配置的CFIP的订阅
-
同时指定ProxyIP和全局出站:
https://你的Pages域名/sub/你的UUID?proxyip=1&outbound=2生成ID为1的ProxyIP和ID为2的全局出站 × 所有启用且符合订阅配置的CFIP的订阅
-
指定CFIP:
https://你的Pages域名/sub/你的UUID?cfip=1,2,3生成所有启用的ProxyIP/全局出站 × ID为1、2、3且符合订阅配置的CFIP的订阅
-
完全自定义组合:
https://你的Pages域名/sub/你的UUID?proxyip=1,2&outbound=3&cfip=1,2生成ID为1、2的ProxyIP和ID为3的全局出站 × ID为1、2的CFIP的订阅
-
追加高速和低延迟节点:
https://你的Pages域名/sub/你的UUID?speedTop=5&latencyTop=2在订阅最前面追加 5 个最大速度节点和 2 个最低延迟节点
SS订阅同样支持:
https://你的Pages域名/sub/ss/你的密码?proxyip=1,2&cfip=1,2,3&speedTop=3&latencyTop=3
重要说明:
- 指定ID时,不管该ID是否启用状态,都会被包含在订阅中;节点黑名单 CFIP 是否包含由订阅配置决定
- 未指定参数时,使用所有启用状态的项目
- 指定
proxyip或outbound参数时,只会使用指定的ID,不会包含其他启用的项目 - 指定
cfip参数时,只会使用指定且符合订阅配置的 CFIP ID - 可通过
include_blacklisted_cfip=1临时让公开订阅包含节点黑名单 CFIP,例如:/sub/你的UUID?include_blacklisted_cfip=1 - 可以灵活组合参数,生成不同的订阅链接
- 节点数量 = (指定的ProxyIP数量 + 指定的Outbound数量) × 指定且符合订阅配置的CFIP数量
- DNS 黑名单始终影响 CF 同步,不会从管理列表删除记录;节点黑名单是否参与订阅输出由对应订阅配置决定
使用场景:
- 为不同设备生成不同的订阅(如:手机用低延迟节点,电脑用高速节点)
- 测试特定节点组合的效果
- 为不同用户分配不同的节点
- 临时禁用某些节点但保留在订阅中
- 单落地多入口优选:为单个全局出站(落地)生成独立订阅,配合客户端自动选择最低延迟功能,实现同一落地的多入口自动优选,保证落地一致性(例如:一个美国落地配置多个优选域名/IP,客户端自动选择延迟最低的入口)
复制订阅地址,粘贴到你的 V2Ray/Clash/Shadowrocket 等客户端中,更新订阅即可!
- 勾选多个项目后,可批量启用/禁用/删除
- 支持批量测速和出站检测
- CFIP 支持按失败次数阈值批量删除,例如删除失败次数大于等于指定值的记录
- 点击右上角 📤 导出 按钮
- 自动下载 JSON 格式的备份文件(文件名格式:
cf-snippets-managerend-YYYY-MM-DD.json) - 备份文件包含:
- 所有 ProxyIP 配置
- 所有全局出站配置
- 所有 CFIP 配置
- VLESS 订阅配置(UUID、域名、路径)
- SS 订阅配置(密码、域名、路径)
- 点击右上角 📥 导入 按钮
- 选择导入模式:
- 📥 作为新数据导入(推荐)
- 将导入的数据添加到现有数据中
- 不会删除任何现有数据
- 适合合并多个备份文件或添加新数据
- 订阅配置会被更新(不会重复)
⚠️ 完全覆盖导入(危险)- 先删除所有现有数据(包括订阅配置)
- 然后导入新数据
- 会有二次确认提示
- 适合完全恢复备份或重置数据
- 📥 作为新数据导入(推荐)
- 选择 JSON 备份文件
- 等待导入完成
使用场景:
- 备份数据:定期导出数据,防止数据丢失
- 迁移数据:在不同部署之间迁移配置
- 分享配置:与他人分享你的优选 IP/域名配置
- 批量添加:使用初始数据文件快速添加常用配置
- 恢复配置:误删数据后快速恢复
注意事项:
- 导出的 JSON 文件包含所有配置,请妥善保管
- 导入前建议先导出当前数据作为备份
- 完全覆盖导入会删除所有数据,请谨慎使用
- 在全局出站页面,点击 👁️ 显示地址 / 🔒 隐藏地址 切换显示模式
- 隐藏模式下,SOCKS5/HTTP 地址会显示为
***,保护隐私 - 适合在公共场合或截图分享时使用
# 单行格式
IP/域名#备注
# 批量添加示例
210.61.97.241#香港节点
proxy.example.com#美国节点
# SOCKS5(无认证)
socks5://host:port#备注
# SOCKS5(有认证)
socks5://user:pass@host:port#备注
# HTTP(无认证)
http://host:port#备注
# HTTP(有认证)
http://user:pass@host:port#备注
# 单行格式
IP/域名:端口#备注
# 批量添加示例
162.159.192.1:443#优选IP-1
icook.hk#优选域名
- 检查代理地址格式是否正确
- 确认代理服务器是否在线
- 本地代理(127.0.0.1)无法从 CF 访问,会显示离线
- 确保代理支持 TCP 连接
- 检查代理是否有流量限制
- 部分代理可能不支持出站检测
- VLESS 订阅:
- 确认 UUID 格式正确(标准 UUID 格式,并且是部署的老王的snip订阅的uuid)
- 确认 Snippets/Worker 域名填写正确(不要带
https://) - 确认至少添加了一个启用且符合当前订阅配置的 CFIP
- SS 订阅:
- 确认密码已填写
- 确认 Snippets/Worker 域名填写正确
- Path 可以留空(会自动使用密码作为路径)
- 确认至少添加了一个启用且符合当前订阅配置的 CFIP
在 Cloudflare Pages 设置页面:
- 进入 Pages 项目设置
- 点击 设置 → 环境变量
- 找到
API_KEY变量 - 点击 编辑,输入新密钥
- 点击 保存
- 在 部署 标签页重新部署项目
- 首次使用:选择"作为新数据导入",导入
initial-data.json快速开始 - 添加新数据:选择"作为新数据导入",不会影响现有数据
- 合并配置:选择"作为新数据导入",可以合并多个备份文件
- 恢复备份:选择"完全覆盖导入",完全恢复到备份时的状态
- 重置数据:选择"完全覆盖导入",清空所有数据后导入新配置
- 检查 JSON 文件格式是否正确
- 确认文件是从本项目导出的或使用
initial-data.json - 查看浏览器控制台(F12)的错误信息
- 尝试重新导出数据或使用初始数据文件
- VLESS:更现代的协议,支持更多特性,推荐使用
- SS (Shadowsocks):经典协议,兼容性好,部分客户端可能只支持 SS
- 两种订阅可以同时使用,互不影响
- 节点数量和质量完全相同,只是协议不同
- 为了方便使用,填写的 UUID/密码、域名、路径会自动保存到数据库
- 刷新页面后会自动加载上次的配置
- 如果已有配置,进入页面时会自动显示订阅地址
- 导出数据时会包含订阅配置,导入时也会恢复
- VLESS 格式:
vless://uuid@host:port?encryption=none&security=tls&... - VMess 格式:
vmess://base64编码的JSON配置 - 系统会自动识别协议类型并解析
- 保留原始配置的所有参数,只替换地址和端口
- 检查模板格式:确保是完整的 vless:// 或 vmess:// 链接
- VMess 编码问题:如果包含中文备注,确保已更新到最新版本(已修复编码问题)
- 至少选择一个 CFIP:必须勾选至少一个优选 IP/域名
- 查看错误提示:页面会显示具体的错误信息
- ARGO 订阅:基于现有的 VLESS/VMess 节点模板,只替换优选 IP/域名
- 普通订阅:从零开始配置,需要填写完整的 UUID、域名、路径等参数
- 使用场景:
- ARGO 订阅:适合已有节点配置,想快速生成多个优选节点
- 普通订阅:适合从头配置新的订阅服务
- Pages 部署(本项目采用):
- 静态文件与 API 分离,结构更清晰
- 支持 Git 集成,代码更新自动部署
- 无限请求额度,无需担心流量限制
- 部署更简单,维护更方便
- Worker 部署(传统方式):
- 单文件包含所有代码,部署简单但维护困难
- 每天 100,000 请求限制
- 需要手动上传代码更新
- 功能完全相同,只是部署方式不同
- 如需 Worker 部署,请切换到
worker分支
本项目采用 MIT 协议开源,欢迎 Fork 和 Star!
cf_snippet_extend/
├── public/ # 静态文件目录
│ └── index.html # 前端页面
├── _worker.js # Pages Worker(处理 API 和订阅请求)
├── wrangler.toml # Cloudflare 配置文件
├── initial-data.json # 初始数据文件(可选导入)
├── screenshots/ # 截图目录
└── README.md # 项目说明文档
文件说明:
public/index.html:前端页面,包含所有 HTML、CSS、JavaScript_worker.js:Pages Worker 代码,处理所有 API 请求和订阅生成wrangler.toml:Cloudflare Pages 配置,包含数据库绑定信息initial-data.json:提供的初始数据,包含示例 ProxyIP 和 CFIP,可选导入README.md:完整的使用文档和部署教程
Pages 部署特点:
- 静态文件(HTML/CSS/JS)与 API 逻辑分离
_worker.js自动处理所有动态请求- 无需构建步骤,直接部署即可
- 支持 Git 集成,代码更新自动部署
欢迎提交 Issue 和 Pull Request!
本项目仅供学习交流使用,请勿用于非法用途。使用本项目所产生的一切后果由使用者自行承担。
本项目并非原创,而是基于以下优秀开源项目的扩展融合:
- 老王的 Cloudflare-proxy - 提供了核心的代理转发思路
- CM 的 CF-Workers-CheckSocks5 - 提供了 SOCKS5 测速检测功能
- 总工的 cf_sinppets - 提供了 Snippets 管理基础架构














