在使用Clash代理时,很多用户会遇到一个问题:某些应用程序不遵循系统代理设置,导致这些应用的流量无法通过Clash转发。TUN模式就是为解决这个问题而设计的。通过创建虚拟网卡,TUN模式可以接管系统的所有网络流量,实现真正的全局代理。
一、什么是TUN模式?
TUN模式是Clash提供的一种高级代理方式。它通过在操作系统中创建一张虚拟网络接口(TUN设备),将所有网络流量重定向到Clash进行处理。与系统代理模式不同,TUN模式工作在网络层(Layer 3),可以捕获所有TCP和UDP流量,包括那些不支持HTTP/SOCKS代理的应用程序。
系统代理模式仅在应用层工作,只有配置了使用系统代理的应用才会将流量发送到Clash。而TUN模式在网络层拦截所有流量,无论应用程序是否支持代理设置,其网络通信都会被Clash接管。这就是TUN模式被称为"真正的全局代理"的原因。
二、TUN模式 vs 系统代理模式
理解TUN模式和系统代理模式的区别,有助于选择适合的代理方式:
系统代理模式
- 工作层级:应用层(HTTP/SOCKS代理)
- 覆盖范围:仅支持系统代理设置的应用程序
- 配置难度:简单,无需特殊权限
- 性能影响:较小,仅处理代理应用的流量
- 局限性:UWP应用、游戏、部分桌面应用不走代理
TUN模式
- 工作层级:网络层(虚拟网卡)
- 覆盖范围:系统所有网络流量
- 配置难度:需要管理员/root权限
- 性能影响:稍大,处理所有流量
- 优势:所有应用都走代理,包括游戏和UWP应用
三、启用TUN模式的前提条件
在启用TUN模式之前,需要确保满足以下条件:
- 管理员权限:TUN模式需要创建虚拟网卡,这要求Clash以管理员权限运行。Windows上需要右键"以管理员身份运行",macOS/Linux上需要sudo权限。
- 关闭冲突服务:如果系统中已有其他VPN或代理服务在使用虚拟网卡,需要先关闭它们,避免冲突。
- 系统代理关闭:启用TUN模式时建议关闭系统代理,避免双重代理导致的问题。
- DNS配置正确:TUN模式下Clash接管所有流量,DNS配置需要正确设置以避免解析问题。
四、各平台启用TUN模式
Clash for Windows
在Clash for Windows中启用TUN模式非常简单:进入General设置页面,找到TUN Mode开关并打开。首次启用时,软件会提示需要安装虚拟网卡驱动(WinTUN),按照提示完成安装即可。安装完成后重启Clash,TUN模式即可正常工作。
Clash Verge
Clash Verge内置了TUN模式支持。在设置页面中找到TUN Mode选项,开启后软件会自动配置虚拟网卡。Clash Verge使用gvisor或system栈实现TUN功能,无需额外安装驱动。建议在TUN设置中选择 stack: mixed 以获得最佳兼容性。
ClashX Pro (macOS)
ClashX Pro的TUN模式需要安装额外的网络扩展组件。在菜单栏点击ClashX Pro图标,选择"帮助" → "安装TUN模式辅助组件",按照提示完成安装。安装后在菜单中勾选"开启增强模式"即可启用TUN。
Linux命令行版
Linux上使用TUN模式需要在配置文件中设置 tun.enable: true,并确保运行Clash的用户有权限创建TUN设备(通常需要root权限或CAP_NET_ADMIN能力)。
五、TUN模式配置参数
TUN模式有多个可配置参数,合理调整可以优化性能和兼容性:
stack:TUN实现方式,可选system(系统原生)、gvisor(Go实现)、mixed(混合模式)。推荐mixed模式,兼顾性能和兼容性。dns-hijack:DNS劫持设置,建议添加any:53劫持所有DNS请求到Clash处理。auto-route:自动配置路由表,设为true让Clash自动添加路由规则。auto-detect-interface:自动检测出口网卡,避免路由环路。
推荐配置:TUN模式下建议使用 stack: mixed,auto-route: true,dns-hijack: [any:53],配合fake-ip DNS模式使用效果最佳。
六、常见问题排查
TUN模式无法启用
最常见的原因是权限不足。确保Clash以管理员/root权限运行。Windows上检查WinTUN驱动是否正确安装,macOS上检查网络扩展权限是否已授予。
启用TUN后无法上网
可能是路由配置问题。检查 auto-route 是否设置为true,确认没有与其他VPN冲突。尝试重启Clash和网络适配器。如果使用了自定义路由规则,检查规则是否正确。
TUN模式下某些应用仍然不走代理
极少数应用可能使用了特殊的网络API绕过了TUN设备。这种情况下可以尝试使用PROCESS-NAME规则强制指定该应用走代理。另外确认DNS配置正确,某些应用可能因为DNS问题导致连接失败。
七、性能优化建议
TUN模式处理所有网络流量,对性能有一定影响。以下建议可以帮助优化性能:
- 使用
mixed或gvisor栈实现,通常比system栈性能更好 - 合理配置分流规则,国内流量直连减少不必要的代理转发
- 启用fake-ip DNS模式减少DNS处理开销
- 在低性能设备上,可以考虑仅对特定应用使用TUN而非全局TUN
总结
TUN模式是Clash实现全局代理的终极方案,可以确保所有网络流量都经过Clash处理。虽然配置相对复杂且需要管理员权限,但其带来的全面覆盖能力是系统代理模式无法比拟的。对于需要代理所有应用流量的用户,TUN模式是必选功能。正确配置TUN模式后,您将享受到真正无缝的代理体验。