跳过导航至主要内容
远航者网络档案 | 2026 证据分级索引库
协议与网络

TUN 虚拟网卡与系统代理:接管位置不同,能管的东西也不同

最后更新: 2026-08-21 | 适用: Windows / macOS / Linux

「我明明开了代理,为什么这个程序还是直连?」——这是本站遇到最多的问题之一, 答案几乎总是同一个:你开的是系统代理,而那个程序不理会系统代理。

一、两者接管的位置不同

系统代理TUN 模式
接管位置应用层(程序主动读取代理设置)网络层(虚拟网卡接管路由)
覆盖范围只覆盖愿意遵守的程序几乎全部流量,含 UDP 与 ICMP
权限要求普通用户权限管理员 / 系统授权
出问题时关掉即恢复异常退出可能残留路由,需手动清理

关键区别在于:系统代理是一项「建议」,程序可以不读它。 操作系统提供一个代理设置项,遵守与否取决于程序自己。而 TUN 创建的是一块虚拟网卡, 流量在离开本机之前就被接管,程序无从绕过。

二、哪些程序常常绕过系统代理

  • 命令行工具——很多只读 http_proxy 之类的环境变量,不读系统设置。
  • 游戏客户端——大量使用 UDP,而系统代理通常只处理 TCP。
  • 带自有网络栈的应用——部分桌面客户端自行管理连接,不查询系统配置。

判断方法很直接:开着系统代理时该程序连不上或走了本地线路,切到 TUN 后正常,就是这个原因。

三、怎么选

日常浏览器为主 → 系统代理够用。 它权限要求低、异常时影响面小,出问题关掉就恢复。

需要覆盖游戏、命令行或 UDP 流量 → 用 TUN。 代价是更高的权限要求,以及客户端异常退出时可能留下路由残留—— 表现为客户端已关但网络仍不正常,需要手动清理虚拟网卡或重启网络服务。

四、开了 TUN 之后仍要配规则分流

TUN 解决的是「谁被接管」,不解决「接管之后走哪条线」。 它默认把流量交给客户端,客户端再按规则判断走代理还是直连。 所以 TUN 不等于全局代理——规则模式下国内域名照样直连。

如果开了 TUN 之后国内网站也变慢了,检查的是分流规则,不是 TUN 本身。

常见问题

为什么有些程序不走系统代理?

系统代理是一项「建议」,程序可以选择不读它。命令行工具、游戏客户端、部分带自有网络栈的应用都常常绕过。TUN 模式在更底层接管,不依赖程序配合。

TUN 模式需要管理员权限吗?

需要。创建虚拟网卡属于系统级操作,Windows 上通常还要安装网卡驱动,macOS 与 Linux 需要授权。这是它比系统代理覆盖更广的代价。

两个一起开会冲突吗?

多数客户端允许同时开启,流量会先被 TUN 接管。但排查问题时建议一次只开一个,否则很难判断某条流量究竟走了哪条路径。


本文依据各客户端公开文档与操作系统网络文档整理,不含实测数据。 具体权限要求与驱动依赖以你所用客户端的官方说明为准。