使用指南

Clash Verge 是一款跨平台的开源代理客户端,基于 Clash Meta (Mihomo) 内核。它为用户提供了图形化的操作界面,极大降低了 Clash 下载 后的配置门槛。

作为 Clash for Windows 的核心继承者,Clash Verge Rev 不仅在 UI 上更加现代化,更在内核层面支持了 Hysteria2、VLESS 等下一代加密协议。

常见名词

  • Mihomo (Meta): 目前主流的开源内核分支,具备更强的协议支持和更优的内存管理。
  • TUN Mode: 虚拟网卡技术,允许接管系统中不支持代理设置的应用(如游戏、命令行)。
  • Provider: 配置资源提供者,用于远程拉取节点列表或规则集。
  • Fake-IP: 一种 DNS 增强技术,通过返回虚拟 IP 快速建立连接。
  • Fallback: 健康检查机制,当主节点失效时自动切换至备用节点。

导出日志

Clash 官网 生态中,日志是排查连接故障的唯一途径。您可以进入“设置”->“应用设置”查看日志存储路径。

# 日志级别配置示例 (yaml) log-level: info # 可选:debug, info, warning, error, silent

订阅导入

支持通过 Remote URLLocal FileURL Schemes 进行导入。软件会自动识别订阅格式,并将其转换为 Clash Meta 兼容的 YAML 配置。

Merge 配置

Merge 功能允许用户在保持原始订阅更新的同时,注入自定义配置逻辑。这对于需要在多个订阅间共享同一套 DNS 或规则集的用户非常有用。

# 示例:Merge 自定义路由规则 prepend-rules: - DOMAIN-SUFFIX,google.com,Proxy - DOMAIN-KEYWORD,ad,REJECT - GEOIP,CN,DIRECT

Script 配置

Clash Verge Rev 的 Script 功能支持完全的 JavaScript 运行时。您可以编写复杂的逻辑来实时处理配置对象。

// 示例:根据延迟和国家筛选节点 function main(config) { config.proxies = config.proxies.filter(proxy => { return proxy.name.includes("HK") && !proxy.name.includes("流量"); }); console.log("处理后的代理数量:", config.proxies.length); return config; }

设置代理绕过 (Bypass)

通过配置 skip-proxybypass 列表,可以防止特定的内网地址或本地服务走代理。默认情况下,localhost127.0.0.1 会被自动绕过。

设置代理组图标

在 UI 中,您可以为每个 proxy-groups 设置图标。Clash Verge 会自动下载并缓存这些远程图标,提升视觉辨识度。

proxy-groups: - name: 🚀 自动选择 type: url-test icon: https://raw.githubusercontent.com/clash-verge-rev/icons/main/auto.png proxies: [节点1, 节点2]

自定义托盘图标

用户可以针对 Windows 托盘区域的图标进行个性化。支持上传多帧的 ICO 文件,以在不同状态(连接中、已连接、断开)显示不同的视觉反馈。

自定义主题/样式

得益于 Vite 构建的现代前端,您可以通过注入全局 CSS 来修改软件界面的每一处细节。例如,修改主色调为深色系:

/* 用户自定义 CSS 示例 */ :root { --primary-color: #bb86fc; --bg-main: #121212; }

URL Schemes

Clash Verge 注册了系统级的 URL 协议,方便开发者通过网页按钮引导用户导入配置。

  • clash://install-config?url=ENCODED_URL: 导入订阅
  • clash://update-all: 更新所有配置文件

RESTful API 深度解析

内核监听的 external-controller 接口允许外部程序控制软件行为。这是 Clash 能够与其他生态工具(如看板、浏览器扩展)交互的基础。

# 获取实时流量统计 GET /traffic # 获取所有代理节点信息 GET /proxies # 切换节点请求示例 PUT /proxies/{group_name} {"name": "new_proxy_name"}

协议支持与配置示例

Clash Meta 支持几乎所有现代加密协议,以下是典型的配置片段:

Hysteria2 (下一代加速)

proxies: - name: "Hy2-Node" type: hysteria2 server: server.com port: 443 password: your-password auth: your-auth

Shadowsocks (经典稳定)

proxies: - name: "SS-Node" type: ss server: server.com port: 8388 cipher: aes-256-gcm password: password

VLESS (Reality 混淆)

proxies: - name: "VLESS-Reality" type: vless server: server.com port: 443 uuid: your-uuid reality-opts: public-key: your-public-key short-id: your-short-id

高级路由 (TUN & TProxy)

对于无法设置系统代理的流量,Clash Verge 提供了底层路由技术支持:

  • TUN Stack: 推荐使用 gvisor 以获得更好的兼容性。
  • TProxy: 针对 Linux 环境下的透明代理技术,实现零配置接管。
  • Auto Route: 自动修改系统路由表,确保流量流入虚拟网卡。

技术栈解析 (Tauri & Vite)

为什么 Clash Verge Rev 如此轻快?

  • Tauri (Rust): 替代了庞大的 Electron。Rust 编译出的原生后端不仅安全,且内存占用仅为 Electron 的 1/5。
  • Vite (Frontend): 极速的热更新和现代化的资源打包,确保 UI 响应如丝般顺滑。
  • Mihomo Kernel: 基于 Go 语言开发的内核,兼顾了高并发处理能力和跨平台移植性。

DNS 详细配置 (Advanced DNS)

DNS 配置是防止流量泄露、提升访问速度的核心。Clash Meta 提供了极强的 DNS 处理能力。

dns: enable: true ipv6: false enhanced-mode: fake-ip fake-ip-range: 198.18.0.1/16 listen: 0.0.0.0:1053 nameserver: - https://doh.pub/dns-query - https://dns.alidns.com/dns-query fallback: - https://dns.google/dns-query - https://1.1.1.1/dns-query proxy-server-nameserver: - https://doh.pub/dns-query
  • enhanced-mode: 推荐使用 fake-ip 以获得最快响应速度。
  • nameserver: 用于解析国内域名。
  • fallback: 当国内 DNS 无法解析或解析出国外 IP 时使用的 DNS。
  • proxy-server-nameserver: 专门用于解析代理服务器地址的 DNS,防止循环依赖。

内核实验性功能 (Experimental)

Clash Verge Rev 紧跟 Mihomo 内核步伐,支持多种前沿特性:

experimental: sniffer: true # 流量嗅探 udp-over-tcp: true # TCP 承载 UDP quic: true # 开启 QUIC 支持

开启 sniffer 后,内核可以自动识别 HTTP/HTTPS 流量中的真实域名,从而提高分流准确性,特别是在某些应用不遵循 DNS 设置的情况下。

性能调优建议 (Performance Tuning)

为了在生产环境下获得极致体验,建议进行以下优化:

  • 调整缓存大小: 在 profile 中增加 tracing: true 监控性能瓶颈。
  • 合理配置并发: 在 url-test 组中设置合理的 intervaltolerance
  • 内存优化: 开启 unified-delay: true 减少短时间内的大量并发请求对 CPU 的压力。
  • 硬件加速: 在 Linux 环境下利用 TProxy 结合 BBR 拥塞控制算法。

本地构建指南 (Build Guide)

如果您希望在本地编译 Clash Verge,请确保已安装 RustNode.js 环境。

# 1. 克隆代码仓库 git clone https://github.com/clash-verge-rev/clash-verge-rev.git # 2. 安装前端依赖 npm install # 3. 运行开发模式 npm run tauri dev # 4. 构建生产版本 npm run tauri build

构建完成后,您可以在 src-tauri/target/release 目录下找到对应的安装包。

贡献代码流程 (Contribution)

我们欢迎每一位开发者的加入!贡献流程如下:

  1. Clash 官网 仓库点击 Fork
  2. 在本地创建特性分支:git checkout -b feature/your-feature
  3. 提交代码并确保符合项目规范:git commit -m "feat: add something"
  4. 推送分支并向主仓库发起 Pull Request

请注意:所有代码需经过至少两名核心维护者的 Review 且通过 CI 测试方可合并。

各平台专项优化 (Platform Specific)

Clash Verge 在不同操作系统下的运行机制略有差异,针对性优化可提升稳定性:

Windows 端

  • Service Mode: 务必安装,解决 UWP 应用无法走代理的问题。
  • 虚拟网卡驱动: 推荐使用 Wintun 而非传统的 Tap 驱动,延迟更低。

macOS 端

  • 增强型系统代理: 开启后可自动配置系统 HTTP/Socks 代理。
  • M系列芯片优化: 确保下载 aarch64 架构版本,发挥原生性能。

Linux 端

  • 权限配置: 使用 TUN 模式需 setcap 给内核文件授予 cap_net_admin 权限。
  • 守护进程: 建议配合 systemd 实现开机自启。

日志深度分析 (Log Analysis)

理解日志是进阶用户的必经之路。以下是常见的日志关键字含义:

# 典型日志条目分析 [TCP] 127.0.0.1:54321 --> google.com:443 match GeoIP(US) using Proxy[HK-01]
  • [TCP/UDP]: 传输协议类型。
  • 127.0.0.1:54321: 本地发起连接的客户端地址和端口。
  • google.com:443: 目标访问地址。
  • match GeoIP(US): 命中的规则类型(这里是地理位置规则)。
  • using Proxy[HK-01]: 最终选择的出站节点。

常见问题 (FAQ)

Q: 为什么我的 Hysteria2 节点无法连接?
A: 请确保您的 Clash 下载 对应的是支持 Meta 内核的版本,并检查 UDP 流量是否被您的 ISP 阻断。

Q: 软件界面显示空白?
A: 尝试清除安装目录下的 cache 文件夹,或重新安装 WebView2 运行时。