Skip to content

Features

Juwan-Hwang edited this page Apr 10, 2026 · 30 revisions

功能特性

🚀 核心能力

实时流量监控

基于原生 Canvas 2D API 手绘的双色面积图,不依赖任何第三方图表库。

  • 双色面积图 — 紫色(下载)+ 蓝色(上传)平滑贝塞尔曲线
  • 60 秒滑动窗口 — 保留最近 60 个数据点,requestAnimationFrame 节流渲染
  • HTTP Streaming — 通过 Mihomo /traffic 端点的 ReadableStream 实时推送,非 WebSocket
  • 智能重连 — 指数退避策略(1s → 30s),最大 15 次重试,连续 10 次解析错误自动重连
  • DPR 适配 — 自动适配设备像素比,Retina 屏幕清晰渲染

智能节点选择

  • 高分屏自适应 — 1-4 列响应式网格布局,自动适配屏幕宽度
  • 延迟颜色编码 — <200ms 绿色、<500ms 黄色、其余红色
  • 多维度排序 — 默认顺序 / 按延迟升序 / 按名称排序,一键循环切换
  • 3D 悬浮效果 — 鼠标跟踪透视变换(perspective + rotateX/Y),requestAnimationFrame 节流
  • 虚拟化渲染content-visibility: auto 优化大量节点场景
  • 节点滚轮 — 首页交互式滚轮选择器,鼠标悬停 300ms 或点击展开完整列表

快速延迟测试

  • 并行检测 — 通过 Mihomo /proxies/{name}/delay API 并行测试
  • 乐观 UI — 测试启动时立即显示加载动画,结果返回后平滑更新
  • 后台刷新 — 测试完成后自动刷新节点列表

多种运行模式

三段式滑块切换,带动画过渡:

模式 说明
Rule 规则分流(默认),按规则匹配流量
Global 全局代理,所有流量走代理
Direct 直连模式,所有流量直连

TUN 虚拟网卡

系统级透明代理,自动配置路由。

  • macOS — 通过 osascript 请求管理员权限,以 root 身份启动 Mihomo 进程
  • Windows / Linux — 标准权限启动,自动配置路由
  • 状态同步 — TUN 开关状态在主窗口和托盘菜单之间双向实时同步
  • 托盘图标 — TUN 激活时托盘图标变为红色,系统代理激活时变为黄色

🔒 安全设计

SSRF 防护

订阅链接下载时实施多层防护:

  1. DNS 解析验证 — 先解析域名的 IP 地址,确认非私有 IP 后才发起请求
  2. 私有 IP/Host 拦截 — 阻止 127.0.0.0/810.0.0.0/8172.16.0.0/12192.168.0.0/16localhost.local.test
  3. 重定向链校验 — 自定义重定向策略(最多 5 次),每次重定向都验证目标
  4. 协议白名单 — 仅允许 HTTP/HTTPS 协议

供应链安全

  • SHA256 完整性校验 — 内核更新和 GeoIP/GeoSite 数据下载均从 GitHub API 获取预期哈希值,校验失败中止
  • 可信域名白名单 — 仅允许 github.comapi.github.comobjects.githubusercontent.com
  • 文件大小限制 — 下载压缩包 100MB 上限,解压后 200MB 上限
  • 路径遍历防护 — ZIP/TAR 解压时检查 ..、绝对路径等危险路径

安全凭证存储

  • AES-256-GCM 加密 — 订阅 URL 和使用量元数据(sub_info)加密存储
  • PBKDF2 密钥派生 — 从机器指纹派生 32 字节密钥(100,000 次迭代)
  • 机器绑定 — Windows 使用 MachineGuid + 卷序列号,macOS 使用 IOPlatformUUID + 序列号,Linux 使用 /etc/machine-id
  • 密钥持久化 — 首次生成后持久化到平台特定路径,跨会话一致
  • v2 格式"v2:" + nonce + ciphertext,Base64 编码

路径遍历防护

  • URL 解码 — 先解码再提取文件名,防止编码绕过
  • 文件名净化 — 检查 ..、路径分隔符、空字节、控制字符、扩展名白名单、长度限制(255 字符)
  • Windows 保留名 — 拒绝 CONPRNAUXNUL 等保留名称
  • 目录边界验证canonicalize 或字符串前缀检查,确保文件在预期目录内

危险配置清除

自动移除 YAML 配置中的危险键:

  • 全局scriptscript-path(防止脚本注入)
  • proxy-providerpath(防止任意文件读取)
  • 其他位置path 键不受影响

文件权限控制

  • Unix — 配置文件以 0600 权限创建(仅所有者可读写)
  • Windows — 使用 DACL 设置仅当前用户 + SYSTEM 可访问

🖥️ 跨平台支持

Windows

  • NSIS 安装包 + MSI(Full / Lite 双版本)
  • 注册表原子写入系统代理(带回滚)
  • UWP 环回免除工具(5 分钟限流 + 用户确认对话框)
  • PowerShell 脚本 Base64 编码执行
  • 中英双语安装器

macOS

  • DMG 安装包(自定义背景和窗口布局)
  • Apple Silicon + Intel 通用二进制(交叉编译)
  • TUN 模式通过 osascript 提权
  • networksetup 逐服务设置代理
  • 最低支持 macOS 10.13 (High Sierra)

Linux

  • DEB + AppImage + RPM 三种格式
  • GNOME(gsettings 原子写入)、KDE(kwriteconfig5/6 + DBus)、XFCE(xfconf-query
  • 系统原生窗口装饰(非透明无边框)
  • TUN 模式通过 pkexec 提权

📡 订阅管理

  • 多格式兼容 — Clash YAML、Base64 编码订阅(自动检测并解码)
  • 客户端伪装 — 自定义 User-Agent,内置 Clash Verge / Mihomo Party / Flclash 版本查询
  • 批量更新 — 一键更新所有订阅
  • 拖拽导入 — 将 .yaml / .yml 文件拖入窗口直接导入
  • 流量进度条 — 解析 sub_info 字段显示已用/总量进度

⚙️ 高级功能

自定义规则编辑器

  • 13 种规则类型 — DOMAIN、DOMAIN-SUFFIX、DOMAIN-KEYWORD、IP-CIDR、IP-CIDR6、GEOIP、USER-AGENT、PROCESS-NAME、DST-PORT、SRC-PORT、SRC-IP-CIDR、GEOSITE、RULE-SET、MATCH
  • Shadowrocket 导入 — 自动转换 SR 规则为 Clash 格式(FINAL→MATCH,IP-CIDR6 支持,保留 no-resolve
  • 可视化编辑 — 点击编辑、拖拽排序(移至顶部/底部)、搜索过滤
  • 热重载 — 保存后自动 PATCH 到核心 + 断开所有连接

端口转发

  • TCP/UDP 隧道 — 自定义协议、监听地址、目标地址
  • 模态框管理 — 添加/查看隧道列表

DNS 覆写

  • 独立配置面板 — 弹出式 DNS 服务器配置模态框
  • 内置防泄漏 — Fake-IP 模式 + 自定义 DNS 服务器
  • 配置持久化 — DNS 设置保存到应用配置

动态配置引擎

高级设置页提供核心配置的完整动态编辑器:

  • 递归渲染 — 自动展开所有嵌套键值对
  • 类型感知 — 布尔值 Toggle、数字输入、字符串输入、数组编辑器
  • 实时生效 — 修改后立即 PATCH 到 Mihomo 核心 + 持久化到文件
  • 折叠展开 — 嵌套对象可折叠/展开

开机自启

  • Tauri autostart 插件集成
  • 系统托盘最小化
  • 关闭时最小化到托盘(可选)

热重载

  • 配置修改后无需重启核心
  • 通过 Mihomo API PUT /configs?force=true 热重载
  • YAML 深度合并(深度限制 50 层,null 值删除键)

Clone this wiki locally