Zephyr v2.3.5
Zephyr v2.3.5 — Failover 集成、Linux TUN 权限、订阅诊断增强
Failover 引擎集成到代理测试流水线,节点连续失败时自动切换;Linux TUN 支持通过 pkexec 一键授权;订阅下载失败现提供细粒度错误诊断(8 个错误码),手动下载失败也写入 App Logs。
新功能
Failover 集成到代理测试流水线
Failover 引擎已与手动测速和 Smart 自动测速流水线完整集成。当前活动节点连续失败时,自动切换至同组内延迟最优的候选节点。在设置中打开“故障转移”功能,以在节点故障时自动切换。
Linux TUN 权限一键授权
Linux 平台 TUN 模式首次启动失败时,弹出 pkexec 授权对话框:
- 为 mihomo 二进制授予
CAP_NET_ADMINcapability - 安装 polkit 规则(
/etc/polkit-1/rules.d/50-zephyr-tun.rules),后续 DNS/路由配置无需重复授权 - 授权成功后自动重启核心并启用 TUN
- 用户名合法性校验(仅允许字母数字、
_、-、.、@)
订阅下载细粒度错误诊断
订阅下载失败现提供详细诊断信息,所有手动下载失败均写入 App Logs:
| 错误码 | 名称 | 说明 |
|---|---|---|
| 2007 | SUB_SSRF_BLOCKED | SSRF 防护拦截(含恶意域名和解析到的内网 IP) |
| 2008 | SUB_NAME_INVALID | 订阅名称校验失败 |
| 2009 | SUB_URL_INVALID | URL 格式校验失败 |
| 2010 | SUB_DNS_FAILED | DNS 解析失败(含失败域名) |
| 2011 | SUB_HTTP_ERROR | HTTP 错误(含状态码和最终 URL) |
| 2012 | SUB_NETWORK_ERROR | 网络/连接错误(区分直连和代理回退) |
| 2013 | SUB_RESPONSE_TOO_LARGE | 响应体超限 |
| 2014 | SUB_YAML_INVALID | YAML 解析/校验失败 |
- SSRF 错误现包含具体域名和解析到的内网 IP
- HTTP 错误现包含状态码和脱敏后的最终 URL
- 网络错误区分直连和代理回退路径(如
Direct: Connection refused | Proxy: timeout) - 错误消息中的 URL 自动脱敏(移除 query 参数和凭据),防止 token 泄漏
- 修复 URL 脱敏在括号/引号/标点包裹时的边界解析问题
代码质量
- 全量 JSDoc / TypeScript 类型注解修复,新增 CI
typecheck工作流 mask_url()标记#[must_use]subscription.rs拆分download_sub_inner_raw/download_sub_inner(脱敏层分离)