TUN 模式是什么
TUN 模式是 Clash 通过操作系统的虚拟网卡(Virtual Network Interface)来接管所有网络流量的一种工作方式。
当 TUN 模式启用后:
- Clash 创建一个虚拟网卡(如
utun、tun0)。 - 系统路由表被修改,所有流量被引导到这个虚拟网卡。
- 虚拟网卡将流量交给 Clash 内核处理。
- Clash 根据规则决定每条流量是直连、走代理、还是拒绝。
与系统代理不同,TUN 模式工作在网络层(OSI 第 3 层),因此能够代理所有应用的网络流量,包括不遵循系统代理设置的应用。
TUN 模式 vs 系统代理模式
| 特性 | 系统代理 | TUN 模式 |
|---|---|---|
| 工作原理 | 设置 HTTP/SOCKS 代理 | 虚拟网卡劫持所有流量 |
| 代理范围 | 仅支持系统代理的应用(主要是浏览器) | 所有应用的所有流量 |
| 对游戏的代理 | 通常无效 | 有效 |
| 对命令行的代理 | 需手动设置环境变量 | 自动生效 |
| 对 Docker/WSL 的代理 | 需额外配置 | 自动覆盖 |
| 权限要求 | 无需管理员 | 需要管理员/root 权限 |
| 性能影响 | 较低 | 略高(涉及网卡层处理) |
| 稳定性 | 稳定 | 偶有兼容性问题 |
| DNS 泄漏风险 | 较低 | 需要正确配置 DNS |
什么时候需要 TUN 模式
以下场景建议启用 TUN 模式:
- 游戏代理:Steam 下载、网络游戏等不走系统代理的应用。
- 命令行工具:git、curl、npm、pip 等开发工具需要代理。
- Docker/WSL 环境:容器内的流量需要被代理。
- 全面代理:你希望确保没有任何流量泄漏到真实网络。
- P2P 应用:BT 下载、迅雷等需要全程代理的应用。
如果你只是日常浏览网页,系统代理模式通常已经足够,不需要开启 TUN 模式。
各客户端开启 TUN 模式的方法
Clash Verge Rev(Windows / macOS / Linux)
- 打开 Clash Verge Rev 设置页面。
- 找到「TUN Mode」开关,点击启用。
- 首次启用会提示安装虚拟网卡驱动:
- Windows:会自动安装
Wintun驱动,可能需要管理员权限确认。 - macOS:需要授权系统扩展(System Extension),按照提示前往「系统设置 → 隐私与安全性」中允许。
- Linux:使用内核自带的
tun模块,需确保已加载。
- Windows:会自动安装
- 驱动安装完成后,TUN 模式即刻生效。
如果需要更详细的安装步骤,请参考 Windows 安装配置完整指南。
mihomo(命令行 / 核心模式)
如果你在 Linux 服务器或路由器上直接使用 mihomo 核心,需要在配置文件中手动启用 TUN:
tun:
enable: true
stack: system # 可选:system / gvisor / mixed
dns-hijack:
- any:53 # 劫持所有 DNS 请求
auto-route: true # 自动设置路由表
auto-detect-interface: true
FlClash
- 进入设置 →「TUN 模式」。
- 点击开启,授权管理员权限。
- FlClash 会自动配置虚拟网卡。
DNS 配置注意事项
TUN 模式下 DNS 配置尤为关键,因为所有 DNS 请求都会被虚拟网卡拦截。配置不当会导致:
- DNS 泄漏:DNS 请求走真实网络而非代理,暴露你访问的域名。
- 解析失败:DNS 请求无法到达 DNS 服务器,导致所有网站打不开。
推荐配置
dns:
enable: true
listen: "0.0.0.0:53"
ipv6: false
enhanced-mode: fake-ip
fake-ip-range: 198.18.0.1/16
fake-ip-filter:
- "*.lan"
- "*.local"
- localhost.ptlogin2.qq.com
- dns.msftncsi.com
- www.msftncsi.com
- www.msftconnecttest.com
nameserver:
- 223.5.5.5
- 119.29.29.29
fallback:
- "tls://8.8.8.8"
- "tls://1.1.1.1"
fallback-filter:
geoip: true
geoip-code: CN
ipcidr:
- 240.0.0.0/4
更多 DNS 配置细节请参阅 DNS 防污染配置详解。
常见问题排查
问题1:开启 TUN 模式后所有网站都打不开
原因:通常是 DNS 配置错误导致域名无法解析。
解决:
- 关闭 TUN 模式,恢复系统代理模式,确认代理本身正常工作。
- 检查 DNS 配置中的
nameserver是否设置了可达的 DNS 服务器。 - 如果使用 fake-ip 模式,确认
fake-ip-range没有和真实网络冲突。
问题2:TUN 模式和 VPN 冲突
原因:如果你同时运行了其他 VPN 软件(如 WireGuard、OpenVPN),两个虚拟网卡会争夺路由优先级。
解决:关闭其他 VPN 软件后再开启 TUN 模式。如果需要同时使用,需要手动调整路由表优先级。
问题3:TUN 模式下部分局域网设备无法访问
原因:auto-route 可能将局域网流量也拦截了。
解决:在规则中添加局域网网段的直连规则:
rules:
- IP-CIDR,192.168.0.0/16,DIRECT
- IP-CIDR,10.0.0.0/8,DIRECT
- IP-CIDR,172.16.0.0/12,DIRECT
问题4:macOS 上提示「系统扩展被阻止」
解决:前往「系统设置 → 隐私与安全性」,找到被阻止的扩展并点击「允许」。然后重新开启 TUN 模式。
TUN 模式排障时,善用 日志面板(Verge Rev 的 Logs 页面)是关键。将日志级别设为
debug 可以看到详细的流量处理过程。更多节点连接问题可参考 节点连接排查指南。