TUN 模式是什么意思?
一句话结论
客户端在系统里新建一块虚拟网卡,从网络层截住本机发出的数据包,不依赖各个程序是否愿意读取代理设置。
打开之后,本机多出一张虚拟网卡,那些原本无视代理项的软件,请求也会被收进客户端手里。使用它往往得有管理员权限,并且可能与装在同一台电脑上的其他网络工具打架,属于和“系统代理”并列的另一条接管路线。
TUN 是操作系统自带的虚拟网络设备类型。客户端把它虚拟成一张并不存在的网卡接入系统,让系统把往外发的 IP 数据包先送过来;客户端在这里逐个拆开,依照规则决定哪些交给节点,哪些仍放回物理网卡。
它和系统代理差在哪
系统代理是一张“请自觉遵守”的告示:浏览器之类的程序读到它,才会把请求交给本地端口。TUN 不靠自觉,它站在数据包必经的路上。
| 对比点 | 系统代理 | TUN 模式 |
|---|---|---|
| 接管层级 | 应用层,依赖程序读取设置 | 网络层,按数据包接管 |
| 命令行、游戏、自带网络库的程序 | 常常绕过 | 通常也会被接管 |
| 需要的权限 | 一般不需要提升权限 | 通常需要管理员或服务授权 |
| 出问题时的表现 | 个别程序不走代理 | 可能整机断网或和别的软件冲突 |
系统代理一侧的概念见词典里的 系统代理,两种方式在 Clash 里怎么取舍见 Clash 系统代理是什么。
在哪里会看到它
- 客户端设置页里名为 TUN、虚拟网卡或增强模式的开关。
- 在系统的网卡列表里能看到一个你没见过的新接口。
- 路由表里出现指向这块接口的条目,用来把流量引过去。
不同客户端的菜单文字和默认值不一样,也会随版本变化,以你手上客户端的当前文档为准。
几个容易想错的地方
- 以为开了 TUN 就不用管 DNS。 数据包被接管后,域名解析怎么处理反而更重要,否则会出现解析绕过内核的情形,参见 DNS 泄露 与 Fake-IP。
- 以为它等于全局代理。 TUN 只是接管方式,哪些流量走代理仍由规则决定。
- 以为开关打开就一定成功。 权限不足、驱动缺失、与其他虚拟网卡软件抢路由,都会让它开不起来。
怎么判断自己需不需要
先用系统代理跑通日常使用。只有当某个程序明确不走代理,才考虑换 TUN。开启失败时,按 TUN 模式开启失败怎么办 的顺序查权限和冲突;开着 TUN 又觉得整机变慢,可以先关掉对照,再回头检查规则与 DNS。