TUN 模式是什么有什么用?
简答:TUN 模式是一种通过虚拟网络接口和路由规则接管 IP 流量的方式,适合处理命令行工具、桌面软件或部分不支持代理设置的程序。只用浏览器且系统代理已经正常时,通常不必优先开启;如果开启后断网,应先关闭 TUN,再检查权限、路由、DNS 和其他 VPN 冲突。
定义:TUN 模式是利用虚拟网络接口接收和发送 IP 数据包,再由客户端按代理、路由或 DNS 规则处理系统流量的一种网络接管方式;Linux 内核文档区分了 TUN 处理 IP 数据包、TAP 处理以太网帧,详见 <a href="https://docs.kernel.org/networking/tuntap.html">Linux TUN/TAP 官方文档</a>。
先看结论:你是否需要开启 TUN
如果只是浏览器访问网页,并且浏览器已经正确使用系统代理或手动代理,通常不必为了“更完整”而开启 TUN。若出现浏览器能打开、但命令行工具、桌面应用、游戏、虚拟机或部分 UDP 程序无法连接,TUN 才值得作为下一层排查方案。
| 使用场景 | 是否优先尝试 TUN | 判断理由 |
|---|---|---|
| 浏览器已经可以正常访问 | 否 | 先检查系统代理、浏览器代理和 DNS,避免额外增加路由冲突。 |
| 命令行工具不读取系统代理 | 可以尝试 | 部分程序没有代理设置入口,TUN 可从 IP 流量层提供接管路径。 |
| 桌面软件没有代理选项 | 可以尝试 | 是否生效仍取决于客户端规则、权限和软件实际使用的网络路径。 |
| 需要处理部分 UDP 流量 | 先核对客户端能力 | TUN 处理 IP 数据包,但具体协议和 UDP 支持取决于客户端实现。 |
| 开启后所有网络都断了 | 先关闭 | 优先检查虚拟网卡、默认路由、DNS、防火墙和其他 VPN 冲突。 |
最短判断:先关闭 TUN,确认普通系统代理能够访问;只有“某些应用不走代理”或“目标软件没有代理设置”时,再开启 TUN 做对照测试。
TUN 模式是怎么工作的
开启 TUN 后,系统会出现一个虚拟网络接口。系统路由可以把目标流量交给这个接口,客户端再读取 IP 数据包,根据规则选择直连、代理、拒绝或 DNS 处理路径。Linux 内核文档说明,TUN/TAP 设备可以让用户空间程序与内核网络设备交换数据,其中 TUN 交换 IP 数据包,TAP 交换以太网帧。
- 应用产生网络连接。
- 系统根据路由表决定数据包从哪个接口发送。
- 符合路由条件的数据包进入 TUN 虚拟接口。
- 客户端读取数据包,并应用代理、路由和 DNS 规则。
- 客户端将处理后的流量发送到远端或本地网络。
因此,TUN 不等于自动提速,也不等于所有程序必然被代理。它首先是一种流量接管入口,最终是否走代理,还要看路由范围、规则匹配、DNS 结果、应用行为和客户端实现。
在 Apple 平台上,系统级数据包隧道通常通过 Network Extension 的 packet tunnel provider 实现。Apple 文档将其描述为由系统把数据包交给隧道提供程序,再由程序处理并发送到隧道另一端;实际包含哪些流量,还要看路由设置,详见 Apple Packet Tunnel Provider 文档 和 Apple VPN 流量路由文档。
TUN、TAP、系统代理和规则分流的区别
| 方式 | 主要处理对象 | 覆盖范围 | 常见限制 |
|---|---|---|---|
| TUN | IP 数据包 | 可为更多不支持手动代理的程序提供系统级接管入口 | 通常涉及虚拟网卡、路由或系统授权,也可能与其他网络软件冲突。 |
| TAP | 以太网帧 | 适合需要二层以太网帧的场景 | 普通代理客户端的日常配置通常不需要单独使用 TAP。 |
| 系统代理 | 应用读取的代理配置 | 主要影响支持系统代理的浏览器和软件 | 不读取系统代理的程序不会自动进入代理。 |
| 应用内代理 | 单个应用的连接 | 只影响手动配置过的应用 | 需要逐个设置,协议和认证方式可能不同。 |
| 规则分流 | 流量选择策略 | 决定目标走直连、代理或拒绝 | 它是处理策略,不是独立的网卡接管技术,通常依附于系统代理或 TUN 等入口。 |
简单理解:系统代理更像“告诉支持代理的应用去哪里转发”,TUN 更像“在系统网络接口层接收符合条件的数据包”,规则分流则回答“接管后应该走哪里”。
TUN 模式有什么用:适合哪些问题
- 命令行程序不读取系统代理:某些开发工具、脚本或终端程序没有代理设置入口,TUN 可以作为排查路径之一。
- 桌面软件没有代理选项:如果软件使用普通 TCP 或 UDP 连接,且客户端能够处理对应流量,TUN 可能比手动配置更方便。
- 需要统一规则分流:系统流量进入客户端后,可以再依据域名、IP、进程或策略选择直连与代理,具体字段和能力以客户端文档为准。
- 需要系统级 DNS 处理:部分 TUN 实现会结合 DNS 劫持、虚拟地址或自定义 DNS 路径,但这不是 TUN 本身必然提供的能力。
“能接管”不等于“没有例外”。虚拟机、容器、内核级网络组件、局域网流量以及应用自带的加密解析,可能使用不同的网络路径。遇到问题时,应把 TUN 当作缩小范围的工具,而不是确定性解决方案。
以 mihomo 文档为例,其 TUN 配置包含自动路由、DNS 劫持、路由排除和按应用处理等选项,说明 TUN 的效果取决于具体配置,而不是只打开一个开关就自动完成所有分流。可参考 mihomo TUN 配置文档。
开启前检查、验证和回滚步骤
- 记录当前状态:记下系统代理、其他 VPN、网络过滤器和自定义 DNS 是否开启;必要时导出客户端配置。
- 先做基础连通测试:关闭 TUN,仅保留一种代理入口,确认浏览器可以访问常用网站,并确认局域网设备是否正常。
- 只开启一个 TUN 实现:不要同时运行多个会创建虚拟网卡或修改系统路由的客户端,避免路由优先级互相覆盖。
- 接受系统权限:Windows、macOS、iOS 和 Android 的授权方式不同,看到网络扩展、VPN 或管理员权限提示时,应确认来源是正在使用的客户端。
- 验证目标程序:先测试原来无法联网的单个应用,再测试浏览器和局域网服务。客户端显示“已连接”只能说明配置或隧道状态,不足以证明每个程序都走了预期路径。
- 出现断网就回滚:关闭 TUN,恢复原来的系统代理和 DNS 设置;若仍无法联网,再检查残留虚拟网卡、路由、防火墙规则和其他 VPN。
不同客户端可能把功能叫作“TUN 模式”“虚拟网卡”“VPN 模式”或“系统代理接管”。菜单名称会随客户端和版本变化,不能仅凭名称判断实现完全相同。
断网、DNS 异常和路由冲突怎么排查
开启后所有网站都打不开:先关闭 TUN,确认网络是否恢复;如果恢复,重点检查虚拟网卡是否创建成功、客户端是否有权限、默认路由是否被改写,以及客户端是否有可用的代理出口。
浏览器能打开,但命令行仍失败:确认命令行程序是否使用 IPv6、是否固定 DNS、是否通过独立代理环境变量连接。用同一个目标分别测试系统代理关闭和 TUN 开启的结果,避免把节点、目标网站和客户端规则问题混在一起。
域名解析异常:TUN、DNS 劫持、虚拟地址和系统 DNS 是不同环节。可以分别记录关闭和开启 TUN 时的解析结果;如果只有域名失败、直接访问 IP 正常,问题可能在 DNS 路径或规则匹配,而不一定是 TUN 网卡本身。
局域网设备无法访问:检查是否启用了全量路由,或是否排除了本地网络。Apple 的 VPN 路由文档区分了包含路由、排除路由和本地网络排除设置;其他系统的字段名称则以所用客户端为准。
多个 VPN 或网络工具同时运行:这可能造成虚拟网卡、DNS、路由或防火墙规则冲突。最小化排查时,只保留一个 TUN 或 VPN 接管程序,确认基础网络后再逐个恢复其他工具。
TUN 模式的代价:不是越“全”越好
- 权限成本:创建虚拟接口、修改路由或启用系统 VPN 通常需要系统授权,部分桌面系统还需要管理员权限。
- 兼容成本:防火墙、杀毒软件、其他 VPN、虚拟机和容器网络可能与 TUN 产生冲突。
- 排查成本:流量经过虚拟接口、规则和 DNS 处理后,故障链路比单纯应用代理更长。
- 性能成本:数据包需要经过额外的用户空间或网络扩展处理,实际影响取决于客户端、系统、规则数量和网络环境,不能仅凭开启 TUN 推断具体速度变化。
- 隐私边界:TUN 只能说明流量进入了某个接管入口,不代表 DNS、应用自带解析、WebRTC 或其他旁路流量一定使用同一路径,仍需按具体系统和客户端验证。
如果目标只是让浏览器使用代理,优先选择更简单的系统代理或浏览器代理;如果目标是处理不支持代理的应用,再考虑 TUN,并保留清晰的回滚路径。
第三方使用指南说明
本文是第三方使用指南,不代表“平行线路网络”官方文档;客户端菜单、系统授权和规则字段可能随版本变化,实际操作应以所用客户端和操作系统的当前说明为准。本文核验资料日期为 2026 年 10 月 31 日。
如果你准备使用具体客户端,还应继续核对该客户端当前版本对 TUN、DNS、路由排除和 UDP 的支持情况,不能把不同客户端的配置字段直接混用。
常见问题
只用浏览器上网,需要开启 TUN 模式吗?
通常不需要。先确认浏览器或系统代理已经生效;只有浏览器正常而其他软件不走代理,或目标软件没有代理设置时,才建议把 TUN 作为下一步排查方案。
TUN 模式会不会让所有流量都走代理?
不会自动保证。TUN 负责提供流量接管入口,实际是否代理取决于路由范围、规则、DNS、客户端实现和应用网络路径;局域网、IPv6、虚拟机和容器等都可能存在例外。
TUN 和 TAP 的区别是什么?
TUN 主要交换 IP 数据包,TAP 主要交换以太网帧。普通客户端讨论的 TUN 模式通常指前者,具体定义可核对 Linux 内核 TUN/TAP 文档。
开启 TUN 后断网怎么办?
先关闭 TUN,确认网络是否恢复,再检查虚拟网卡权限、默认路由、DNS、客户端规则和其他 VPN 是否冲突。一次只保留一个流量接管程序,恢复基础网络后再逐项开启。
TUN 模式能解决 DNS 泄露吗?
不能直接这样判断。TUN、DNS 劫持和 DNS 代理是不同环节,需要分别核对客户端 DNS 配置、系统解析路径、IPv4/IPv6 以及应用自带解析,不能把开启 TUN 等同于 DNS 一定走同一路径。