基础概念 · 系统代理与TUN

系统代理和TUN有什么区别?接管范围、分流与排查问答

先看答案

系统代理向支持它的应用提供代理地址;TUN让程序通过虚拟网络接口处理被路由到接口的IP流量。两者解决流量如何进入客户端的问题,最终直连还是代理仍由路由和分流规则决定。TUN覆盖范围通常更广,但不代表自动接管全部流量、保证连接成功或提供加密。

全部概念工具使用教程引用资料

系统代理是什么,为什么开启后还有软件不走代理?

系统代理是一组供应用读取的代理设置,不能强制所有软件采用同一条网络路径。常见设置包括代理主机、端口、例外地址或自动配置脚本。客户端把本机代理入口写入系统后,遵循这些设置的应用才会把请求交给入口。

不同软件使用的网络库、自身设置和运行环境可能不同。浏览器能打开网页,命令行工具却失败,首先要检查命令行工具是否读取系统代理或代理环境变量,而不是直接判断节点失效。应用也可能自行设置代理,覆盖系统设置。

微软对WinINet与WinHTTP的比较说明,不同网络接口的配置方式有区别。这只是Windows中的一个例子,不能据此推断所有Windows应用的行为,更不能套用到macOS、Linux或手机。

TUN是什么,它与系统代理如何接收流量?

TUN是一种虚拟网络接口,程序可从中读写IP数据包;系统代理则让应用主动连接代理入口。可以把两者理解为两种入口:一个依靠应用按设置发请求,一个依靠操作系统的路由把相应流量交给虚拟接口。

Linux内核TUN/TAP文档区分了处理IP包的TUN与处理以太网帧的TAP。代理客户端还需要处理这些包、建立出站连接并转发数据。创建了接口,只完成了接管链路中的一部分。

在Android上,客户端通常通过系统的VpnService接口建立本地TUN并请求用户授权。桌面系统可能需要服务或管理权限,具体以客户端官方说明为准。同样叫TUN的开关,在不同平台上也可能有不同的权限和实现条件。

系统代理和TUN分别适合什么场景?

应用能正常使用代理设置时,系统代理往往更容易验证;需要处理不读取代理设置的应用时,再考虑TUN。不要仅凭模式名称选更复杂的方案,先看实际需要接管的软件。

两种接管方式的使用差别
观察项系统代理TUN
流量进入方式应用采用系统提供的代理配置被系统路由到虚拟接口的IP流量交给程序
常见排查起点应用是否读取设置、入口地址和端口是否正确接口和路由是否建立、权限与排除规则是否符合预期
需要关注的影响代理例外、应用自带设置、退出后的设置恢复局域网访问、其他VPN、DNS、IPv4与IPv6覆盖范围

例如,只需要浏览器和一个支持显式代理的开发工具,可以先分别确认它们的代理设置。某个应用没有代理选项,再检查客户端是否提供适用的TUN接管。客户端的安装和权限步骤可参考Clash Verge Rev指南或v2rayN指南。

开启TUN或全局模式,就代表全部流量都经过远端吗?

不代表。接管范围、客户端分流和实际出站是三个需要分别确认的环节。流量进入TUN后,规则仍可以让它直连、代理或拒绝;没有进入客户端的流量,也不会因为切换了客户端的全局模式而自动被接管。

v2rayN官方说明明确区分系统代理入口与核心路由。不同客户端的“全局”含义还要看其实现和配置,不能把一个工具中的标签当成所有工具的统一标准。

TUN接管本身也可能有限制。IPv4与IPv6的路由、应用排除、目标地址排除和DNS处理都会影响实际范围。比如sing-box TUN配置支持自动路由、指定路由和排除路由等选项。因此“网卡已创建”与“某个应用的请求已经过指定出口”是不同的验证结果。

手机显示VPN图标,或者开启TUN,就说明连接安全了吗?

VPN图标或TUN状态说明系统接管机制在运行,不能单独证明远端已连通、所有流量已加密或身份完全匿名。Android VPN接口还允许应用配置接管名单和路由,图标不会替用户逐一核实这些范围。

TUN负责把包交给程序,不自带某一种远端加密协议。数据是否受到保护,还取决于应用到网站的HTTPS、客户端到远端的传输协议、证书验证和实际配置。TLS 1.3标准描述的是通信双方之间的安全通道,并不把网页安全、设备安全和代理接管范围合并成一个保证。

实用的判断方法是分别看接管状态、真实请求结果与证书错误。如果网页报告证书不可信,应核对设备时间、目标域名和证书链。把校验关闭后“能打开”不能作为安全验证完成的证据。

怎样验证某个应用真的经过了预期的代理路径?

用实际应用发起请求,并把请求结果与客户端连接记录对照。只看开关、节点延迟或一个浏览器中的出口IP,不能证明另一款应用也采用相同路径。

  1. 先记录当前接管方式、分流模式和选中的出口,暂停其他会改变路由的客户端,减少相互影响。
  2. 客户端提供本机HTTP或SOCKS入口时,确认入口正在监听;需要显式验证时,到验证命令工具填写客户端显示的实际协议和端口,不套用别人的默认值。仅提供TUN的工具可直接用实际应用与连接记录对照。
  3. 对同一个可用目标发起一次显式代理请求,再用需要排查的应用访问。记录时间、域名、报错和成功或失败。
  4. 在客户端连接记录中查看该目标是否出现、命中了什么规则、最终使用哪个出口。应用缓存或连接复用会影响观察,可重新发起连接再比较。

如果显式代理请求成功,应用请求却不出现在记录中,重点查应用接管。如果记录已经显示代理出站但目标仍失败,就继续查DNS、远端连接或目标服务。出口IP变化可以补充证据,但只代表这次请求的出口。

应该先开哪一种,切换后断网又怎样恢复?

先选能满足需求、容易验证的一种方式;切换时一次只改变一个条件。可以先验证显式代理,再验证系统代理,确有未接管应用时再测试TUN。这样能区分入口问题与出站问题,避免同时改模式、DNS和规则后失去比较依据。

启用TUN前,记下原有VPN、代理和局域网访问情况。办公室网络、远程桌面、打印机或开发容器可能依赖特定路由,测试时应一起检查,而不能只验证公网网页。TUN与系统代理是否可以同时开启,要看客户端是否设计为支持该组合。

发生断网时,先从客户端停止接管并正常退出,检查系统代理是否仍指向已停止的本机入口,再确认其他VPN和网络连接状态。不要直接删除所有网络接口或把路由表清空。恢复后回到上一个可用配置,保留脱敏错误信息,按网络故障分层排查逐步定位。

常见问题

浏览器能用,终端不能用,必须开启TUN吗?

不一定。先检查终端工具是否支持显式代理或代理环境变量,并使用实际入口做验证。如果显式代理成功,问题通常在终端的代理配置;确有无法配置代理的应用时,再考虑TUN。

系统代理和TUN可以同时开吗?

部分客户端支持同时启用,但不是通用要求。遵循具体客户端的说明,先分别验证再组合;其他VPN、重复接管和不合适的路由可能造成冲突。

TUN模式是不是一定比系统代理更快?

没有这种保证。两者首先是接管方式的区别。实际性能还取决于实现、设备、协议、出站网络和目标;应在相同目标与配置下测量,不能根据开关名称判断。

为什么TUN已开启,但局域网设备反而访问不到?

检查局域网地址是否被新路由接管,以及客户端是否有适当的排除或直连规则。先停用TUN比较现象,再核对实际路由和配置,避免直接改动整张路由表。

全局模式是否能接管忽略系统代理的软件?

单独改变客户端出站模式不能保证接管这些软件。必须先让流量通过应用代理设置或适用的TUN等入口进入客户端,出站模式才会对这部分流量生效。

退出客户端以后断网,应该先检查什么?

先检查系统代理是否仍指向已经停止监听的本机端口,再查看残留VPN连接和路由状态。优先使用客户端的正常停止与恢复功能,并保留原配置作为比较依据。

官方来源与核对

本文依据以下标准与官方资料整理,资料核对日期为 2026.10.02。概念说明与具体软件实现有区别,实际设置仍需对照对应版本文档。

HTTP与SOCKS5 →HTTP代理和SOCKS5有什么区别?CONNECT、DNS与端口问答客户端、内核与订阅 →客户端、内核和订阅是什么?配置导入、兼容与更新问答代理与 VPN →代理与 VPN 有什么区别?看懂连接提示、流量范围与安全边界

返回基础概念 · 按症状排查问题