Skip to content

樱花面板是一个基于Cloudflare Workers的代理管理面板,提供简洁美观的用户界面,支持多种代理协议和灵活的节点管理。该面板使用中文界面,操作简单直观,适合各类用户使用。

Notifications You must be signed in to change notification settings

lerjtl/SakuraPanel

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

🌸 樱花面板 (SakuraPanel) 🌸

项目简介

樱花面板是一个基于Cloudflare Workers的代理管理面板,提供简洁美观的用户界面,支持多种代理协议和灵活的节点管理。该面板使用中文界面,操作简单直观,适合各类用户使用。

安全特性

樱花面板具有以下安全特性,以提高服务的稳定性和可用性:

  • 伪装网页:根路径显示伪装网页,防止被国内防火墙和Cloudflare的JavaScript检测识别为代理服务
  • 隐蔽访问:通过特定方式(如特定参数或路径)才能访问实际功能,避免被轻易发现
  • 智能路由:根据用户状态和访问方式智能路由,确保只有授权用户才能使用服务
  • 防封锁设计:采用多种技术手段降低被检测和封锁的风险

界面截图

以下是樱花面板的主要界面截图,展示了面板的主要功能和界面设计:

1. 登录界面

登录界面

2. 主面板界面

主面板界面

3. 节点管理界面

节点管理界面

4. 订阅配置界面

订阅配置界面

5. 代理设置界面

代理设置界面

主要功能

  • 用户认证系统:支持注册和登录功能,带有账户锁定机制
  • 节点管理:支持手动上传节点、添加节点路径、移除节点路径
  • 代理配置:支持VLESS协议,可生成Clash和通用客户端配置
  • 代理模式:支持直连、反代、SOCKS5等多种连接方式
  • UUID管理:支持更换UUID,方便用户管理订阅
  • Base64加密:支持对订阅链接进行Base64加密,提高安全性
  • 响应式设计:适配各种设备屏幕,支持明暗主题切换

壁纸同步系统

  • 支持自定义全局壁纸,所有界面同步显示
    • 🌅 支持白天/暗黑模式分别设置不同壁纸
    • 🔄 自动主题切换,实时更新背景
    • 💾 KV数据库存储,设置持久化保存
    • 🛡️ 认证保护,防止未授权修改
    • 📱 全界面同步,登录/配置/订阅页面统一显示

技术特点

  • 前端技术:HTML5、CSS3、JavaScript (ES6+)
  • 后端技术:Cloudflare Workers/Pages Functions
  • 数据库:Cloudflare KV存储
  • 加密技术:SHA-256哈希、Base64编码
  • 网络协议:VLESS、HTTP/HTTPS、WebSocket
  • 代理协议:SOCKS5、HTTP代理
  • 安全特性:密码加密、账户锁定、访问控制
  • 壁纸系统:KV存储持久化、主题自动切换、全界面同步

API端点

壁纸系统提供以下API端点:

  • /set-wallpaper - 设置壁纸(需要认证)
  • /get-wallpaper - 获取壁纸(需要认证)
  • /get-wallpaper-public - 获取公共壁纸(无需认证)
  • /reset-wallpaper - 重置为默认壁纸(需要认证)

系统要求

  • Cloudflare Workers账户
  • Cloudflare KV存储空间(用于数据持久化)
  • 支持WebSocket的现代浏览器

安装与部署

1. 准备工作

  1. 注册并登录Cloudflare账户
  2. 创建一个KV命名空间,用于存储用户数据:
    • 访问Cloudflare KV存储页面
    • 点击"创建命名空间"
    • 输入命名空间名称(例如:SakuraPanel-KV
    • 点击"添加"
  3. 记录创建的KV命名空间ID,后续绑定需要使用

2. KV存储绑定

  1. 在Cloudflare控制台中,进入Workers & Pages
  2. 选择你的Worker或Pages项目
  3. 点击"设置" -> "变量"
  4. 在"KV命名空间绑定"部分,添加以下绑定:
    • 变量名称KV数据库
    • KV命名空间:选择你创建的KV命名空间
  5. 点击"保存"

3. 部署代码

方法一:直接部署到Workers

  1. 访问Cloudflare Workers控制台
  2. 点击"创建服务"
  3. 输入服务名称(例如:SakuraPanel
  4. 选择"HTTP处理程序"作为启动器
  5. 点击"创建服务"
  6. 在"快速编辑"选项卡中,删除默认代码,将_worker.js文件的全部内容复制粘贴进去
  7. 点击"保存并部署"
  8. 部署成功后,你将获得一个*.workers.dev域名,可以通过该域名访问樱花面板

方法二:通过Pages部署

  1. 访问Cloudflare Pages控制台
  2. 点击"创建项目"
  3. 选择"上传资产"选项
  4. 输入项目名称(例如:SakuraPanel
  5. 点击"创建项目"
  6. 在"构建设置"部分,选择"无框架"
  7. 在"构建输出目录"中,输入public
  8. 点击"保存并部署"
  9. 部署完成后,点击"函数"选项卡
  10. 点击"创建函数",函数名称为_worker,点击"创建"
  11. 在函数编辑器中,删除默认代码,将_worker.js文件的全部内容复制粘贴进去
  12. 点击"保存并部署"

4. Pages设置说明

函数设置

  1. Cloudflare Pages控制台中,选择你的项目
  2. 点击"函数"选项卡
  3. 确保已创建名为_worker的函数
  4. 点击函数名称进入编辑器
  5. 确保代码已正确粘贴并保存

KV命名空间绑定

  1. Cloudflare Pages控制台中,选择你的项目
  2. 点击"设置" -> "函数"
  3. 在"KV命名空间绑定"部分,添加以下绑定:
    • 变量名称KV数据库
    • KV命名空间:选择你之前创建的KV命名空间
  4. 点击"保存"

环境变量配置

  1. Cloudflare Pages控制台中,选择你的项目
  2. 点击"设置" -> "环境变量"
  3. 添加以下环境变量(可选):
    • PASSWORD_HASH_SALT:密码加密盐值(默认为default_salt
    • MAX_LOGIN_ATTEMPTS:最大登录尝试次数(默认为5
    • LOCKOUT_DURATION:账户锁定时间(分钟,默认为30
  4. 点击"保存"

5. 自定义域名设置

Workers自定义域名设置

  1. 访问Cloudflare Workers控制台
  2. 选择你的Worker服务
  3. 点击"触发器"选项卡
  4. 在"自定义域"部分,点击"添加自定义域"
  5. 输入你的自定义域名(例如:panel.yourdomain.com
  6. 点击"添加自定义域"
  7. 按照提示在你的DNS提供商处添加CNAME记录,指向你的Worker域名(例如:your-worker.your-subdomain.workers.dev
  8. 等待DNS生效和SSL证书颁发(通常需要几分钟到几小时)

Pages自定义域名设置

  1. 访问Cloudflare Pages控制台
  2. 选择你的Pages项目
  3. 点击"自定义域"选项卡
  4. 点击"设置自定义域"
  5. 输入你的自定义域名(例如:panel.yourdomain.com
  6. 点击"继续"
  7. 按照提示在你的DNS提供商处添加CNAME记录,指向你的Pages项目域名(例如:your-project.pages.dev
  8. 等待DNS生效和SSL证书颁发(通常需要几分钟到几小时)

注意:自定义域名必须已经添加到你的Cloudflare账户中,并且使用Cloudflare的DNS服务。如果使用其他DNS提供商,请确保正确配置CNAME记录。

6. 可选环境变量设置

Workers环境变量设置

  1. 访问Cloudflare Workers控制台
  2. 选择你的Worker服务
  3. 点击"设置" -> "变量" -> "环境变量"
  4. 点击"添加变量"
  5. 添加以下环境变量(可选):
    • PASSWORD_HASH_SALT:密码加密盐值(默认为default_salt
    • MAX_LOGIN_ATTEMPTS:最大登录尝试次数(默认为5
    • LOCKOUT_DURATION:账户锁定时间(分钟,默认为30
    • PROXYIP:反代地址(默认值:ProxyIP.JP.CMLiussss.net
    • SOCKS5:SOCKS5账号(格式:用户名:密码@主机:端口
    • CUSTOM_LIGHT_BG:自定义白天壁纸URL
    • CUSTOM_DARK_BG:自定义暗黑壁纸URL
  6. 点击"保存"

Pages环境变量设置

  1. 访问Cloudflare Pages控制台
  2. 选择你的Pages项目
  3. 点击"设置" -> "环境变量"
  4. 点击"添加变量"
  5. 添加以下环境变量(可选):
    • PASSWORD_HASH_SALT:密码加密盐值(默认为default_salt
    • MAX_LOGIN_ATTEMPTS:最大登录尝试次数(默认为5
    • LOCKOUT_DURATION:账户锁定时间(分钟,默认为30
    • PROXYIP:反代地址(默认值:ProxyIP.JP.CMLiussss.net
    • SOCKS5:SOCKS5账号(格式:用户名:密码@主机:端口
    • CUSTOM_LIGHT_BG:自定义白天壁纸URL
    • CUSTOM_DARK_BG:自定义暗黑壁纸URL
  6. 点击"保存"

网址路径说明

基础URL结构

樱花面板部署后,可以通过以下URL访问:

  • Workers部署https://<worker-name>.<subdomain>.workers.dev
  • Pages部署https://<project-name>.pages.dev
  • 自定义域名https://<your-custom-domain>

主要路径功能

樱花面板提供多个功能路径,每个路径对应不同的功能:

1. 根路径 /

  • 功能:伪装网页,用于防止被检测和封锁
  • 行为
    • 显示一个正常的网页内容,伪装成普通网站
    • 防止被国内防火墙和Cloudflare的JavaScript检测识别为代理服务
    • 未登录用户:通过特定方式(如特定参数或路径)才能访问登录页面
    • 已登录用户:通过特定方式才能进入樱花面板主界面
  • 示例https://sakura-panel.workers.dev/
  • 安全特性
    • 伪装成普通网站,降低被检测风险
    • 避免被Cloudflare的JavaScript分析识别为代理服务
    • 提高服务的稳定性和可用性

2. 登录路径 /login

  • 功能:用户登录界面
  • 行为
    • 显示登录表单,包含用户名和密码输入框
    • 支持记住登录状态(通过Cookie)
    • 登录失败会显示错误信息和剩余尝试次数
  • 示例https://sakura-panel.workers.dev/login

3. 注册路径 /register

  • 功能:用户注册界面
  • 行为
    • 显示注册表单,包含用户名和密码输入框
    • 用户名要求:4-20位字母数字
    • 密码要求:至少6位
    • 注册成功后自动登录并跳转到主面板
  • 示例https://sakura-panel.workers.dev/register

4. 配置路径 /config

  • 功能:获取代理配置文件
  • 行为
    • 返回Clash或通用客户端的配置文件
    • 根据用户当前设置生成配置
    • 包含所有可用节点和代理设置
    • 文件名格式
      • 猫咪配置(Clash):机场名称.yaml(自动添加.yaml后缀)
      • 通用配置(V2Ray):机场名称.txt(自动添加.txt后缀)
      • 支持中文机场名称,自动过滤特殊字符
  • 示例https://sakura-panel.workers.dev/config

5. 订阅路径 /sub

  • 功能:获取订阅链接内容
  • 行为
    • 返回订阅链接对应的配置内容
    • 支持猫咪订阅和通用订阅两种格式
    • 包含用户UUID和当前节点列表
  • 示例https://sakura-panel.workers.dev/sub

6. 节点路径 /nodes

  • 功能:获取当前节点列表
  • 行为
    • 返回JSON格式的节点列表
    • 包含所有可用节点的地址、端口和名称
    • 可用于调试和节点管理
  • 示例https://sakura-panel.workers.dev/nodes

7. 用户路径 /user

  • 功能:获取当前用户信息
  • 行为
    • 返回JSON格式的用户信息
    • 包含用户名、UUID和设置
    • 需要登录状态才能访问
  • 示例https://sakura-panel.workers.dev/user

8. 设置路径 /settings

  • 功能:用户设置界面
  • 行为
    • 显示用户设置选项
    • 包含代理设置、UUID管理等功能
    • 支持保存和重置设置
  • 示例https://sakura-panel.workers.dev/settings

9. WebSocket路径 /?ed=2560

  • 功能:WebSocket连接路径
  • 行为
    • 用于VLESS协议的WebSocket传输
    • 支持TLS加密
    • 自动处理连接和代理逻辑
  • 示例wss://sakura-panel.workers.dev/?ed=2560

10. 管理路径 /admin

  • 功能:管理员界面(预留)
  • 行为
    • 提供高级管理功能
    • 支持用户管理和系统配置
    • 需要管理员权限才能访问
  • 示例https://sakura-panel.workers.dev/admin

API路径

樱花面板还提供一些API路径,用于程序化访问:

1. 登录API /api/login

  • 方法:POST
  • 功能:用户登录
  • 参数
    • username:用户名
    • password:密码
  • 返回:登录结果和用户信息

2. 注册API /api/register

  • 方法:POST
  • 功能:用户注册
  • 参数
    • username:用户名
    • password:密码
  • 返回:注册结果和用户信息

3. 节点上传API /api/upload-nodes

  • 方法:POST
  • 功能:上传节点文件
  • 参数
    • file:节点文件
  • 返回:上传结果

4. 路径管理API /api/manage-paths

  • 方法:POST/DELETE
  • 功能:添加或删除节点路径
  • 参数
    • url:节点文件URL
  • 返回:操作结果

5. 设置API /api/settings

  • 方法:GET/POST
  • 功能:获取或更新用户设置
  • 参数
    • proxy_enabled:代理开关
    • proxy_type:代理类型
    • force_proxy:强制代理
    • uuid:用户UUID
  • 返回:设置信息或更新结果

路径访问权限

不同路径有不同的访问权限要求:

  • 公开访问/login/register
  • 需要登录//config/sub/nodes/user/settings
  • 管理员权限/admin
  • API访问:所有/api/*路径需要相应的权限或认证

路径重定向

樱花面板会根据用户状态自动进行路径重定向:

  • 根路径(/)显示伪装网页,用户需要通过特定方式(如特定参数或路径)才能访问实际功能
  • 未登录用户访问需要登录的路径时,会自动重定向到/login
  • 已登录用户访问/login/register时,会自动重定向到主面板界面
  • 管理员用户有额外的路径访问权限

安全访问方式

为了安全地访问樱花面板,用户可以通过以下方式:

  1. 直接访问登录路径https://<your-domain>/login
  2. 使用特定参数https://<your-domain>/?panel=login(具体参数取决于实际实现)
  3. 使用特定子路径https://<your-domain>/panel(具体路径取决于实际实现)

这些安全访问方式可以有效避免被检测和封锁,同时确保只有知道正确访问方式的用户才能使用樱花面板。

自定义路径

樱花面板支持通过环境变量自定义部分路径:

  • LOGIN_PATH:自定义登录路径(默认:/login
  • REGISTER_PATH:自定义注册路径(默认:/register
  • CONFIG_PATH:自定义配置路径(默认:/config
  • SUB_PATH:自定义订阅路径(默认:/sub

这些自定义路径可以通过环境变量设置,详见"可选环境变量设置"部分。

使用指南

使用指南

首次使用

  1. 访问部署后的Worker URL
  2. 系统会自动跳转到注册页面
  3. 设置用户名(4-20位字母数字)和密码(至少6位)
  4. 完成注册后,系统会自动登录并进入主面板

登录与安全

  • 登录失败5次后,账户将被锁定5分钟
  • 系统会记录登录失败次数,并在锁定后显示倒计时
  • 支持通过Cookie保持登录状态(有效期5分钟)

节点管理

上传节点文件
  1. 在主面板中,找到"上传你的优选节点"部分
  2. 点击"选择文件",选择包含节点列表的文本文件(每行一个节点)
  3. 点击"上传"按钮,系统会自动处理并更新节点列表
添加节点路径
  1. 在"优选节点网络路径"部分,输入节点文件的URL(如:https://example.com/nodes.txt
  2. 点击"添加路径"按钮
  3. 系统会定期从这些路径获取最新的节点列表
移除节点路径
  1. 在节点路径列表中,找到要移除的路径
  2. 点击对应的"移除"按钮

壁纸设置

自定义壁纸
  1. 在"壁纸设置"部分,可以设置白天和暗黑模式的背景图片
  2. 输入壁纸图片URL地址(支持https协议)
  3. 可以分别为白天模式和暗黑模式设置不同的壁纸
  4. 留空则使用默认的樱花主题壁纸
壁纸同步
  1. 设置的壁纸会自动同步到所有界面(登录、注册、配置、订阅等)
  2. 系统会根据用户的主题偏好自动切换对应的壁纸
  3. 壁纸设置保存在KV数据库中,重启后仍然有效
恢复默认壁纸
  1. 点击"恢复默认"按钮可以重置为系统默认壁纸
  2. 恢复后需要重新设置自定义壁纸

代理设置

代理开关
  1. 在"代理设置"部分,使用开关启用或禁用代理功能
  2. 禁用时,系统将使用直连模式
代理类型选择
  1. 启用代理后,可以选择"反代"或"SOCKS5"两种类型
  2. 反代模式:使用Cloudflare的反向代理功能
  3. SOCKS5模式:使用配置的SOCKS5代理服务器
强制代理
  1. 启用"强制代理"后,所有连接都将通过代理服务器
  2. 禁用时,系统会优先尝试直连,失败时自动切换到代理

加密设置

Base64加密配置
  1. 在"加密设置"部分,可以启用或禁用Base64加密功能
  2. 启用后,系统会自动将猫咪和通用配置加密为Base64格式并保存到数据库
  3. 关闭后,系统会自动将配置恢复为原始格式并保存到数据库
  4. 点击开关后,系统会立即处理所有配置的加密/解密,无需额外操作

订阅配置

获取订阅链接
  1. 在主面板中,找到"猫咪订阅"或"通用订阅"部分
  2. 复制显示的订阅链接
  3. 在支持的客户端中导入该链接
更换UUID
  1. 在"当前UUID"部分,点击"更换UUID"按钮
  2. 系统会生成一个新的UUID
  3. 更换后,需要重新获取订阅链接

退出登录

  1. 在主面板底部,点击"退出登录"按钮
  2. 系统会清除登录状态并返回登录页面

配置说明

节点格式

文件上传限制

系统对上传的节点文件有以下限制:

  • 文件格式:仅支持.txt格式的文本文件
  • 文件大小:最大1MB
  • 内容要求:每行一个节点,符合以下格式要求

节点格式规范

系统支持多种节点格式,每行一个节点,格式灵活可选:

  1. 完整格式[地址]:端口#节点名称@tls/notls

    • 示例:1.2.3.4:443#美国-01@tls
    • 示例:[2001:db8::1]:443#日本-01@notls
  2. 不带端口格式[地址]#节点名称@tls/notls

    • 示例:1.2.3.4#美国-01@tls
    • 系统将使用默认端口443
  3. 不带协议格式[地址]:端口#节点名称

    • 示例:1.2.3.4:443#美国-01
    • 系统将使用默认协议tls
  4. 最简格式[地址]

    • 示例:1.2.3.4
    • 系统将使用默认端口443、默认协议tls、默认节点名称"🌸樱花"

格式说明

  • 地址:支持IPv4地址(如1.2.3.4)、IPv6地址(如[2001:db8::1])和域名(如example.comsub.example.com
  • 端口:范围1-65535,未指定时使用默认值443
  • 节点名称:自定义节点名称,未指定时使用默认值"🌸樱花"
  • 协议:支持tls(加密连接)和notls(非加密连接),未指定时使用默认值tls

示例文件内容

# 完整格式示例
1.2.3.4:443#美国-01@tls
[2001:db8::1]:443#日本-01@notls
example.com:443#示例域名-01@tls
sub.example.com:8080#子域名-01@notls

# 不带端口示例
5.6.7.8#香港-01@tls
[2001:db8::2]#新加坡-01@notls
another-example.com#域名示例-01@tls

# 不带协议示例
9.10.11.12:8080#台湾-01
[2001:db8::3]:2053#韩国-01
test-domain.com:443#测试域名-01

# 最简格式示例
13.14.15.16
[2001:db8::4]
simple-domain.com

验证规则

系统会对上传的节点文件进行以下验证:

  1. 文件格式验证:确保文件为.txt格式
  2. 文件大小验证:确保文件不超过1MB
  3. 节点格式验证:确保每行节点符合上述格式要求
  4. 地址有效性验证:确保IPv4地址格式正确,域名格式符合标准
  5. 端口范围验证:如果指定了端口,确保在1-65535范围内

不符合格式要求的节点将被忽略,只有符合要求的节点才会被添加到节点列表中。

环境变量

PROXYIP

设置反代地址,格式为主机:端口,例如:

ProxyIP.JP.CMLiussss.net:443

SOCKS5

设置SOCKS5代理账号,格式为用户名:密码@主机:端口,例如:

username:password@socks.example.com:1080

技术细节

伪装网页技术

樱花面板采用伪装网页技术来防止被检测和封锁:

  • 正常网页内容:根路径返回看起来像普通网站的内容,包含HTML、CSS和JavaScript
  • 反检测设计
    • 避免使用常见的代理相关关键词
    • 使用正常的网页结构和资源引用
    • 模拟真实网站的交互行为
  • 隐蔽入口
    • 通过特定参数(如?panel=login)访问登录页面
    • 通过特定子路径(如/panel)访问主面板
    • 这些入口不会在伪装网页中直接显示

协议支持

  • VLESS:支持VLESS协议,使用WebSocket传输
  • TLS:支持TLS加密,可通过@tls@notls指定
  • WebSocket路径:默认使用/?ed=2560作为WebSocket路径

连接模式

樱花面板支持多种代理连接模式,用户可以根据网络环境和需求选择合适的模式:

1. 直连模式

  • 工作原理:客户端 → Cloudflare Workers → 目标网站
  • 归属地显示:客户端真实IP归属地
  • 使用场景:网络环境良好,无需代理

2. 强制代理模式

  • 工作原理:客户端 → Cloudflare Workers → 强制代理服务器 → 目标网站
  • 归属地显示:强制代理服务器归属地
  • 特点:所有流量强制通过代理服务器,固定出口IP
  • 子模式
    • 反代模式:使用TCP透传,直接转发到反代服务器
    • SOCKS5模式:使用SOCKS5协议连接代理服务器

3. 动态代理模式(智能模式)

  • 工作原理
    客户端 → Cloudflare Workers → 目标网站
               ↓ 直连失败
           强制代理服务器 → 目标网站
    
  • 归属地显示
    • 直连成功:客户端真实IP归属地
    • 直连失败切换代理:强制代理服务器归属地
  • 特点:智能切换,优先直连,失败时自动切代理

代理设置说明

强制代理 vs 动态代理

模式 连接策略 归属地显示 适用场景
强制代理 始终使用代理 代理服务器IP 需要固定出口IP
动态代理 智能切换 直连/代理IP 平衡速度和稳定性

反代模式 vs SOCKS5模式

模式 协议类型 连接方式 性能特点
反代模式 TCP透传 直接转发 速度快,延迟低
SOCKS5模式 SOCKS5协议 握手认证 更安全,支持认证

智能连接逻辑

系统会根据以下优先级尝试连接:

  1. 如果代理未启用,使用直连
  2. 如果强制代理启用,直接使用配置的代理类型连接
  3. 如果代理启用但未强制,先尝试直连,失败后切换到代理

错误处理流程

当连接失败时,系统会:

  1. 强制代理模式:直接报错,不尝试其他方式
  2. 动态代理模式
    • 直连失败 → 自动切换到代理
    • 代理失败 → 报错并记录日志

控制台日志

系统会在控制台输出详细的连接日志:

  • 强制通过反代连接: [代理地址] - 强制反代模式
  • 强制通过 SOCKS5 连接: [目标地址] - 强制SOCKS5模式
  • 直连失败,动态切换到代理: [错误信息] - 动态模式切换
  • 动态通过反代连接: [代理地址] - 动态反代切换
  • 动态通过 SOCKS5 连接: [目标地址] - 动态SOCKS5切换
  • 回退到直连: [目标地址] - 直连模式

错误处理

  • 系统会记录连接失败日志
  • 节点拉取失败时会使用缓存的节点列表
  • 所有路径拉取失败时会显示错误提示

常见问题

Q: 如何绑定KV存储空间?

A: 在Cloudflare Workers设置中,进入"变量"页面,在"KV命名空间绑定"部分添加变量名为KV数据库的绑定,并选择你创建的KV命名空间。

Q: 为什么无法登录?

A: 请检查以下几点:

  1. 确保已经正确绑定了KV存储空间
  2. 检查用户名和密码是否正确
  3. 如果多次登录失败,账户可能被锁定,请等待5分钟后重试

Q: 如何添加自己的节点?

A: 你可以通过以下两种方式添加节点:

  1. 上传包含节点列表的文本文件(支持IP地址和域名)
  2. 添加节点文件的URL,系统会定期从该URL获取节点列表

Q: 订阅链接无法使用怎么办?

A: 请尝试以下步骤:

  1. 确认节点列表是否正确配置
  2. 尝试更换UUID
  3. 检查客户端是否支持VLESS协议
  4. 如果启用了Base64加密,请确保客户端支持Base64编码的配置文件

Q: 启用Base64加密后,猫咪配置导入Clash报错怎么办?

A: 当启用Base64加密功能后,猫咪配置会以Base64格式返回。部分Clash客户端可能无法直接识别Base64格式的配置文件。请尝试以下方法:

  1. 使用支持Base64配置的客户端:一些高级版本的Clash客户端支持自动识别和解码Base64格式的配置文件。

  2. 手动解密配置

    • 下载Base64格式的配置文件(文件名通常为clash-config.b64
    • 使用Base64解码工具将配置文件解码为YAML格式
    • 将解码后的YAML配置文件导入Clash客户端
  3. 临时关闭Base64加密

    • 在面板中关闭Base64加密开关
    • 重新生成猫咪配置
    • 导入普通的YAML格式配置文件
  4. 使用脚本自动处理

    // 在浏览器控制台中运行以下代码
    fetch('你的订阅链接')
      .then(response => response.text())
      .then(config => {
        const decoded = decodeURIComponent(escape(atob(config)));
        console.log('解码后的配置:', decoded);
        // 将解码后的配置保存为.yaml文件并导入Clash
      });

注意:Base64加密功能主要用于提高配置文件的安全性,防止被轻易识别和拦截。如果您不需要此功能,可以随时在面板中关闭它。

Q: 如何提高连接速度?

A: 可以尝试以下方法:

  1. 使用自定义域名(最重要):默认的workers.dev或pages.dev域名容易被运营商限速或封锁,使用自定义域名可以显著提高连接速度和稳定性
  2. 添加更多优质节点
  3. 启用代理功能并选择合适的代理类型
  4. 使用"强制代理"模式确保所有连接都通过代理服务器

Q: 部分地区中国移动和中国电信用户无法正常使用节点,出现timeout提示?

A: 重要警告:部分地区的中国移动和中国电信用户在使用节点时,可能会在Clash客户端中出现timeout提示。经测试,中国联通和中国广电网络可正常使用该节点服务。各地运营商所采用的防火墙策略存在差异,部分地区的移动和电信用户仍可能正常访问。

⚠️ 强烈建议使用自定义域名

  • 部分地区运营商会针对*.workers.dev*.pages.dev默认域名进行封锁
  • 使用自定义域名可以显著降低被封锁的风险
  • 即使在Clash系列客户端显示timeout时,使用自定义域名仍有80%几率连接成功
  • 自定义域名设置方法详见自定义域名设置部分

如果您遇到连接问题,建议:

  1. 优先使用自定义域名,避免使用默认的workers.dev或pages.dev域名
  2. 尝试更换不同的网络环境(如切换到中国联通或中国广电网络)
  3. 尝试使用不同的代理模式(反代或SOCKS5)

Q: 加密模式的Clash配置在哪些客户端上能正常解密?

A: 经测试,flclash、Clash Meta for Android 和 Nekobox 暂时无法解密(配置文件可能带有某种未知的解密原理)。V2RayN 客户端的通用配置可以自动解密。

Q: Clash 客户端显示 timeout 时该怎么办?

A: 不要在意 Clash 客户端显示的 timeout。如果使用 flclash 能显示落地 IP,就表示能连接(可以随意点击 IPv4/IPv6 节点连接)。Nekobox 和 V2RayNG 除外。

💡 重要提示:如果您使用的是默认的*.workers.dev*.pages.dev域名,强烈建议设置自定义域名:

  • 默认域名容易被运营商针对性封锁
  • 使用自定义域名后,即使Clash显示timeout,仍有约80%几率可以成功连接
  • 自定义域名是解决连接问题的最有效方法之一

Q: 在面板打开强制代理后,为什么 flclash 显示的落地 IP 和归属地总是反代/SK5 的?

A: 在面板打开强制代理后,flclash 会显示反代/SK5 的落地 IP 和归属地,无论选择的是哪个归属地的优选 IP,都会强制显示为反代/SK5 的落地 IP 和归属地。

更新日志

v1.2.3

  • 优化配置文件下载文件名格式:
    • 猫咪配置(Clash)自动添加.yaml后缀,便于客户端识别
    • 通用配置(V2Ray/V2RayNG/V2RayN)自动添加.txt后缀,符合标准格式
    • 保持机场名称作为文件名主体,支持中文显示
    • 采用双文件名格式(filename和filename*=utf-8'')确保兼容性

v1.2.2

  • 新增配置文件名自定义功能:
    • 为Clash、V2Ray、V2RayNG、V2RayN配置添加Content-Disposition响应头
    • 支持自定义下载文件名,使用机场名称作为文件名
    • 采用双文件名格式(filename和filename*=utf-8'')确保中文文件名正确显示
    • 过滤特殊字符,确保文件名安全
    • 默认使用"❀Sakura樱花订阅❀"作为机场名称
  • 优化wrangler.toml配置:
    • 添加详细中文注释说明
    • 明确各配置项的作用和使用方法
    • 提供完整的环境变量配置指南

v1.2.1

  • 修复代理地址配置问题:
    • 更新默认反代地址为 ProxyIP.JP.CMLiussss.net
    • 完善代理模式文档说明
    • 优化代理连接逻辑和错误处理

v1.2.0

  • 新增Base64加密功能:
    • 添加Base64加密开关,支持对订阅链接进行加密
    • 点击开关后立即将猫咪和通用配置加密/解密并保存到KV数据库
    • 提高订阅链接的安全性,防止被轻易识别和拦截
  • 优化配置生成逻辑,支持加密和非加密两种模式
  • 改进用户界面,添加加密设置卡片

v1.1.0

  • 增强节点文件上传功能:
    • 添加文件格式验证,仅支持.txt格式文件
    • 添加文件大小限制,最大1MB
    • 支持多种灵活的节点格式:
      • 完整格式:[地址]:端口#节点名称@tls/notls
      • 不带端口格式:[地址]#节点名称@tls/notls
      • 不带协议格式:[地址]:端口#节点名称
      • 最简格式:[地址]
    • 添加节点格式验证和地址有效性检查
    • 未指定端口时使用默认值443
    • 未指定协议时使用默认值tls
    • 未指定节点名称时使用默认值"🌸樱花"
  • 优化用户界面,添加文件格式要求说明
  • 改进错误提示和用户体验

v1.0.0

  • 初始版本发布
  • 支持用户注册和登录
  • 支持节点管理和订阅生成
  • 支持多种代理模式和智能连接

贡献

欢迎提交Issue和Pull Request来改进这个项目。

许可证

本项目采用MIT许可证,详情请参阅LICENSE文件。

联系方式

如有问题或建议,请通过以下方式联系:


注意:本项目仅用于学习和研究目的,请遵守当地法律法规,不要用于非法用途。

About

樱花面板是一个基于Cloudflare Workers的代理管理面板,提供简洁美观的用户界面,支持多种代理协议和灵活的节点管理。该面板使用中文界面,操作简单直观,适合各类用户使用。

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • JavaScript 93.0%
  • TypeScript 7.0%