跳至主要内容
鸡不可失
网络知识·预计阅读 4 min

TUN 模式与系统代理的区别:为什么开了代理有的软件依然连不上?

为什么浏览器能正常打开海外网站,但命令行终端、Git、特定桌面软件却频繁连接超时?深入解析系统代理与虚拟网卡 TUN 模式的运作机制与实操配置。 正文比较应用读取系统代理设置与虚拟网卡接管流量的范围,说明什么时候需要 TUN、可能涉及的权限和排障步骤,避免误以为开启后所有连接都会自动成功。

发布于:·更新于:

引言:让人困惑的“部分软件连不上”现象#

很多用户在使用跨国网络工具时,常常会遇到以下典型困惑:

  • 打开 Chrome 或 Edge 浏览器,访问 Google、YouTube 一切丝滑流畅;
  • 但一旦打开命令行执行 git clone,终端却始终停在 Connecting to github.com 直到报 Connection Timed Out 错误;
  • 或者打开外服战网、特定桌面客户端、设计工具同步插件时,软件提示无法连接到互联网。

这种“明明开了代理,部分程序却像没联网一样”的现象,其根源就在于系统代理(System Proxy)与虚拟网卡 TUN 模式(TUN Mode)的底层拦截级别差异。

机制一:系统代理(应用层君子协定)#

  • 运作机制:

当你在 Clash Verge Rev 等工具中打开「系统代理」开关时,软件实际上只是向 Windows 注册表(或 macOS 网络系统设置)写入了一个本地监听地址(如 127.0.0.1:7897)。

  • 局限性:

这种拦截方式属于“君子协定”:

  1. 只有主动读取系统代理的软件才会受影响:大部分标准 Web 浏览器都会遵守该设置;
  2. 命令行终端默认忽略系统代理:Windows CMD、PowerShell、Linux Shell 等终端工具默认不读取注册表中的系统代理,必须手动输入 set http_proxy=... 环境变量才能生效;
  3. 非 HTTP 协议无法处理:很多走纯 UDP 协议、底层网络套接字的程序或游戏,直接绕过系统代理层直连公网,从而遭遇阻断。

机制二:TUN 模式(网络三层强行接管)#

  • 运作机制:

TUN 是操作系统内核级的虚拟网络设备驱动(Network Tunnel):

  1. 客户端在系统中安装并虚拟出一张名为 Clash 或 sing-box 的全新虚拟网卡;
  2. 软件修改操作系统的全局路由表,将默认网关(0.0.0.0/0)的流量优先级重定向到该虚拟网卡;
  3. 此时,操作系统内的任何程序、任何进程、无论是 TCP 还是 UDP 数据包,在发送前都必须首先经过这张虚拟网卡;
  4. 虚拟网卡将收到的原始 IP 数据包交由 Mihomo 核心进行路由规则匹配,符合代理规则的进行二次加密封装后出海,符合直连规则的直接本地释放。

系统代理 vs TUN 模式深度对比表#

对比维度系统代理 (System Proxy)TUN 虚拟网卡模式 (TUN Mode)
网络 OSI 拦截层级偏向应用层(依赖软件主动读取)网络三层(IP 数据包级强制接管)
对命令行终端支持默认不支持(需手动配置环境变量)原生完整支持(所有终端全自动接管)
对 UDP / 游戏流量支持不支持 UDP 代理转发原生支持(支持 UDP 全量转发)
安装与权限要求普通用户权限即可开启首次开启需管理员权限安装驱动
日常使用推荐仅适合普通网页浏览推荐开发者与有全局代理需求的用户开启

如何在客户端中正确配置与开启 TUN 模式?#

以当前主流桌面客户端 Clash Verge Rev 为例:

  1. 以管理员身份启动:退出后台的 Clash Verge,右键桌面图标选择「以管理员身份运行」;
  2. 安装核心服务驱动:
  • 进入左侧「设置 (Settings)」;
  • 找到「服务模式 (Service Mode)」模块,点击右侧的「安装 (Install)」按钮;
  • 安装完成后,服务模式指示灯会变成绿色激活状态;
  1. 开启 TUN 模式主开关:
  • 在设置中找到「TUN 模式 (TUN Mode)」;
  • 拨动开关开启,系统会在网络适配器列表中自动生成虚拟网卡驱动;
  1. 验证接管效果:
  • 打开 Windows PowerShell 或 Mac Terminal;
  • 输入 curl -I https://www.google.com 或直接执行 git clone;
  • 终端能够瞬间返回 HTTP 200 或高速拉取仓库代码,即证明全量流量接管成功。

总结#

系统代理是轻量级网页浏览的便捷方案,而 TUN 模式则是解决各类网络死角、构建全局一致性分流环境的终极利器。理解了二者的区别,面对各种网络报错时你就能有的放矢,从容应对。

?

本篇常见问题答疑 (FAQ)

什么是系统代理(System Proxy)?它有什么局限?↓
系统代理是操作系统(Windows/macOS)提供的一种建议性网络设置。它主要在注册表或网络设置中写入一个 HTTP/SOCKS 代理地址。绝大多数网页浏览器和常见桌面应用会主动读取该设置,但很多走底层 Socket、UDP 协议或忽略系统代理的软件(如命令行终端、大型游戏客户端)会直接绕过它,导致代理失效。
TUN 模式为什么能接管全部网络?↓
TUN(Network TUNnel)是一种在操作系统网络层(OSI 第三层)运作的虚拟点对点网络设备驱动。一旦启用,所有离开本机的 IP 数据包都会被强制路由进这张虚拟网卡中,由客户端代理内核(如 Mihomo)进行透明分流与重组,没有任何应用能够绕过。
日常开启 TUN 模式会有额外副作用吗?↓
只要客户端内部的分流规则(Rule)配置完善,日常开启 TUN 模式几乎没有负面影响。国内流量依旧在本地网卡直连发出,微信、游戏和网银不会受到干扰;唯一需要注意的是需确保虚拟网卡驱动安装完整,避免退出软件时路由表残留导致短暂断网。
相关知识专题