client/desktop · 集群 B · 桌面进阶配置 · 3/6
系统代理与 TUN 模式怎么选:覆盖范围、兼容性与使用场景对比
系统代理只影响主动读取代理设置的应用,轻量、权限需求低,适合以浏览器为主的用户;TUN 模式在网络层接管系统流量,能覆盖命令行、游戏和 UDP,但需要较高权限,冲突时影响面也更大。如果你只用浏览器,可以优先使用系统代理;如果需要接管更多软件或 UDP,更适合开启 TUN。
两种模式的本质区别
系统代理和 TUN 的本质区别在于接管的层级:系统代理是在应用层“请应用自愿走代理”,TUN 是在网络层“让系统流量强制经过客户端”。
系统代理模式:
[浏览器] ─读取代理设置─▶ [客户端代理端口] ─▶ 内核 ─▶ 出口
[终端] ─不读设置────────────────────────────────▶ 直接出去
[游戏] ─不读设置────────────────────────────────▶ 直接出去
TUN 模式:
[浏览器] ─┐
[终端] ─┼─▶ 系统路由 ─▶ [TUN 虚拟网卡] ─▶ 内核 ─▶ 出口
[游戏] ─┘
这就是为什么很多用户会遇到“浏览器能用,某个软件不行”——不是软件坏了,而是它压根没有走系统代理。虚拟网卡的底层原理见 TUN 虚拟网卡原理。
全面对比
| 对比维度 | 系统代理 | TUN 模式 |
|---|---|---|
| 接管层级 | 应用层 | 网络层 |
| 覆盖范围 | 读取代理设置的应用 | 绝大部分系统流量 |
| UDP 支持 | 通常不支持 | 支持 |
| 命令行工具 | 多数需单独配置 | 通常自动覆盖 |
| DNS 处理 | 部分应用自行解析 | 可统一由内核处理 |
| 权限需求 | 普通用户 | 管理员 / 服务 / 网络扩展 |
| 对系统的改动 | 修改代理设置 | 创建虚拟网卡,修改路由与 DNS |
| 与其他 VPN 冲突 | 较少 | 较多 |
| 故障影响面 | 代理失效时部分应用受影响 | 配置异常时可能整机断网 |
| 退出后残留 | 系统代理设置可能残留 | 路由一般随客户端退出恢复 |
从表中可以看出,两种模式不是“谁更好”的关系,而是覆盖面与侵入性之间的取舍。
系统代理的优势与局限
系统代理的优势是简单、轻量、侵入性低。它只是修改了一项系统设置,不需要特殊权限,出问题时影响范围也有限——最坏情况下只是浏览器打不开,其他不走代理的程序照常工作。
它的局限也很明确:
- 不读取代理设置的程序完全不受控制;
- UDP 流量基本无法处理;
- 部分应用自行做 DNS 解析,可能导致泄漏或分流不准确;
- 客户端异常退出后,系统代理设置可能残留,导致“上不了网”。
残留问题的处理见 Windows 安装代理客户端注意事项 中的相关章节;macOS 上的处理见 macOS 代理客户端权限设置。
TUN 模式的优势与代价
TUN 的优势是覆盖全面、行为统一:命令行、游戏、各类桌面软件都能被接管,UDP 也能处理,DNS 可以由内核统一管理,分流结果更一致。
它的代价包括:
- 需要较高权限,首次配置步骤较多;
- 与其他 VPN、加速器、虚拟机网络等更容易冲突;
- 配置不当时可能导致整机断网或局域网不可达;
- 排障时涉及的层级更多。
TUN 的开启步骤与常见报错见 桌面端 TUN 模式开启指南。
按场景选择
下面按常见使用场景给出条件化建议,仅供参考:
你的主要使用场景是?
│
├─ 只用浏览器看网页、查资料
│ └─▶ 系统代理通常足够
│
├─ 浏览器 + 偶尔用终端(包管理器、版本控制)
│ ├─ 愿意为终端单独设置代理变量 → 系统代理
│ └─ 希望一劳永逸 → TUN
│
├─ 需要语音通话、游戏等 UDP 应用
│ └─▶ 更适合 TUN(还需节点与协议支持 UDP)
│
├─ 某个桌面软件不读系统代理
│ └─▶ TUN
│
└─ 电脑同时运行公司 VPN 或虚拟机
└─▶ 优先系统代理,避免路由冲突;确需 TUN 时先了解对方路由策略
UDP 在代理中的特殊性见 TCP 与 UDP 在代理场景中的差异。
同时开启时会发生什么
两者可以同时开启。此时的行为通常是:
- 读取系统代理设置的应用(如浏览器),连接会先到客户端的代理端口,再由内核处理;
- 不读取系统代理的应用,流量经系统路由进入 TUN,再由内核处理;
- 两条路径最终汇入同一个内核,使用同一套规则。
对日常使用来说,同时开启一般没有问题。但在排障时,建议先只开一种,确认正常后再叠加,这样能清楚知道问题来自哪条路径。分层排障的思路见 分层排障法。
终端走代理的两种方式
终端不走代理是开发者最常遇到的问题,有两种解决思路:
| 方式 | 做法 | 优点 | 缺点 |
|---|---|---|---|
| 设置环境变量 | 在终端中设置 HTTP/HTTPS 代理变量指向客户端端口 | 不需要 TUN,影响范围可控 | 每个终端会话或配置文件中都要设置,部分工具不读变量 |
| 开启 TUN | 系统层面接管 | 所有工具自动生效 | 需要权限,可能与其他网络工具冲突 |
环境变量的具体写法因终端和工具而异,请参考相应工具的文档。客户端的代理端口可以在设置页面查看。
从系统代理切换到 TUN 的建议顺序
如果你目前使用系统代理,打算尝试 TUN,可以按下面的顺序逐步切换,以便出问题时能迅速回退:
- 在系统代理模式下确认订阅、节点和规则都正常工作;
- 退出其他 VPN、加速器等可能创建虚拟网卡的工具;
- 按客户端要求完成权限准备,然后开启 TUN,暂时保留系统代理;
- 用终端或原本不走代理的软件测试,并在连接面板中确认能看到这些连接;
- 检查局域网设备与境内网站访问是否正常;
- 确认一切正常后,再决定是否关闭系统代理。
如果第 4 步之后出现断网,直接关闭 TUN 即可回到原来的状态。这种“先叠加、确认后再精简”的做法,比一次性切换更容易定位问题。
小结
系统代理和 TUN 不是二选一的竞争关系,而是不同覆盖范围的工具。以浏览器为主的用户用系统代理就足够;需要接管更多软件和 UDP 的用户可以开启 TUN;排障时一次只开一种。理解两者的边界,就能根据场景灵活切换。
如果你在比较服务商对 UDP 与客户端的支持资料,可以前往 机场品牌库 查看,或使用 对比工具 并排比较,数据来自品牌资料,本站未实测。
常见问题
系统代理和 TUN 可以同时开吗?
可以。同时开启时,读取系统代理的应用通常仍通过代理端口进入客户端,其余流量由 TUN 接管,最终都由同一个内核按规则处理。但排障时可以先只开一种,便于定位。
只开 TUN 不开系统代理,浏览器还能用吗?
通常可以。TUN 在网络层接管流量,浏览器发出的连接同样会进入虚拟网卡被处理。少数情况下浏览器扩展或自身代理设置可能产生干扰,需要检查。
为什么开了系统代理,终端还是不走代理?
很多命令行工具默认不读取系统代理设置,需要单独设置代理环境变量,或者改用 TUN 模式让系统层面统一接管。
TUN 模式会不会更慢?
TUN 需要在用户态处理更多数据包,理论上有额外开销,但对日常使用的影响通常不明显。本站未实测具体性能差异,实际表现因设备和客户端版本而异。
信息来源与更新时间
- 信息来源
- 品牌清单资料(品牌公开信息整理)
- 测试范围
- 本站未进行测速与解锁实测,所有能力描述均为资料声明或未测试状态。
- 发布时间
- 待核实
- 核实日期
- 待核实
- 最近更新
- 待核实