Clash Verge 两种模式本质差异
Clash Verge(基于 Clash Verge / Clash Meta)主要提供两种流量接管模式:
- Proxy 模式(系统代理模式)
- TUN 模式(虚拟网卡模式)
两者核心区别在于:是否接管整个系统网络栈
2.Proxy 模式(系统代理)
2.1 工作原理
应用程序 → 系统代理 (HTTP/SOCKS) → Clash → 远程代理
- 依赖系统代理(HTTP / SOCKS5),根据分流规则决定是否走代理
- 仅代理“遵循代理设置”的流量
2.2 架构图
flowchart LR
A[应用程序] -->|HTTP/SOCKS代理| B[系统代理]
B --> C[Clash Core]
C --> D[远程节点]
2.3 特点分析
| 维度 | 表现 |
|---|---|
| 覆盖范围 | ❌ 仅代理支持代理的应用 |
| UDP支持 | ❌ 基本不支持 |
| 透明性 | ❌ 需要应用配置代理 |
| 性能 | ✅ 较轻量 |
| 兼容性 | ⚠️ 部分软件不走代理 |
2.4 典型问题
- 游戏 / UDP 应用无法代理
- Docker / VM / CLI 工具不走代理
- 一些 App 无视系统代理(如部分 Electron / Go 程序)
3.TUN 模式(虚拟网卡模式)
3.1 工作原理
应用程序 → OS 网络栈 → TUN虚拟网卡 → Clash → 远程代理
- 创建虚拟网卡(TUN/TAP)
- 接管所有 IP 层流量(L3)
3.2 架构图
flowchart LR
A[应用程序] --> B[操作系统网络栈]
B --> C[TUN虚拟网卡]
C --> D[Clash Core]
D --> E[远程节点]
3.3 特点分析
| 维度 | 表现 |
|---|---|
| 覆盖范围 | ✅ 全局流量(TCP + UDP) |
| UDP支持 | ✅ 完整支持 |
| 透明性 | ✅ 应用无感知 |
| 性能 | ⚠️ 略有损耗(内核→用户态) |
| 兼容性 | ✅ 几乎所有程序 |
3.4 技术关键点
基于 TUN 设备(Linux
/dev/net/tun,macOS utun)结合:
- 路由表重写
- DNS 劫持
- Fake-IP / Redir-Host
4.核心对比总结
| 维度 | Proxy 模式 | TUN 模式 |
|---|---|---|
| 网络层级 | L7(应用层) | L3(网络层) |
| 流量范围 | 部分应用 | 全系统 |
| UDP | ❌ 不支持 | ✅ 支持 |
| 透明代理 | ❌ 否 | ✅ 是 |
| 配置复杂度 | 低 | 高 |
| 性能开销 | 低 | 中 |
| 推荐场景 | 浏览器/开发调试 | 全局代理/游戏/复杂网络 |
5.选择建议
5.1 推荐策略
场景一:开发/调试环境
使用 Proxy 模式
原因:
- 可控性强(只代理特定流量)
- 不污染系统网络
场景二:全局科学上网 / 游戏 / CLI
使用 TUN 模式
原因:
- UDP 支持(游戏/QUIC)
- curl / git / docker 全自动生效