平行线路网络

TUN 模式是什么有什么用?

更新于 2026-10-31 · xn--gwtw23etrg7yf.shop

简答: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 交换以太网帧。

  1. 应用产生网络连接。
  2. 系统根据路由表决定数据包从哪个接口发送。
  3. 符合路由条件的数据包进入 TUN 虚拟接口。
  4. 客户端读取数据包,并应用代理、路由和 DNS 规则。
  5. 客户端将处理后的流量发送到远端或本地网络。

因此,TUN 不等于自动提速,也不等于所有程序必然被代理。它首先是一种流量接管入口,最终是否走代理,还要看路由范围、规则匹配、DNS 结果、应用行为和客户端实现。

在 Apple 平台上,系统级数据包隧道通常通过 Network Extension 的 packet tunnel provider 实现。Apple 文档将其描述为由系统把数据包交给隧道提供程序,再由程序处理并发送到隧道另一端;实际包含哪些流量,还要看路由设置,详见 Apple Packet Tunnel Provider 文档 和 Apple VPN 流量路由文档。

TUN、TAP、系统代理和规则分流的区别

方式主要处理对象覆盖范围常见限制
TUNIP 数据包可为更多不支持手动代理的程序提供系统级接管入口通常涉及虚拟网卡、路由或系统授权,也可能与其他网络软件冲突。
TAP以太网帧适合需要二层以太网帧的场景普通代理客户端的日常配置通常不需要单独使用 TAP。
系统代理应用读取的代理配置主要影响支持系统代理的浏览器和软件不读取系统代理的程序不会自动进入代理。
应用内代理单个应用的连接只影响手动配置过的应用需要逐个设置,协议和认证方式可能不同。
规则分流流量选择策略决定目标走直连、代理或拒绝它是处理策略,不是独立的网卡接管技术,通常依附于系统代理或 TUN 等入口。

简单理解:系统代理更像“告诉支持代理的应用去哪里转发”,TUN 更像“在系统网络接口层接收符合条件的数据包”,规则分流则回答“接管后应该走哪里”。

TUN 模式有什么用:适合哪些问题

  • 命令行程序不读取系统代理:某些开发工具、脚本或终端程序没有代理设置入口,TUN 可以作为排查路径之一。
  • 桌面软件没有代理选项:如果软件使用普通 TCP 或 UDP 连接,且客户端能够处理对应流量,TUN 可能比手动配置更方便。
  • 需要统一规则分流:系统流量进入客户端后,可以再依据域名、IP、进程或策略选择直连与代理,具体字段和能力以客户端文档为准。
  • 需要系统级 DNS 处理:部分 TUN 实现会结合 DNS 劫持、虚拟地址或自定义 DNS 路径,但这不是 TUN 本身必然提供的能力。

“能接管”不等于“没有例外”。虚拟机、容器、内核级网络组件、局域网流量以及应用自带的加密解析,可能使用不同的网络路径。遇到问题时,应把 TUN 当作缩小范围的工具,而不是确定性解决方案。

以 mihomo 文档为例,其 TUN 配置包含自动路由、DNS 劫持、路由排除和按应用处理等选项,说明 TUN 的效果取决于具体配置,而不是只打开一个开关就自动完成所有分流。可参考 mihomo TUN 配置文档。

开启前检查、验证和回滚步骤

  1. 记录当前状态:记下系统代理、其他 VPN、网络过滤器和自定义 DNS 是否开启;必要时导出客户端配置。
  2. 先做基础连通测试:关闭 TUN,仅保留一种代理入口,确认浏览器可以访问常用网站,并确认局域网设备是否正常。
  3. 只开启一个 TUN 实现:不要同时运行多个会创建虚拟网卡或修改系统路由的客户端,避免路由优先级互相覆盖。
  4. 接受系统权限:Windows、macOS、iOS 和 Android 的授权方式不同,看到网络扩展、VPN 或管理员权限提示时,应确认来源是正在使用的客户端。
  5. 验证目标程序:先测试原来无法联网的单个应用,再测试浏览器和局域网服务。客户端显示“已连接”只能说明配置或隧道状态,不足以证明每个程序都走了预期路径。
  6. 出现断网就回滚:关闭 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 一定走同一路径。

相关阅读

参考资料

  1. Linux Kernel Documentation:Universal TUN/TAP device driver
  2. Apple Developer Documentation:Packet tunnel provider
  3. Apple Developer Documentation:Routing your VPN network traffic
  4. mihomo Documentation:Inbound configuration
  5. mihomo Documentation:TUN