Clash TUN 模式完整指南

TUN 模式能实现真正的全局代理。游戏客户端、命令行工具、UWP 应用,这些不读取系统代理设置的程序,只有通过 TUN 模式才能走代理。这篇文章从原理到实践,详细讲解 TUN 模式的工作方式、各平台配置方法、常见问题和故障排查。

TUN 模式是什么

TUN(网络隧道)是一种虚拟网卡技术。Clash 会在系统中创建一个虚拟网卡,然后把系统的所有网络流量都重定向到这个虚拟网卡,由 Clash 接管并根据规则处理。

简单说:TUN 模式 = 虚拟网卡 + 流量劫持

系统代理 vs TUN 模式

系统代理模式

工作原理:

在系统设置中配置一个代理服务器地址。应用程序需要主动读取这个设置,然后把流量发送到代理服务器。

优点:

  • 配置简单
  • 不需要管理员权限
  • 对网络影响小

缺点:

  • 只对遵守代理设置的应用有效
  • 游戏、UWP 应用、命令行工具经常不走代理
  • 某些应用会忽略系统代理

TUN 模式

工作原理:

创建虚拟网卡,劫持系统所有网络流量。不管应用是否读取代理设置,流量都会经过 Clash。

优点:

  • 真正的全局代理
  • 任何应用都能走代理
  • 游戏加速必备

缺点:

  • 需要管理员权限
  • 配置复杂
  • 出问题可能影响整个网络

什么时候需要 TUN 模式

以下场景必须用 TUN 模式:

如果只是浏览网页、用常规软件,系统代理模式就够了,不需要开 TUN。

各平台 TUN 模式配置

Windows - Clash for Windows / Clash Verge

安装虚拟网卡驱动

第一次使用 TUN 模式时,Clash 会提示安装 WinTUN 驱动。点击安装并授予管理员权限。

如果没有自动提示,到 Clash 安装目录找到 service 文件夹,运行 install-service.bat。

开启 TUN 模式

Clash for Windows:在"常规"或"General"设置中找到"TUN Mode"开关,打开它。

Clash Verge:在设置中找到"TUN 模式",打开开关。

配置 TUN 参数(可选)

在配置文件中添加 TUN 相关设置:

tun:
  enable: true
  stack: system
  dns-hijack:
    - any:53
  auto-route: true
  auto-detect-interface: true
测试

打开命令行,ping 一个国外网站,或者打开一个游戏,看看能不能正常连接。

注意:Windows 开启 TUN 模式后,如果网络断了,立即关闭 TUN 模式。可能是虚拟网卡配置冲突,或者规则有问题。

macOS - ClashX Pro

确认使用 ClashX Pro

免费版 ClashX 不支持增强模式(TUN)。必须使用 ClashX Pro 版本。

下载地址:GitHub Releases

开启增强模式

点击菜单栏的 ClashX Pro 图标,选择"增强模式"或"Enhanced Mode"。

首次开启会提示输入密码,授权安装系统扩展。

授权系统扩展

打开"系统设置" → "隐私与安全性" → "系统扩展",允许 ClashX Pro 的扩展。

可能需要重启电脑才能生效。

测试

打开终端,运行 curl -I https://google.com,如果能访问说明增强模式生效了。

提示:macOS 的增强模式比较稳定,开启后基本不会影响正常使用。如果遇到问题,关闭增强模式再重新开启通常就能解决。

Android - Clash Meta

Android 的 Clash 本身就是通过 VPN API 实现的全局代理,效果和 TUN 模式一样。启动 Clash 时会提示"建立 VPN 连接",允许即可。

注意:Android 上不需要额外开启 TUN 模式,默认就是全局代理。但要注意某些国产手机(小米、华汉、OPPO)会后台限制 VPN 应用,需要在电池优化和权限管理中给 Clash 开白名单。

Linux

Linux 上配置 TUN 模式相对复杂,需要手动配置路由表和防火墙规则。

启用 TUN 模块
sudo modprobe tun
配置 Clash

在配置文件中添加:

tun:
  enable: true
  stack: system
  dns-hijack:
    - any:53
  auto-route: true
  auto-detect-interface: true
以 root 权限运行 Clash
sudo ./clash -d /path/to/config
注意:Linux 上的 TUN 模式需要 root 权限。建议用 systemd 服务管理 Clash,避免每次手动运行。

TUN 模式配置详解

TUN 模式的核心配置项:

tun:
  enable: true              # 启用 TUN 模式
  stack: system             # 协议栈:system, gvisor, lwip
  dns-hijack:               # DNS 劫持
    - any:53                # 劫持所有 53 端口的 DNS 请求
  auto-route: true          # 自动配置路由表
  auto-detect-interface: true # 自动检测出口网卡

stack 选项

大部分情况用 system 就行,遇到兼容性问题再试试其他的。

dns-hijack

劫持 DNS 请求,防止 DNS 泄露。any:53 表示劫持所有发往 53 端口的请求。

auto-route

自动配置路由表,让系统流量自动走虚拟网卡。设为 true 就不用手动配置路由了。

常见问题和故障排查

Q: 开启 TUN 模式后网络断了怎么办?

解决步骤:
  • 立即关闭 TUN 模式
  • 重启 Clash
  • 检查配置文件中的 TUN 配置是否正确
  • 如果还是不行,重启网络适配器:网络连接 → 禁用 → 启用
  • 实在不行,重启电脑
Q: TUN 模式下某些网站打不开?

检查规则配置。可能是规则把该网站拒绝了,或者走了错误的代理节点。切换到"全局模式"测试,如果全局模式能访问,就是规则问题。
Q: 游戏还是连不上?

检查以下几点:
  • TUN 模式是否真的开启了(看 Clash 界面有没有虚拟网卡图标)
  • 规则是否把游戏服务器 IP 直连了(改成全局模式测试)
  • 节点是否支持 UDP(很多游戏需要 UDP)
  • 防火墙是否拦截了虚拟网卡
Q: TUN 模式比系统代理慢吗?

理论上 TUN 模式会增加一点延迟(通常 1-5ms),因为多了虚拟网卡这一层。但实际使用中几乎感觉不出来。如果明显变慢,可能是配置问题或者规则太复杂。
Q: 可以同时用系统代理和 TUN 模式吗?

不建议。两种模式会冲突,可能导致流量被处理两次,或者某些流量走不通。选一种用就行,大部分情况系统代理够了,需要游戏加速再开 TUN。

性能优化建议

1. 精简规则
规则越多,每个数据包匹配的时间越长。使用规则集代替手动列举,用 GEOIP 代替大量域名规则。
2. 选择合适的 stack
如果 system 性能不够,试试 gvisor。但要注意兼容性,某些应用可能不工作。
3. 关闭不需要的功能
如果不需要劫持 DNS,可以关掉 dns-hijack。减少不必要的处理能提升性能。

总结

TUN 模式是 Clash 的高级功能,能实现真正的全局代理。配置稍微复杂,但对游戏加速、特殊应用代理是必不可少的。

普通使用系统代理就够了,只有在需要代理特殊应用时才开 TUN。开启 TUN 后如果遇到问题,先关掉 TUN 再排查,避免影响正常上网。