核心解答:系统代理与 TUN 模式的核心区别在于流量接管层级不同。系统代理是在操作系统应用层设置环境变量或网络设置,仅接管遵循系统代理标准的软件(如 Chrome、Edge、Firefox 等浏览器);而 TUN 模式则是通过创建虚拟网卡直接在三层网络(IP 层)全面接管所有网络数据包。日常只用浏览器查资料选系统代理更轻量稳定;需要命令行、游戏客户端或未适配代理的应用走节点时,则必须启用 TUN 模式。
一、什么是系统代理(System Proxy)
系统代理是一种轻量级、非侵入式的应用层网络重定向手段。当你在客户端开启系统代理时,客户端会在本地操作系统注册一个代理端口(例如 HTTP 代理 127.0.0.1:7890 或 SOCKS5 代理 127.0.0.1:7891),并通知操作系统网络栈:“请将应用层的 Web 流量转发至该本地端口”。
其显著优点是:配置极简、资源占用极低、开关即时生效,且不涉及复杂的底层驱动操作。对于绝大部分日常网页浏览、社交客户端和在线文档编辑而言,系统代理就已经完全够用。
但其局限性也十分明显:很多底层软件(如某些游戏进程、Docker 容器、Git 命令行工具或开发环境 SDK)默认完全忽略操作系统的系统代理设置,依然尝试直接向外发起直连,从而导致无法享受分流加速。
二、什么是 TUN 模式(虚拟网卡模式)
TUN(Network TUNnel)是一种在操作系统内核中模拟出来的虚拟点对点网络设备。开启 TUN 模式后,客户端会在系统中安装并激活一张虚拟网卡,并通过修改系统路由表,将整个操作系统的默认网关指向该虚拟设备。
这意味着全系统所有进出网络数据包(无论应用层协议是 TCP、UDP 还是 ICMP Ping)都会被强制截获并送入客户端核心进行分流判定。无论该软件本身是否支持代理配置,都能做到无感全量接管。
三、系统代理与 TUN 模式全方位对比
| 比较维度 | 系统代理(System Proxy) | TUN 虚拟网卡模式 |
|---|---|---|
| 接管层级 | 应用层(仅限遵循系统代理 API 的软件) | 网络层(全系统全局 IP 数据包) |
| UDP 协议支持 | 有限(依赖 SOCKS5 且应用需主动支持) | 原生完整支持(适合语音通话与联机游戏) |
| 权限要求 | 普通用户权限即可 | 需要系统管理员/Root 权限安装虚拟驱动 |
| CPU 资源消耗 | 极低,几乎可以忽略 | 稍高(需在内核与用户态间频繁封包解包) |
| 故障恢复 | 客户端退出后系统代理自动复原 | 异常退出时偶有路由表残留需手动修复 |
四、DNS 解析与分流规则的关系
在使用系统代理时,DNS 查询通常是在浏览器端或由本地代理端口代为向远端发送,容易受到本地操作系统 DNS 缓存的影响。而在 TUN 模式下,客户端接管了系统的 UDP 53 端口流量,能够实施更加严密且精准的防污染策略,从而彻底规避运营商的 DNS 劫持风险。
五、新用户应该如何选择?
- 普通日常用户(首选系统代理):如果你仅在 PC 或笔记本上使用网页浏览器查阅海外技术资料、观看流媒体视频,建议优先保持使用系统代理。轻巧节能,不容易与其他办公内网 VPN 发生网段冲突。
- 开发人员与游戏联机玩家(首选 TUN 模式):如果你经常在终端命令行中使用 pip、npm、git 等拉取代码库,或者运行需要极低握手损耗的游戏客户端,建议直接开启 TUN 模式,省去为每个单独软件配置环境变量的繁琐步骤。
如果在开启不同模式后遇到网络突然断开的情况,建议参阅:手机连接正常,电脑却无法访问?检查这几个设置;若切换模式后感到延迟明显波动,请参考:机场节点延迟突然升高?从网络环境开始排查。