Zephyr v2.1.0
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 + 数据目录)
- Windows:
便携版限制:
- ❌ 不支持开机自启
- ❌ 不支持客户端内更新(需手动下载新版)
详见 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 安全更新(
opensslcrate) - glib 0.22.6 → 0.22.7
- 多个前端开发依赖(dependabot 自动更新)
- OpenSSL 安全更新(
- 代码结构:修复 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。