视野之外
[ 返回文章列表 ]
客户端教程
发布日期: 2026-10-08
7 分钟阅读

系统代理、TUN 与浏览器代理有什么区别

在配置代理客户端时,经常看到“开启系统代理”、“TUN 模式”和“浏览器扩展代理”。这三种代理接管方式在实现原理、兼容性与性能上有何区别?

ℹ️NOTE

选择指南:

  • 仅看网页 -> 使用系统代理或浏览器代理扩展。
  • 需要命令行、游戏、Steam、Git 或终端工具代理 -> 使用 TUN 模式。

在使用 Sing-box, Clash, v2rayN 等代理软件时,我们往往需要选择流量如何接管到代理客户端中。很多用户容易混淆“系统代理(System Proxy)”、“TUN 虚拟网卡模式”与“浏览器代理(如 SwitchyOmega/ZeroOmega)”的作用。


1. 三种代理模式的原理与接管路径

[浏览器扩展代理] ───> 仅拦截浏览器内部发起的 HTTP/HTTPS 请求
[系统代理 (HTTP/SOCKS)] ─> 修改系统注册表/环境变量,依靠应用程序自发遵守
[TUN 虚拟网卡模式] ──> 在操作系统内核层创建虚拟网卡,强制捕获所有 L3 IP 数据包

(1) 浏览器代理扩展 (如 ZeroOmega / SwitchyOmega)

  • 实现方式:利用 Chrome/Firefox/Edge 浏览器官方的 Proxy API。扩展程序直接接管浏览器内部的网络请求,将其转发至本地代理端口(如 127.0.0.1:7890)。
  • 优点:完全不影响浏览器之外的其他任何系统软件;资源占用极低。
  • 缺点:仅对当前浏览器生效。手机 app、命令行终端、桌面客户端完全无法受惠。

(2) 系统代理 (System Proxy)

  • 实现方式:代理软件向 Windows 注册表或 macOS/Linux 系统设置写入全局代理服务器地址(如 http=127.0.0.1:7890;https=127.0.0.1:7890)。
  • 优点:开箱即用,无需配置复杂的虚拟网卡驱动。绝大多数常规桌面软件(如 Telegram、Slack、Spotify)会自动读取系统代理设置。
  • 缺点:非强制性。很多命令行工具(如 CMD、PowerShell、Git)、某些游戏客户端或 Docker 会直接忽略系统代理设置。

(3) TUN 虚拟网卡模式 (TUN Mode)

  • 实现方式:代理软件(通过 Admin/Root 权限)在系统中创建一张虚拟网络适配器(TUN Device),并通过修改系统路由表将默认网关指向该虚拟网卡。
  • 优点:全面接管。不论是终端命令行、Git、Node.js/Python 脚本、游戏还是未提供代理设置的第三方软件,所有网络数据包均被强制捕获并处理。支持完美的 UDP 转发与 DNS 拦截。
  • 缺点:需要管理员权限安装驱动;如果客户端异常崩溃可能导致本地网络短时间断网。

2. 综合对比表

对比维度 浏览器代理扩展 系统代理 (System Proxy) TUN 虚拟网卡模式
权限要求 普通用户权限 普通用户权限 必须管理员 / Root 权限
控制粒度 仅当前浏览器 遵循系统代理设置的桌面应用 系统级所有 IP 数据包
UDP 流量支持 不支持 (仅 HTTP/HTTPS/SOCKS5) 部分支持 (视协议类型而定) 完全原生支持
Terminal / Git 接管 无法接管 需要手动 export http_proxy 自动接管无须配置
网络游戏加速能力 无 极弱 良好(需配合低延迟节点)

3. 常见场景配置推荐

  1. 场景一:日常网页查阅资料、看视频 开启客户端的系统代理即可,简单高效。

  2. 场景二:程序员写代码、Terminal/Git/Docker 拖取依赖 建议开启客户端的 TUN 模式(推荐在 Sing-box 或 Clash Meta 中开启 tun.stack: system 或 gvisor),彻底解决命令行不走代理报错的问题。

  3. 场景三:工作需要,仅希望特定浏览器走代理,其他应用直连 关闭系统代理,在 Chrome 中安装 ZeroOmega 扩展,单独配置本地端口代理。

* 点击复制包含绝对主地址的分享链接
相关研究日志 RECOMMENDED
回首页