Skip to content

Zephyr v2.2.0

Choose a tag to compare

@github-actions github-actions released this 13 May 20:11

Zephyr v2.2.0 — 订阅自动更新 & 代理记忆 & 订阅编辑 & 安全加固

新增订阅自动更新调度器、代理节点记忆(切换配置自动恢复上次节点)、订阅右键编辑面板;安全方面:加密函数不再静默失败、get_config_url 从 IPC 降级为内部函数防止 URL 泄漏、新增 REALITY short-id 科学计数法保护、CFW 遗留键清理、escapeAttr 函数、Mihomo 日志截断。

✨ 新功能

订阅自动更新调度器

新增后台订阅自动更新调度器(subscription_scheduler.rs)。

代理节点记忆

新增代理节点选择记忆功能(proxy-memory.js),记住每个配置文件上次使用的代理节点。

订阅编辑面板

订阅列表新增右键编辑功能。

批量更新

新增 download_sub_batch 命令,一键更新所有订阅:

  • 绕过速率限制:批量更新不走单次速率限制器,避免"全部更新"被误拦截
  • 逐个执行:串行执行每个订阅的下载,收集成功/失败结果
  • URL 回退:每个订阅可传入 URL 或从 metadata 中解析(resolve_url_from_metadata

🔒 安全加固

get_config_url 降级为内部函数

get_config_url 从 Tauri Command(暴露给前端)降级为内部 pub fn,防止订阅 URL 泄漏到前端 JavaScript:

加密函数错误传播

obfuscate_string / deobfuscate_string 返回类型从 String 改为 Result<String, String>

  • 不再静默失败(之前返回空字符串)
  • 解密使用 String::from_utf8(严格校验)替代 String::from_utf8_lossy
  • 移除所有 eprintln!("[Security] CRITICAL: ...") 日志,避免敏感信息泄露到 stdout

密钥存储改进

  • 移除 current_exe 回退:删除可执行文件目录回退路径(不可靠)
  • hex 编码:持久化密钥改用 hex 编码存储,读取时验证精确 32 字节
  • CFW 遗留密钥清理:自动清理 Clash for Windows 旧格式加密文件

REALITY short-id 科学计数法保护

新增 quote_short_id_values 函数,在 YAML 解析前给 short-id 值加引号:该函数在 download_sub_inner 中调用,确保 REALITY 配置的正确性。附带 9 个单元测试。

CFW 遗留键清理

config_sanitizer.rs 新增 6 个 Clash-for-Windows 遗留键的清理:这些键在 Mihomo 中无效果,但可能被用于注入意外行为。

escapeAttr 函数

sanitize.js 新增 escapeAttr 函数,在 escapeHtml 基础上额外转义 "':用于 HTML 属性值场景(如 title="${escapeAttr(value)}"),防止属性注入。已在 rules.jssubscriptions.jsrule-library.js 等模块中使用。

Mihomo 日志截断

core_log.rs 新增日志行长度限制。

Base64 验证增强

try_decode_base64_content 现在验证解码后的 proxies 键的值是 sequence(数组),而不仅仅是字符串包含检查,防止格式错误的 Base64 内容被接受。

🐛 Bug 修复

  • UI 缩放:下拉菜单、设置面板、代理卡片、规则库、TUN 面板在 UI 缩放时正确适配
  • 订阅切换:切换订阅时实时读取 last_config(绕过缓存),避免闭包捕获过期值
  • 速率限制:批量订阅更新时绕过单次速率限制
  • ESLint:修复 no-unused-varsno-duplicate-imports 错误

🔧 改进

指标 v2.1.1 v2.2.0 变化
IPC 命令 121 125 +5 新增,-1 降级(get_config_url
Rust 测试 304 341 +37
代码重构 提取 validate_config_for_updateupdate_metadata_entryresolve_url_from_metadata 等辅助函数
i18n 新增调度器、编辑面板、代理记忆相关翻译键

📦 下载说明

请根据您的操作系统选择对应版本:

平台 安装版 (Full) 安装版 (Lite) 便携版
Windows Zephyr_2.2.0_x64-setup-full.exe Zephyr_2.2.0_x64-setup-lite.exe Zephyr-windows-portable.zip
Windows (MSI) Zephyr_2.2.0_x64_zh-CN-full.msi Zephyr_2.2.0_x64_zh-CN-lite.msi
macOS (Apple Silicon) Zephyr_2.2.0_aarch64-full.dmg Zephyr_2.2.0_aarch64-lite.dmg
macOS (Intel) Zephyr_2.2.0_x64-full.dmg Zephyr_2.2.0_x64-lite.dmg
Linux (deb) Zephyr_2.2.0_amd64-full.deb Zephyr_2.2.0_amd64-lite.deb
Linux (AppImage) Zephyr_2.2.0_amd64-full.AppImage Zephyr_2.2.0_amd64-lite.AppImage Zephyr-linux-portable.tar.gz
Linux (RPM) Zephyr-2.2.0-1.x86_64-full.rpm Zephyr-2.2.0-1.x86_64-lite.rpm

⚠️免责声明:本项目由 AI 开发,安全性和性能尚未经充分验证,请自行评估使用风险。如发现安全问题或 Bug,欢迎提交 Issue。