Skip to content

Zephyr v2.3.5

Choose a tag to compare

@Juwan-Hwang Juwan-Hwang released this 03 Jun 20:14
bfff30d

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_ADMIN capability
  • 安装 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(脱敏层分离)