协议与原理 整理更新:2026-09-26

系统代理与 TUN 模式有什么区别?一文看懂代理流量接管机制

深入剖析操作系统网络栈中的系统代理(System Proxy)与 TUN 虚拟网卡模式(TUN Mode)在流量拦截、UDP/游戏支持、DNS 处理机制上的异同。

编写:网络技术编辑部 •
7 分钟阅读 • #科学上网知识库

在使用 Clash Verge Rev、Sing-box 或 v2rayN 时,大家常会看到两个关键设置项:「系统代理 (System Proxy)」 和 「TUN 模式 (TUN Mode)」。

为什么开启了系统代理,浏览器能打开 Google,但命令行终端(CMD)、Git、或者 Steam 游戏却依然连接超时?为什么开启 TUN 模式后整个系统的所有软件都能自动走代理?

本文将从操作系统网络协议栈的底层逻辑为你解开谜底。


一、 两种流量接管机制的核心原理

【方案 A: 系统代理模式 (System Proxy)】
应用程序 (Chrome / Edge) ──(主动读取系统设置: 127.0.0.1:7890)──> 本地代理客户端
应用程序 (CMD / Git / 游戏) ──(忽略系统代理,直接发往网卡)──> 本地路由器 ──> 超时失败!

【方案 B: TUN 虚拟网卡模式 (TUN Mode)】
所有应用程序 (无论是浏览器、Git、游戏还是后台服务)
      │
      ▼ (操作系统网络层 IP 数据包)
[系统级虚拟网卡 (TUN Virtual Interface)] ──(强制接管所有三层 IP 包)──> 本地代理客户端 ──> 顺利代理!

二、 关键维度技术对比

对比维度系统代理模式 (System Proxy)TUN 虚拟网卡模式 (TUN Mode)
工作网络层级应用层 / 会话层 (HTTP / SOCKS 环境变量)网络层 (Layer 3 IP 数据包)
接管方式依赖软件主动读取操作系统的代理设置在操作系统网络层拦截所有进出 IP 数据包
浏览器兼容性良好 (Chrome, Safari, Edge 等原生支持)兼容
非标准应用支持通常不支持 (Git、Docker、命令行等默认忽略系统代理)全面支持 (在网络层拦截 IP 数据包)
UDP 协议与游戏支持受限 (HTTP 代理无法直接承载独立 UDP 数据包)支持 (可封装 TCP/UDP 流量)
系统权限要求普通用户权限即可开启需要管理员权限 (Administrator / Root)
配置复杂度一键开关较为简单需安装虚拟网卡驱动 (Wintun / Helper)

三、 哪些场景建议开启 TUN 模式?

  1. 游戏加速与联机: 多数网络游戏联机使用 UDP 协议进行数据传输,系统代理通常无法接管,建议开启 TUN 模式;
  2. 软件开发与终端环境: 命令行工具(Terminal / PowerShell / Git / Curl / Docker / npm / pip)默认往往不走系统代理,开启 TUN 后无需在每个工具中单独配置环境变量;
  3. 即时通讯语音与视频: 部分即时通讯软件语音通话采用 UDP 传输,TUN 模式可保障音视频数据经由代理隧道转发。

四、 开启 TUN 模式的注意事项

  • 安装特权驱动: 在 Windows 上需要授权安装 wintun.dll 或 Service Mode;在 macOS 上需在系统设置中允许安装辅助工具;
  • 防止 DNS 泄漏: 开启 TUN 模式时,建议配合客户端的 Fake-IP 或 DoH (加密 DNS) 选项,确保系统的 DNS 解析请求同样被虚拟网卡加密接管,避免真实访问记录暴露在本地运营商 DNS 日志中。

五、 关联指引

主题标签: #TUN模式 #系统代理 #网络栈 #流量分流 #虚拟网卡

💡 编写说明与技术中立声明:

本文基于公开技术文档、通用网络原理与本站整理资料编写。软件版本、网络表现及服务状态可能因时间、地区和网络环境不同而变化。请确保在符合您所在地法律法规及网络服务条款的前提下进行合规使用。

相关专题与延伸阅读