Skip to content

Zephyr v2.1.0

Choose a tag to compare

@github-actions github-actions released this 06 May 17:20

Zephyr v2.1.0 — 便携版支持 & UI 缩放 & SSRF 优化 & DNS 防泄漏

新增便携版(Portable)支持,无需安装、数据随程序携带;新增 UI 缩放功能;优化 SSRF 策略允许用户主动输入内网地址;TUN 模式自动注入 DNS 劫持防止泄漏。

✨ 新功能

便携版支持(Portable Mode)

Zephyr 现在支持便携版运行模式,无需安装,解压即用:

  • 自动检测:当程序目录存在 .portable 标记文件时,自动进入便携模式
  • 数据隔离:所有数据(配置、订阅、核心、缓存)存储在程序所在目录,不写入系统目录(Windows AppData / Linux ~/.config)
  • 多实例:可同时运行多个便携版实例(注意系统代理端口冲突和 TUN 互斥)
  • CI 构建:Release 流水线新增便携版产物
    • Windows: Zephyr-windows-portable.zip
    • Linux: Zephyr-linux-portable.tar.gz(AppImage + 数据目录)

便携版限制:

  • ❌ 不支持开机自启
  • ❌ 不支持客户端内更新(需手动下载新版)

详见 PORTABLE.md

UI 缩放(UI Scale)

新增用户可控的界面缩放功能:

  • 设置入口:Settings → Appearance → UI Scale
  • 持久化:缩放偏好保存到 settings.json
  • 实现方式:CSS transform: scale() 应用到整个应用根元素

SSRF 策略优化

重构 SSRF 防护策略,区分"用户主动行为"和"重定向攻击":

场景 之前 现在
用户直接输入内网地址 ❌ 拒绝 允许
公网 URL 重定向到内网 ❌ 拒绝 拒绝(保持)

为什么安全

  • 用户主动输入内网地址是预期行为
  • SSRF 攻击的核心是攻击者控制重定向目标,而非用户主动输入
  • DNS Pinning 保持不变,防止 DNS 重绑定攻击

影响范围:订阅下载、规则库导入。

TUN 模式 DNS 防泄漏

启用 TUN 模式时,自动注入 dns-hijack 配置:

tun:
  enable: true
  dns-hijack:
    - any:53        # UDP DNS
    - tcp://any:53  # TCP DNS
  • 自动注入:如果配置中已存在 dns-hijack,确保包含上述两项;如果不存在,自动创建
  • 防泄漏原理:劫持所有 53 端口的 DNS 流量到 Mihomo,防止应用绕过代理直接查询系统 DNS
  • 单元测试:新增 5 个测试用例覆盖各种配置场景

🔧 改进与修复

  • 依赖更新
    • OpenSSL 安全更新(openssl crate)
    • glib 0.22.6 → 0.22.7
    • 多个前端开发依赖(dependabot 自动更新)
  • 代码结构:修复 shared package 导入路径(使用 @zephyr/shared 而非生成的 _shared 路径)

📦 下载说明

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

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

便携版使用:解压后确保目录中有 .portable 标记文件,然后运行可执行文件。详见 PORTABLE.md

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