VPN 的 TUN 模式是什么?什么时候开启、如何验证与排查
简答:TUN 模式可以理解为客户端创建一个虚拟网络接口,把原本不遵守系统代理的 IP 流量交给客户端处理。只用浏览器或普通支持系统代理的软件时通常不必开启;遇到游戏、命令行、UDP、语音或不认代理的程序,再考虑开启。先确认客户端支持 TUN、基础代理已经连通,并记住关闭 TUN 后要检查系统代理、DNS 和路由是否恢复。
定义:TUN 是一种通过虚拟网络接口在 IP 层接管流量的方式;它决定流量能否被客户端接收,但不单独决定流量最终走代理、直连还是被分流规则拒绝。
先看结论:TUN 要不要开?
如果你的问题是“浏览器能用,但某个软件、游戏、命令行工具或 UDP 应用不走代理”,TUN 才值得优先测试。如果所有目标程序都已经正确使用系统代理,开启 TUN 往往只会增加权限、路由和 DNS 排查复杂度。
| 方式或场景 | 适用流量 | 是否通常需要额外权限 | 可能冲突的场景 | 易复原性 | 验证方式 | 停止条件 |
|---|---|---|---|---|---|---|
| 系统代理 | 遵守 HTTP、HTTPS 或 SOCKS 代理设置的浏览器和应用 | 通常较低;具体看客户端 | 应用忽略系统代理、应用自带代理、企业策略 | 高,关闭客户端代理即可回退 | 查看系统代理状态,并在目标应用内访问测试地址 | 目标应用仍绕过代理,或办公软件受到影响 |
| TUN | 更广泛的 IP 流量,包括部分不认系统代理的程序 | 桌面端常需要管理员、系统扩展或服务授权;移动端通常需要系统 VPN 授权 | 其他 VPN、虚拟机、容器、企业 VPN、局域网路由 | 中等;关闭 TUN 后仍需检查路由、DNS 和代理残留 | 查看虚拟接口、客户端连接日志,并分别测试 TCP、UDP、DNS | 出现全局断网、内网不可达或其他 VPN 无法建立 |
| 全局模式 | 由客户端策略决定的广泛目标流量 | 通常不单独决定权限 | 内网、局域网、本地服务和企业域名 | 高,通常可切换回规则模式 | 检查目标域名命中的策略和连接日志 | 不需要代理的内网或本地服务受影响 |
| 规则分流 | 按域名、IP、进程或规则集选择代理或直连 | 通常不单独决定权限 | 规则顺序错误、DNS 解析结果变化、IPv6 走不同路径 | 高,但需要保留原规则或导出配置 | 查看规则命中记录,而不是只看客户端“已连接” | 无法解释目标流量命中哪条规则 |
| 手机系统 VPN 接口 | 由 Android 或 iOS 系统授权的设备级或按应用 VPN | 需要用户授权;同一时间可能受系统 VPN 状态限制 | 另一款 VPN、始终开启 VPN、企业管理策略 | 较高,断开系统 VPN 可回退 | 查看系统 VPN 图标、应用连接状态和目标应用结果 | 系统拒绝授权或另一款 VPN 被自动断开 |
表中“权限”不是 TUN 的统一标准。不同客户端可能把 TUN、自动路由、DNS 接管、严格路由和服务模式拆成多个开关,菜单名称和默认值需以当前客户端文档为准。
TUN 到底做了什么?先分清四个概念
第一,TUN 是流量接管方式。客户端创建虚拟网络接口,系统把符合路由条件的 IP 数据包送到这个接口,客户端再决定如何处理。Android 的 VpnService 官方说明把这类接口描述为可配置地址和路由、读取发往接口的数据包并注入返回数据包的虚拟网络接口;Apple 也通过 Packet Tunnel Provider支持面向数据包的 VPN 隧道。
第二,系统代理是应用层入口。应用主动读取系统代理地址后,才会把 HTTP、HTTPS 或 SOCKS 流量交给代理。应用如果完全不读取系统代理,系统代理本身不能保证它的流量会进入客户端。
第三,全局或规则模式是出站策略。它回答的是“已经进入客户端的流量最终走代理还是直连”,不是“哪些流量能被 TUN 接管”。因此,开启 TUN 不等于所有流量都会走节点;路由范围、规则、目标地址、协议能力和 IPv4/IPv6 选择都会影响最终结果。
第四,DNS 接管是独立链路。在支持这些选项的客户端中,DNS 模式可能包括不改系统 DNS、把 TUN 地址设为系统 DNS,或进一步拦截其他接口发往 53 端口的请求。以 mihomo 的 TUN 官方文档为例,DNS 模式、DNS 劫持、自动路由和严格路由分别承担不同作用;Windows、macOS 与 Android 对本地网络 DNS 请求的处理也有差异。因此不能把“开了 TUN”直接等同于“DNS 已经被接管”。
什么时候适合开启,什么时候先不要开?
适合先测试 TUN 的情况
- 浏览器可以使用代理,但某个桌面应用完全不认系统代理。
- 目标程序使用 UDP、独立网络栈或自身不提供代理设置。
- 命令行工具没有读取系统代理,且你能明确测试单个目标。
- 你需要让同一台设备上的多个应用统一进入客户端,再通过规则决定代理或直连。
- Android 或 iOS 客户端明确提供系统 VPN 授权流程,并说明其支持的流量范围。
建议先不要开启的情况
- 你只需要浏览器访问网页,当前系统代理已经正常工作。
- 电脑正在使用公司 VPN、远程办公 VPN、虚拟机网络或容器网络。
- 你需要稳定访问打印机、NAS、局域网网关或公司内网,但还没有确认本地网段是否排除。
- 客户端要求管理员、系统扩展、驱动或服务授权,而你无法确认来源和恢复方式。
- 手机上已有另一款 VPN、始终开启 VPN 或企业管理策略。
Android 的 官方 API 说明明确指出,首次建立 VPN 需要用户操作,而且同一时间只能有一个 VPN 连接处于运行状态;Apple 的 VPN 路由文档则区分了包含路由、排除路由和按应用路由。由此可见,移动端不能机械照搬桌面端的“TUN 开关”判断,应该先看系统授权和客户端实际提供的路由选项。
通用开启流程:先建立基线,再逐项接管
- 记录当前状态。记下当前是否能直连、系统代理是否开启、公司 VPN 是否连接、局域网设备是否可访问。Windows 用户可以先运行
netsh winhttp show proxy查看 WinHTTP 代理;微软文档说明该命令用于显示当前 WinHTTP 代理设置,重置命令会将其恢复为 DIRECT,不能在没有必要时直接重置。参考 Microsoft Learn 的 netsh winhttp 文档。 - 先确认基础代理可用。不启用 TUN,先连接客户端,确认一个明确的测试目标能正常访问。若基础代理本身失败,先处理节点、账号、订阅或网络问题,不要用 TUN 掩盖基础连接故障。
- 确认客户端的 TUN 入口。在设置、网络、内核、增强模式或虚拟网卡相关页面查找 TUN、虚拟网卡、VPN 模式、透明代理或类似名称。不要根据其他客户端的教程直接填写字段;找不到官方说明时,只做菜单核验,不复制陌生配置。
- 按平台完成授权。Windows 可能出现管理员或防火墙授权;macOS 可能出现网络扩展或系统 VPN 授权;Android 和 iOS 通常由系统弹窗确认 VPN。Android 官方流程要求应用先取得用户同意,再建立 VPN 接口;Apple 的 Network Extension 文档说明,数据包隧道由系统启动并转发数据包给提供者。
- 先只启用 TUN,不同时改变多个变量。首次测试时尽量保持原有分流模式不变,不要同时改 DNS、MTU、IPv6、规则集和代理模式。这样才能判断问题究竟来自 TUN 还是其他设置。
- 按需打开自动路由,再单独判断 DNS。自动路由决定哪些地址进入虚拟接口;DNS 模式、DNS 劫持和严格路由则影响名称解析与路由约束。它们不是同一个开关,出现问题时应逐项记录。
- 只测试一个目标。先测试原本不走代理的应用,再测试浏览器、局域网地址和公司内网。每次只改变一个设置,并记录“设置—现象—日志”三项结果。
开启成功的标准不是客户端显示“已连接”,而是目标应用的流量确实进入了客户端并得到预期结果。若目标应用仍不通,查看连接日志或规则命中记录;若所有应用都断网,优先停用 TUN、恢复原系统代理状态,再检查路由和 DNS。
TUN 可分离调试:先处理流量,再处理 DNS
许多客户端把 TUN、自动路由、DNS 接管和严格路由拆成独立选项。排查时可以采用低风险顺序:先关闭 DNS 接管但保留 TUN,确认普通 IP 连接是否恢复;再关闭严格路由或自动路由,观察是否是路由约束导致断网;最后完全关闭 TUN 并重启客户端,确认虚拟接口和系统网络是否恢复。具体选项是否存在、名称如何显示,要以当前客户端文档为准。
这样做的原因是:TUN 负责把部分 IP 流量送入虚拟接口;DNS 接管负责改变名称解析请求的去向;严格路由可能阻止不符合规则的网络路径;自动路由则可能修改系统路由。它们相互影响,但不能用一个开关的结果推断另外三个开关已经生效。
| 现象 | 优先判断 | 验证动作 | 低风险回退 |
|---|---|---|---|
| 开启后所有应用断网 | 虚拟接口、自动路由、权限或防火墙 | 查看客户端日志、虚拟接口状态和系统网络;暂时关闭 DNS 接管 | 关闭 TUN,恢复原代理开关,再重新连接网络 |
| 客户端显示连接但目标程序仍直连 | 程序未进入 TUN,或规则选择直连 | 检查目标程序是否在连接日志中出现,确认规则命中和 IPv4/IPv6 路径 | 保留系统代理作为对照,不同时改规则和 DNS |
| 网页能开但域名偶尔失败 | DNS 模式、DNS 劫持、IPv6 或解析结果 | 分别测试 IP 访问和域名访问,查看 DNS 请求是否进入客户端 | 关闭 DNS 接管,恢复系统 DNS 后重测 |
| 局域网或公司内网不可访问 | 本地网段被纳入路由,或严格路由阻断 | 先测试网关、局域网 IP 和公司域名,确认是否有本地网段排除项 | 关闭 TUN;恢复后检查局域网和公司 VPN |
| 另一款 VPN 无法连接 | 系统只允许一个 VPN,或多个虚拟接口竞争路由 | 断开其他 VPN,仅保留一个客户端进行对照测试 | 不要并行运行两个全局接管型 VPN |
四个平台的权限与验证重点
Windows
重点检查管理员授权、虚拟网卡、防火墙和 WinHTTP 状态。不要一看到代理异常就执行重置;先用 netsh winhttp show proxy 查看当前值,只有确认 WinHTTP 配置残留且影响目标程序时,才考虑按微软文档执行恢复。关闭 TUN 后,重新确认系统代理、WinHTTP、局域网和办公软件是否恢复。
macOS
重点检查系统弹出的网络扩展或 VPN 授权,以及公司 VPN、局域网和 IPv6 是否受影响。Apple 的 Network Extension 文档说明,VPN 可以通过包含路由和排除路由控制流量范围;因此看到“VPN 已连接”时,还要检查目标地址是否属于实际包含范围。
Android
重点检查系统 VPN 授权、始终开启 VPN、锁定模式和其他 VPN 应用。Android 官方文档说明,用户首次需要授权,且新的 VPN 连接可能使已有 VPN 失效。验证时看系统 VPN 图标、目标应用结果和客户端日志;不要只根据应用内的“连接成功”判断所有流量都已接管。
iPhone 或 iPad
重点检查系统 VPN 配置是否已允许、是否存在按应用或按路由范围的限制,以及局域网服务是否被排除。Apple 文档显示,系统可以通过包含路由、排除路由和按应用 VPN 控制流量范围,因此应以客户端提供的实际选项和系统状态为准。
TUN 会不会提速?DNS 泄漏和 WebRTC 要怎么理解?
TUN 不是测速或提速开关。它可能在某些场景间接改善连通性,例如目标程序原本完全绕过系统代理,启用 TUN 后才进入客户端;但也可能增加处理、路由或 DNS 复杂度。是否改善延迟、丢包或稳定性,必须对同一目标做直连与启用 TUN 的对照测试,不能仅凭客户端状态判断。
DNS 泄漏、IPv6 直连和 WebRTC 暴露也不是同一个问题:DNS 泄漏关注域名解析请求是否仍由原网络处理;IPv6 直连关注 IPv6 流量是否绕过预期路径;WebRTC 暴露则取决于浏览器和应用的连接机制。排查时分别查看客户端 DNS 日志、IPv4/IPv6 连接记录和浏览器实际网络行为,不要用一次 DNS 测试替代全部检查。
关闭 TUN 后如何安全恢复?
- 先在客户端内关闭 TUN、自动路由和相关 DNS 接管选项。
- 断开客户端,再重新连接当前 Wi-Fi 或有线网络。
- 确认系统代理是否应保持开启;如果原本没有系统代理,不要为了“修复”而新增代理。
- 检查浏览器、办公软件、局域网网关和公司 VPN 是否恢复。
- Windows 仅在确认 WinHTTP 残留影响程序时查看或恢复其设置;不要把
netsh winhttp reset proxy当作通用修复命令。 - 若仍断网,保留客户端日志和设置截图,再按客户端官方文档处理,不要继续修改 MTU、路由表或安全软件。
低风险回退的核心是一次只撤销一个变量,并保留原来的系统代理、DNS 和 VPN 状态。涉及公司网络、远程办公或受管理设备时,优先遵循组织的网络策略。
本站推荐说明
广告/本站推荐:如果你正在比较跨境办公场景下的线路与连接方案,可把本文的“基础代理—TUN—DNS—回退”顺序作为测试清单,再根据实际网络环境核验服务说明。
常见问题
TUN 模式是不是等于全局代理?
不是。TUN 是在 IP 层接收部分流量的方式;全局、规则或直连模式决定进入客户端后的处理策略。即使 TUN 已开启,规则、路由范围、DNS 和 IPv4/IPv6 仍可能让某些流量直连。
只用浏览器上网,需要开启 TUN 吗?
通常先不需要。如果浏览器已经正确使用系统代理,TUN 的额外接管能力没有明显必要。只有当浏览器以外的目标程序不认系统代理,或你需要测试更广泛的 IP 流量时,才考虑开启。
开启 TUN 会自动提速吗?
不会自动提速。TUN 可能让原本绕过代理的程序进入客户端,从而改善连通性,但也可能增加路由、DNS 或处理开销。应使用同一目标进行直连与 TUN 对照,并查看延迟、丢包和日志,而不是只看连接状态。
为什么 TUN 开启后仍有 DNS 问题?
因为 TUN、DNS 模式、DNS 劫持和严格路由可能是独立设置。开启 TUN 只说明存在流量接管路径,不代表所有 DNS 请求都已改道。应检查 DNS 模式、客户端 DNS 日志、IPv6 路径和系统的 Private DNS 或本地网络设置。
Android 和 iPhone 的 TUN 设置与电脑一样吗?
不完全一样。移动端通常通过系统 VPN 接口获得授权,系统还可能限制同时运行的 VPN、按应用路由或本地网络访问。应以系统授权弹窗和当前客户端的移动端文档为准,不要直接套用桌面端字段。
TUN 开启后断网,第一步做什么?
先关闭 TUN 以及相关 DNS 接管或自动路由,断开并重新连接网络,再确认系统代理、局域网和办公软件是否恢复。不要一开始就修改 MTU、路由表或关闭安全软件。
相关阅读
- 继续按 DNS、TUN 与系统网络顺序排查连接成功但无法上网
- 连接失败时按网络、DNS、MTU 与客户端逐步定位
- 进一步理解全局、规则与直连模式的分流关系
- 单独检查 VPN、DoH 与 IPv6 导致的 DNS 泄漏
- 部分网站打不开时继续排查 DNS、分流与节点