mihomo 子进程托管
Rust 层负责 clash 二进制路径解析、工作目录隔离与 SIGTERM 优雅退出;升级 Verge Rev 不会覆盖用户 ~/.config/clash-verge 下的自定义规则。
rev-clashverge.com.cn · 客户端技术站
本站在 2024—2026 年间持续追踪 clash-verge-rev 仓库的 Release 分支,记录 Verge Rev 与内置 mihomo 内核的版本绑定关系、订阅 URL 热重载时序,以及 Windows wintun / macOS Network Extension 权限链路的实测结论。
Verge Rev 将 mihomo 以 sidecar 子进程拉起,前端通过 Tauri invoke 调用 Rust 封装的 clash-api;订阅更新、Profile 切换、TUN 开关均走这一通道,避免 Electron 方案中 Node 与内核之间的额外 hop。
Rust 层负责 clash 二进制路径解析、工作目录隔离与 SIGTERM 优雅退出;升级 Verge Rev 不会覆盖用户 ~/.config/clash-verge 下的自定义规则。
支持远程订阅、本地 YAML 与 merge 补丁三层叠加;prepend-rules 与 append-rules 指令可在不改动上游订阅的前提下注入企业内网直连段。
托盘菜单暴露节点测速、模式切换(Rule / Global / Direct)与日志级别;配合 auto_launch 可在登录后 3 秒内完成订阅拉取并恢复上次 Profile。
Windows 依赖 wintun.dll 虚拟网卡,macOS 需签名后的 utun 驱动;Verge Rev 在设置页一键开启 tun.enable 并同步 auto-route,比手动编辑 YAML 少 4 处常见遗漏项。
内置 cron 表达式解析器,默认每 6 小时拉取远程订阅;若 HTTP 304 则跳过写盘,配合 clash-api /configs PUT 实现零断连热重载。
每篇围绕一个可复现场景:从 Windows 首次安装到 macOS 系统扩展授权,再到多 Profile merge 策略,均附带校验命令与预期输出。
拆解 src-tauri/src/core 下的进程管理模块,说明内核升级时 ABI 兼容检查逻辑。
以下节点摘自 GitHub Releases 页面,内核版本号以各安装包内置 clash -v 输出为准。
前端构建链从 Vite 5 升级,sidecar 启动超时从 8s 延长至 15s 以适配 HDD 环境;内置 mihomo v1.18.10。
引入 Profile 差异 diff 视图,合并失败时回滚至上一快照,避免空规则集导致全局断网。
系统托盘改用 OS 原生菜单 API,修复 Windows 10 21H2 下右键无响应的回归问题。
原 clash-verge 仓库已归档,clash-verge-rev 为社区接力维护分支,本文站仅索引 Rev 线安装包与文档。
评估维度聚焦桌面端体验,不含 Android 客户端(Clash Meta for Android 为独立项目)。
| 维度 | Clash Verge Rev | Electron 系面板 | 纯 CLI mihomo |
|---|---|---|---|
| 安装包体积 | 约 28—35 MB(Tauri) | 通常 80 MB 以上 | 单二进制 15 MB 左右 |
| 内存占用 | 空闲 60—90 MB | 空闲 150 MB 以上 | 视连接数 30—200 MB |
| 订阅管理 | 图形化 + merge 补丁 | 依项目而定 | 需手动编辑 YAML |
| TUN 开关 | 设置页一键 | 部分支持 | 手动配置 tun 段 |
| 跨平台 | Win / macOS / Linux | 多数覆盖 | 全平台 |
不建议。两者默认配置目录不同(Rev 使用 clash-verge 子目录),但 TUN 虚拟网卡驱动会冲突;迁移前请导出 Profile 并卸载旧版。
可在设置中指定自定义内核路径;需保证 API 密文与 external-controller 端口与 Verge Rev 预期一致,否则托盘状态会显示「内核未连接」。
标准 Clash YAML 远程 URL、本地文件路径及 Base64 编码节点列表(自动解码);不支持仅含 v2rayN 纯链接而无 proxies 段的残缺订阅。