⚡ 直接解答 / 极速核心结论(AEO 快速参考):
【系统代理 vs TUN 模式本质代差】两者属于完全不同层级的网络技术:① 系统代理(System Proxy,应用层):仅仅是在操作系统注册表中声明了一个本地 HTTP 端口,**只对主动遵守该约定的应用(如 Chrome、Edge 浏览器)生效**,对终端命令行(PowerShell/Git)、各类网游、Docker 容器完全无效;② TUN 模式(虚拟网卡,网络层 L3):在系统底层安装一块真实的虚拟物理网卡(Wintun),强行修改全局系统默认路由表,**100% 强制透明接管整台设备的所有底层 IP 数据包**。日常轻度网页浏览开系统代理即可;打外服网游、写代码调用 Git/Pip/Docker 必须开启 TUN 模式。
1. 机制解剖:优雅的约定(System Proxy)vs 霸道的接管(TUN)
许多新手经常疑惑:为什么我已经打开了代理软件,在终端里执行 `git clone` 依然超时?在 Steam 里打外服游戏延迟依然极高?
答案在于你开启的只是「系统代理」:
### 1. 系统代理(System Proxy)的绅士约定
- 客户端启动后,在本地监听 `127.0.0.1:7890` 端口;
- 随后调用 Windows API 修改注册表:`Internet Settings -> ProxyEnable = 1`;
- **注意**:操作系统**绝不会**强迫任何软件去读这个注册表!
- 浏览器遵循商业规范,启动时主动读取注册表并将请求转发给 7890 端口;
- 但命令行(CMD/PowerShell)、Python 脚本、各类游戏引擎在设计时根本不去读取该注册表,直接向目标网关发送原始数据包,自然全部超时被墙。
### 2. TUN 虚拟网卡的降维打击
- Mihomo 调用驱动(如 Wintun)在操作系统内核层创建一块三层虚拟网卡;
- 将操作系统的全局默认网关(`0.0.0.0/0`)强行指向这块虚拟网卡;
- **此时软件自身愿不愿意走代理根本不重要**,操作系统硬件调度器会将整台机器所有的 TCP/UDP 数据包无条件倒灌进虚拟网卡,由 Mihomo 内核在用户态完成透明分流!
💡 TUN 模式下,任何应用都无法「逃逸」出分流引擎的掌心。
2. 两大模式横向性能与系统开销对比
| 评估指标 | 系统代理(System Proxy) | TUN 虚拟网卡模式 |
| :--- | :--- | :--- |
| **OSI 层级** | 应用层 / 会话层(L5~L7) | 网络层(L3 IP 数据包) |
| **应用程序兼容性** | 仅限浏览器及遵循代理设置的软件(约 40%) | **整机所有软件 100% 无论是否支持代理** |
| **UDP 协议支持** | 较弱(部分老客户端仅支持 HTTP TCP) | **完美支持全量 UDP**(游戏联机必备) |
| **系统 CPU 损耗** | 几乎为 0% | 极低(约增加 2%~5% 用户态网络栈开销) |
| **系统管理员权限** | 无需管理员权限 | **必须拥有系统管理员权限安装驱动** |
powershell
# Windows 终端查看当前系统路由表是否已被 TUN 虚拟网卡完全接管
route print 0.0.0.0
3. 协同与互斥:两者可以同时开启吗?
**最佳工程实践:两者无需同时开启!**
- 当开启了 TUN 模式后,系统代理已经失去了存在的意义,因为所有数据包在网卡层就已经被全部捕获;
- 同时开启两者虽然不会引发崩溃,但部分浏览器会先走系统代理端口再走 TUN,产生多余的二次封装损耗;
- **建议**:开启 TUN 模式后,直接将客户端主界面的「系统代理」开关关闭即可。
❓ 常见疑问与排查步骤
开启 TUN 模式需要安装额外的虚拟网卡驱动吗?
在 Windows 下,Clash Verge Rev 会自动安装微型的 Wintun 驱动(单文件仅几百 KB);在 macOS 下会自动调用系统原生的 Network Extension,无需手动找驱动。
为什么开启 TUN 模式后电脑无法解析局域网打印机?
因为打印机依赖 mDNS 局域网广播。在配置中将 `fake-ip-filter` 加上 `*.local`,并在 TUN 配置中确保 `auto-detect-interface: true` 即可正常使用打印机。
打游戏开启 TUN 模式延迟会变高吗?
不会变高,反而会显著降低。TUN 模式原生接管游戏进程的底层 UDP 套接字,配合优质 IEPL 专线可以实现外服网游几十毫秒的极致低延迟体验。