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 全自动生效