TUN模式是什么?和系统代理、全局模式到底有什么区别
TUN模式是什么?它是代理客户端在系统里建一块虚拟网卡,让电脑上所有程序的网络流量都先经过这块网卡、再由客户端决定怎么处理。系统代理只能管住愿意读代理设置的程序,TUN 模式能管住全部程序,包括游戏、语音软件和命令行工具。
很多人把 TUN 模式和「全局模式」当成一回事,这是理解代理客户端设置时最常见的混淆。两者管的是完全不同的问题:一个决定接管哪些程序的流量,一个决定接管之后往哪送。这篇把这两件事拆开讲清楚,再说什么时候该开 TUN、开了上不了网怎么查。
系统代理和 TUN 模式的区别
系统代理是在操作系统里登记一个「代理地址」(比如 127.0.0.1:7890),程序联网前自己去读这个设置,读了才走代理。浏览器会读,很多程序不读。TUN 模式不需要程序配合,所有流量在网络层就被虚拟网卡截住了。
| 对比项 | 系统代理 | TUN 模式 |
|---|---|---|
| 工作方式 | 程序主动读取系统的代理设置 | 虚拟网卡在网络层截住所有流量 |
| 能管住的程序 | 只有读代理设置的程序(浏览器、大部分常用软件) | 所有程序 |
| UDP 流量 | 基本管不到 | 管得到 |
| 游戏、语音通话 | 通常不走代理 | 走代理 |
| 命令行工具 | 多数不读系统代理,需要单独设置 | 走代理 |
| 需要的权限 | 普通权限即可 | 需要管理员权限(Windows)或 root(Linux) |
| 出问题的影响面 | 小,关掉就恢复 | 大,配置不对会导致整台电脑上不了网 |
UDP 这一行最容易被忽略。很多游戏和语音软件走 UDP,系统代理模式下这些流量直接从你自己的网络出去,跟节点毫无关系;怎么确认 UDP 到底有没有走节点,见 节点UDP测试怎么做。
TUN 模式和全局模式的区别
代理客户端的设置里其实有两个互不相关的开关:
- 怎么接管流量:系统代理,还是 TUN 模式。决定哪些程序的流量会进到客户端
- 接管之后往哪送:规则模式(也叫智能分流),还是全局模式。决定进来的流量是走节点还是直连
所以一共有四种组合:
| 规则 / 智能分流 | 全局 | |
|---|---|---|
| 系统代理 | 浏览器等程序进客户端,国内网站直连、国外走节点 | 浏览器等程序进客户端,全部走节点 |
| TUN 模式 | 所有程序进客户端,国内网站直连、国外走节点 | 所有程序进客户端,全部走节点 |
开了 TUN 不等于全部走代理。TUN 加规则模式时,国内网站照样直连,只是连游戏、命令行工具这类原本管不到的程序也按规则分流了。反过来,全局模式也不等于所有程序都走代理:系统代理加全局模式下,游戏照样不走。
规则和全局两种模式怎么选、规则怎么写,见 VPN客户端怎么设置分流。
什么时候该开 TUN
| 你的情况 | 建议 |
|---|---|
| 只用浏览器看网页、看视频 | 系统代理就够了,不用开 TUN |
| 玩游戏、语音通话要走代理 | 开 TUN |
| 某个软件怎么都不走代理(命令行工具、部分客户端) | 开 TUN |
| 公司电脑、没有管理员权限 | 开不了,只能用系统代理,或给软件单独设置代理地址 |
| 同时装了别的 VPN、加速器 | 先关掉其他的再开 TUN,否则容易冲突 |
手机上不用纠结这个问题:安卓和 iOS 上的代理客户端通常都以系统 VPN 的方式运行,本质上就是 TUN,所有 App 的流量默认都会进来。
开 TUN 为什么要管理员权限或「服务模式」
建虚拟网卡、改系统路由表,是操作系统只允许管理员做的事。所以 Windows 上开 TUN 需要用管理员身份运行客户端,Linux 上需要 root。
有的客户端为了避免每次都手动提权,提供了「服务模式」:安装一个后台服务,由它来做需要权限的那部分,客户端本身用普通权限运行即可。Clash Verge Rev 里看到「TUN 模式需要服务模式,请先安装服务」的提示,就是这个意思,按提示在设置里安装服务模式后再开 TUN。
开了 TUN 上不了网,按这个顺序查
- 虚拟网卡有没有建起来:没用管理员权限,或者服务模式没装成功,网卡就建不起来。Windows 可以在「网络连接」里看有没有多出一块新的网卡
- 有没有别的 VPN、加速器在同时运行:两个程序同时改路由,很容易互相覆盖,先关掉其他的
- 安全软件有没有拦截:部分安全软件会拦截虚拟网卡驱动的安装,需要放行
- 先关 TUN 看能不能上网:关掉就能上,说明问题出在 TUN 这一层;关掉也上不了,问题在节点或网络,排查方法见 节点超时怎么办
- 退出客户端后还是上不了网:通常是系统代理设置残留,清理方法见 VPN软件如何卸载 里的修复步骤
我们的电脑端怎么设置
我们的电脑端把上面说的两个开关分开了。默认是系统代理模式,本地监听 127.0.0.1:2080 的端口,只接管浏览器等读取系统代理的程序。勾选「代理所有应用」就是开 TUN,客户端会创建一块名为 FunMeGoTun 的虚拟网卡,接管所有程序的 TCP 和 UDP 流量。分流模式是另一个独立的选项:智能分流(国内直连、其余走代理)或全局代理,跟是否开 TUN 互不影响。
说一句对我们不利的实话:我们的电脑端目前没有服务模式。要开「代理所有应用」,需要用管理员身份运行软件,网卡没建起来时环境自检会提示;不像 Clash Verge Rev 那样装一次服务、以后就不用再管权限。
常见问题
TUN 模式是什么意思?
TUN 是一种虚拟网卡。代理客户端开启 TUN 模式后,会在系统里建一块这样的网卡,让所有程序的网络流量都先经过它,再由客户端按规则决定走节点还是直连。
TUN 模式和系统代理哪个好?
没有绝对的好坏。只用浏览器时系统代理更简单、影响面小;要让游戏、语音软件、命令行工具也走代理,就得开 TUN。
TUN 模式怎么开?
在客户端设置里找「TUN 模式」「虚拟网卡」或「代理所有应用」一类的开关。Windows 上需要用管理员身份运行客户端,或者先按提示安装客户端的服务模式。
Clash 的 TUN 模式无法上网怎么办?
先确认服务模式已安装、虚拟网卡已创建,再关掉其他 VPN 和加速器,看安全软件有没有拦截。关掉 TUN 后能上网,问题就在 TUN 这一层;关掉也不行,就去查节点和网络。
开了 TUN 模式还需要开全局模式吗?
不需要。TUN 决定接管哪些程序,全局或规则决定接管后往哪送,两者互不影响。大多数情况下 TUN 加规则模式就够了,国内网站照样直连。