Clash TUN 模式完整指南
TUN 模式能实现真正的全局代理。游戏客户端、命令行工具、UWP 应用,这些不读取系统代理设置的程序,只有通过 TUN 模式才能走代理。这篇文章从原理到实践,详细讲解 TUN 模式的工作方式、各平台配置方法、常见问题和故障排查。
TUN 模式是什么
TUN(网络隧道)是一种虚拟网卡技术。Clash 会在系统中创建一个虚拟网卡,然后把系统的所有网络流量都重定向到这个虚拟网卡,由 Clash 接管并根据规则处理。
简单说:TUN 模式 = 虚拟网卡 + 流量劫持
系统代理 vs TUN 模式
系统代理模式
工作原理:
在系统设置中配置一个代理服务器地址。应用程序需要主动读取这个设置,然后把流量发送到代理服务器。
优点:
- 配置简单
- 不需要管理员权限
- 对网络影响小
缺点:
- 只对遵守代理设置的应用有效
- 游戏、UWP 应用、命令行工具经常不走代理
- 某些应用会忽略系统代理
TUN 模式
工作原理:
创建虚拟网卡,劫持系统所有网络流量。不管应用是否读取代理设置,流量都会经过 Clash。
优点:
- 真正的全局代理
- 任何应用都能走代理
- 游戏加速必备
缺点:
- 需要管理员权限
- 配置复杂
- 出问题可能影响整个网络
什么时候需要 TUN 模式
以下场景必须用 TUN 模式:
- 游戏加速 - 绝大部分游戏不读取系统代理,必须用 TUN 模式
- 命令行工具 - git、npm、pip、curl 等有时不走系统代理
- UWP 应用 - Windows 应用商店的应用通常不遵守系统代理
- 特殊软件 - 某些应用明确不支持代理(如某些下载工具)
- 透明代理 - 想让所有设备的流量都走代理(路由器 Clash)
如果只是浏览网页、用常规软件,系统代理模式就够了,不需要开 TUN。
各平台 TUN 模式配置
Windows - Clash for Windows / Clash Verge
第一次使用 TUN 模式时,Clash 会提示安装 WinTUN 驱动。点击安装并授予管理员权限。
如果没有自动提示,到 Clash 安装目录找到 service 文件夹,运行 install-service.bat。
Clash for Windows:在"常规"或"General"设置中找到"TUN Mode"开关,打开它。
Clash Verge:在设置中找到"TUN 模式",打开开关。
在配置文件中添加 TUN 相关设置:
tun:
enable: true
stack: system
dns-hijack:
- any:53
auto-route: true
auto-detect-interface: true
打开命令行,ping 一个国外网站,或者打开一个游戏,看看能不能正常连接。
macOS - ClashX Pro
免费版 ClashX 不支持增强模式(TUN)。必须使用 ClashX Pro 版本。
下载地址:GitHub Releases
点击菜单栏的 ClashX Pro 图标,选择"增强模式"或"Enhanced Mode"。
首次开启会提示输入密码,授权安装系统扩展。
打开"系统设置" → "隐私与安全性" → "系统扩展",允许 ClashX Pro 的扩展。
可能需要重启电脑才能生效。
打开终端,运行 curl -I https://google.com,如果能访问说明增强模式生效了。
Android - Clash Meta
Android 的 Clash 本身就是通过 VPN API 实现的全局代理,效果和 TUN 模式一样。启动 Clash 时会提示"建立 VPN 连接",允许即可。
Linux
Linux 上配置 TUN 模式相对复杂,需要手动配置路由表和防火墙规则。
sudo modprobe tun
在配置文件中添加:
tun:
enable: true
stack: system
dns-hijack:
- any:53
auto-route: true
auto-detect-interface: true
sudo ./clash -d /path/to/config
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 - 使用系统协议栈,兼容性最好,推荐
- gvisor - 用户态协议栈,性能好但兼容性一般
- lwip - 轻量级协议栈,某些场景下性能更好
大部分情况用 system 就行,遇到兼容性问题再试试其他的。
dns-hijack
劫持 DNS 请求,防止 DNS 泄露。any:53 表示劫持所有发往 53 端口的请求。
auto-route
自动配置路由表,让系统流量自动走虚拟网卡。设为 true 就不用手动配置路由了。
常见问题和故障排查
解决步骤:
- 立即关闭 TUN 模式
- 重启 Clash
- 检查配置文件中的 TUN 配置是否正确
- 如果还是不行,重启网络适配器:网络连接 → 禁用 → 启用
- 实在不行,重启电脑
检查规则配置。可能是规则把该网站拒绝了,或者走了错误的代理节点。切换到"全局模式"测试,如果全局模式能访问,就是规则问题。
检查以下几点:
- TUN 模式是否真的开启了(看 Clash 界面有没有虚拟网卡图标)
- 规则是否把游戏服务器 IP 直连了(改成全局模式测试)
- 节点是否支持 UDP(很多游戏需要 UDP)
- 防火墙是否拦截了虚拟网卡
理论上 TUN 模式会增加一点延迟(通常 1-5ms),因为多了虚拟网卡这一层。但实际使用中几乎感觉不出来。如果明显变慢,可能是配置问题或者规则太复杂。
不建议。两种模式会冲突,可能导致流量被处理两次,或者某些流量走不通。选一种用就行,大部分情况系统代理够了,需要游戏加速再开 TUN。
性能优化建议
规则越多,每个数据包匹配的时间越长。使用规则集代替手动列举,用 GEOIP 代替大量域名规则。
如果
system 性能不够,试试 gvisor。但要注意兼容性,某些应用可能不工作。
如果不需要劫持 DNS,可以关掉
dns-hijack。减少不必要的处理能提升性能。
总结
TUN 模式是 Clash 的高级功能,能实现真正的全局代理。配置稍微复杂,但对游戏加速、特殊应用代理是必不可少的。
普通使用系统代理就够了,只有在需要代理特殊应用时才开 TUN。开启 TUN 后如果遇到问题,先关掉 TUN 再排查,避免影响正常上网。