进阶:TUN 模式与 fake-ip,让游戏和"顽固软件"也能走代理
系统代理有一个天然盲区:它只覆盖"愿意读系统代理设置"的软件。浏览器很乖,但游戏、部分下载工具、很多命令行程序根本不读——它们的流量从代理旁边溜过去直连了。TUN 模式就是来解决这个问题的,本篇是全系列最进阶的一篇。
系统代理 vs TUN:覆盖范围差在哪
TUN 的原理一句话版:客户端在系统里创建一张虚拟网卡,让操作系统把所有网络流量都交给它,内核拿到流量后再按规则分流。因为发生在网络栈层面,任何 App 都绕不过去。
附带好处:TUN 接管的是 IP 层流量,所以 UDP 也能代理——语音通话、QUIC、部分游戏协议在系统代理模式下是漏的,TUN 下全部覆盖。
fake-ip:TUN 的最佳拍档
开了 TUN 的客户端设置里,DNS 模式通常有两个选项:fake-ip 和 redir-host。区别在 DNS 解析这一步:
- fake-ip:App 查询域名时,内核立即编造一个假 IP(198.18.x.x 段)返回。App 连接假 IP 时,内核反查出真实域名、按域名匹配规则、交给节点去解析真实 IP
- redir-host:内核先做真实 DNS 解析拿到真 IP,再按 IP 匹配规则转发
fake-ip 的优势:没有真实 DNS 查询就没有 DNS 污染和泄露,规则匹配用的是域名(更准确),而且省去了本地解析的几十毫秒。
怎么开(以 Clash Verge Rev 为例)
- 设置里打开 TUN 模式开关
- 首次开启会要求管理员/root 权限(创建虚拟网卡必须有),Windows 上建议安装"服务模式"免得每次弹 UAC
- DNS 模式选 fake-ip(多数客户端默认就是)
- macOS 需要授权一次系统扩展,Linux 用 sudo 或配置 capabilities
常见坑
- 与虚拟机/WSL/Docker 网卡打架:TUN 接管全部路由后,虚拟机的 NAT 网络可能断流。解决:在 TUN 配置里把虚拟机的网段加入排除(exclude)列表
- 部分银行/企业 VPN 软件检测到虚拟网卡会拒绝运行:需要用时临时关 TUN
- 开了 TUN 就不必开系统代理:两者取一即可,TUN 是超集
- 延迟略增:多一层网卡转发,游戏党关注 ping 的话可以只对浏览器用系统代理
什么时候才需要 TUN?只刷网页看视频 → 不需要,系统代理够了。玩外服游戏、用不走系统代理的软件、在意 DNS 泄露 → 开。
配合阅读:协议演进与选型 讲清节点背后的协议,本篇讲清客户端内部的分流,两篇看完客户端这块就通透了。