知识百科

TUN 是什么:虚拟网卡接管全部流量的原理、与系统代理的区别、什么时候需要

解释 TUN 模式:客户端创建虚拟网卡并修改路由表,操作系统把所有出站流量交给它处理。说明它与系统代理的根本区别、为什么终端程序与游戏需要它、栈模式(system、gvisor)的含义、DNS 劫持的必要性,以及权限要求。

机场导航编辑部 发布 更新 约 2 分钟
TUN 是什么:虚拟网卡接管全部流量的原理、与系统代理的区别、什么时候需要 封面图

系统代理是「请程序把流量发给我」,TUN 是「不管程序愿不愿意,流量都要经过我」。这是两者的根本区别。

原理

  1. 客户端创建一张虚拟网卡(Windows 用 wintun 驱动,macOS 用网络扩展,Linux 用 tun 设备)。
  2. 客户端修改系统路由表,默认路由指向这张虚拟网卡。
  3. 任何程序发出的数据包被操作系统送到虚拟网卡。
  4. 客户端从虚拟网卡读取数据包,解析目标,按规则决定直连还是通过节点代理。
  5. 直连的包从真实网卡发出,代理的包加密后发到节点。

程序完全无感,它以为自己在正常联网。

与系统代理的对比

维度系统代理TUN
覆盖读系统代理设置的程序全部程序
终端程序需设环境变量自动
UDP通常不走
权限管理员 / 扩展授权
开销轻微

详见 系统代理与 TUN 怎么选

什么时候需要

  • Claude Code、Codex CLI 等终端工具
  • 游戏(多为 UDP)
  • 不读系统代理的软件
  • 想一次配置全局生效

只用浏览器时不必开。

栈模式

处理虚拟网卡数据包的协议栈实现:

  • system: 使用操作系统协议栈,性能好,Windows 上偶发兼容问题。
  • gvisor: 用户态协议栈,兼容性好,开销略高。
  • mixed: TCP 走 system,UDP 走 gvisor。

默认 mixed 或 gvisor,异常时切换。

DNS 劫持

TUN 接管了流量,但系统的 DNS 请求默认发往系统配置的 DNS 服务器。不劫持的话,域名解析仍在本地完成,可能被污染。开启 DNS 劫持后,53 端口的请求被重定向到客户端处理。见 DNS 是什么

权限

创建网卡与修改路由需要高权限:Windows 安装服务模式或管理员运行,macOS 授权网络扩展。这是 TUN 启动失败的主要原因,见 TUN 无法启动

开启方法

Clash Verge 见 TUN 模式教程;sing-box 客户端默认 TUN;iOS 与 Android 的客户端都以 VPN 模式工作,等价于 TUN。

常见问题

TUN 模式是什么意思?
客户端创建虚拟网卡接管系统全部网络流量的工作模式。任何程序的流量都会经过客户端,无需单独配置。
TUN 和系统代理哪个好?
只用浏览器,系统代理够用且无需权限;用终端工具或游戏,必须 TUN。TUN 是更全面的方案。
TUN 模式的栈是什么?
处理虚拟网卡数据包的网络协议栈实现。system 用系统栈,gvisor 用用户态栈,mixed 混合。Windows 上出问题时在三者间切换。