什么是 TUN 模式?
TUN(Network TUNnel)模式是 ClashX 提供的增强代理模式,它通过创建虚拟网络接口(TUN 设备),在操作系统的网络层实现全局流量拦截和转发。
TUN 模式工作在网络层(Layer 3),可以捕获系统中所有应用的网络流量,无论该应用是否支持代理设置。这意味着你可以实现真正的"全局代理",包括命令行工具、后台服务、甚至是不支持系统代理的应用程序。
TUN 模式的主要优势
- 真正的全局代理:所有应用的网络流量都会被代理,无一遗漏
- 无需应用配置:不需要为每个应用单独配置代理设置
- 支持 UDP 流量:可以代理 UDP 协议,支持游戏、视频会议等场景
- 更好的 DNS 控制:可以完全控制 DNS 解析过程,防止 DNS 泄露
- 规则优先级更高:在网络层工作,规则匹配更精确
- 防止代理绕过:应用无法绕过代理直接连接
TUN 模式的工作原理
当 TUN 模式启动后,ClashX 会创建一个虚拟网络接口(通常命名为 utun),系统会将所有网络流量路由到这个虚拟接口。ClashX 接收到流量后,根据配置的规则决定是通过代理服务器转发,还是直接连接目标地址。
TUN 模式 vs 系统代理模式对比
了解 TUN 模式和传统系统代理模式的区别,有助于你选择最适合的代理方式。
| 对比项 | TUN 模式 | 系统代理模式 |
|---|---|---|
| 工作层级 | 网络层(Layer 3) | 应用层(Layer 7) |
| 覆盖范围 | 所有应用 | 仅支持代理的应用 |
| UDP 支持 | ✓ 完全支持 | ✗ 不支持 |
| DNS 控制 | 完全控制 | 部分控制 |
| 权限要求 | 需要管理员权限 | 无需特殊权限 |
| 性能影响 | 轻微影响(<5%) | 几乎无影响 |
| 配置复杂度 | 中等 | 简单 |
| 兼容性 | 完美(所有应用) | 有限(部分应用) |
推荐使用 TUN 模式的场景:需要代理所有应用、使用命令行工具、游戏加速、防止 DNS 泄露。
推荐使用系统代理的场景:仅需代理浏览器、追求最低性能开销、快速临时使用。
前置准备
在开启 TUN 模式之前,请确保满足以下条件:
系统要求
- macOS 版本:macOS 10.15 Catalina 及以上版本
- ClashX 版本:ClashX 1.90.0 及以上版本(建议使用最新版)
- 管理员权限:必须具有 macOS 管理员账户权限
- 系统完整性保护:无需关闭 SIP,TUN 模式可正常工作
硬件兼容性
在 Apple Silicon(M1/M2/M3)Mac 上,ClashX 的 TUN 模式已经过充分优化,性能表现优于 Intel 版本。ARM64 原生架构使得网络处理效率更高,功耗更低,是使用 TUN 模式的最佳平台。
准备工作清单
- ☑️ 确保 ClashX 已正常安装并能够使用系统代理模式
- ☑️ 准备好管理员账户密码(配置过程中需要授权)
- ☑️ 备份当前配置文件(避免配置出错导致无法恢复)
- ☑️ 关闭其他代理工具(避免端口冲突)
- ☑️ 确认订阅或配置文件正常可用
5步开启 TUN 模式
按照以下步骤,你可以在 10 分钟内成功开启并配置 ClashX 的 TUN 模式。
第1步:授予系统权限
TUN 模式需要创建虚拟网络接口,必须先授予 ClashX 相应的系统权限。
- 打开 系统偏好设置 → 安全性与隐私
- 点击左下角锁图标,输入管理员密码解锁
- 切换到 隐私 标签页
- 在左侧列表中找到 完全磁盘访问权限
- 点击 + 号,添加 ClashX 应用(通常在 /Applications 目录)
- 确保 ClashX 旁边的勾选框已选中
- 在 ClashX 菜单栏中,点击 配置 → 实验性功能 → 安装网络扩展
- 输入管理员密码,等待安装完成
首次安装网络扩展时,系统可能会弹出安全提示,请在系统偏好设置的 安全性与隐私 → 通用 中点击"允许"按钮。如果遇到权限问题,重启 Mac 后再次尝试。
第2步:编辑配置文件
在配置文件中添加 TUN 模式的配置项。
- 点击 ClashX 菜单栏图标 → 配置 → 打开配置文件夹
- 使用文本编辑器(如 TextEdit、VS Code)打开当前使用的配置文件
- 在配置文件的顶部(general 配置区域)添加以下内容:
# TUN 模式配置
tun:
enable: true
stack: system # 或 gvisor,system 性能更好
dns-hijack:
- any:53
auto-route: true # 自动配置路由表
auto-detect-interface: true # 自动检测出口网卡
stack 参数:建议使用 system,性能最佳。如遇兼容性问题可尝试 gvisor。
dns-hijack:劫持所有 DNS 请求到 Clash,防止 DNS 泄露。
auto-route:自动配置系统路由表,无需手动设置。
第3步:配置 DNS 设置
TUN 模式需要配置 DNS 以实现最佳性能和隐私保护。
在配置文件中添加或修改 DNS 配置(与 tun 配置同级):
dns:
enable: true
listen: 0.0.0.0:53
enhanced-mode: fake-ip # 或 redir-host,fake-ip 性能更好
fake-ip-range: 198.18.0.1/16
nameserver:
- 223.5.5.5 # 阿里 DNS
- 119.29.29.29 # 腾讯 DNS
- 114.114.114.114 # 114 DNS
fallback:
- https://1.1.1.1/dns-query # Cloudflare DoH
- https://dns.google/dns-query # Google DoH
fallback-filter:
geoip: true
ipcidr:
- 240.0.0.0/4
第4步:设置路由规则
配置代理规则,决定哪些流量走代理,哪些直连。
确保配置文件中包含基本规则(通常订阅配置已包含):
rules:
# 本地网络直连
- DOMAIN-SUFFIX,local,DIRECT
- IP-CIDR,192.168.0.0/16,DIRECT,no-resolve
- IP-CIDR,10.0.0.0/8,DIRECT,no-resolve
- IP-CIDR,172.16.0.0/12,DIRECT,no-resolve
- IP-CIDR,127.0.0.0/8,DIRECT,no-resolve
# 国内网站直连
- GEOIP,CN,DIRECT
# 其他流量走代理
- MATCH,PROXY
第5步:启用并验证
- 保存配置文件
- 在 ClashX 菜单中点击 配置 → 重载配置文件
- 点击 ClashX 菜单 → 设置为系统代理(取消勾选,TUN 模式下不需要)
- 点击 ClashX 菜单 → 增强模式 → TUN 模式(确保已勾选)
- 选择一个可用的代理节点
- 打开浏览器或任何应用测试网络连接
当 TUN 模式成功启动后,ClashX 的菜单栏图标旁会显示一个小圆点,且状态栏会显示"增强模式已启用"。此时所有应用的网络流量都会通过 ClashX 的代理规则处理。
DNS 配置优化
DNS 配置是 TUN 模式性能和隐私的关键。合理的 DNS 配置可以显著提升访问速度并防止 DNS 泄露。
Fake-IP vs Redir-Host
Fake-IP 模式(推荐)
- 工作原理:返回虚假 IP 地址(198.18.0.0/16 段),直接通过域名连接
- 优势:连接建立快,DNS 解析延迟低,规则匹配精确
- 劣势:部分应用可能不兼容(如 NAS 访问、本地服务)
- 适用场景:日常使用、游戏加速、流媒体访问
Redir-Host 模式
- 工作原理:返回真实 IP 地址,正常 DNS 解析流程
- 优势:兼容性好,适合所有应用场景
- 劣势:DNS 解析需要额外时间,连接速度稍慢
- 适用场景:需要访问本地服务、NAS、路由器管理界面
DNS 服务器选择
119.29.29.29
8.8.8.8
防止 DNS 泄露
确保配置文件中包含以下设置,防止 DNS 请求泄露到本地 ISP:
dns:
enable: true
listen: 0.0.0.0:53
enhanced-mode: fake-ip
fake-ip-filter: # 这些域名不使用 fake-ip
- '*.lan'
- 'localhost.ptlogin2.qq.com'
nameserver:
- 223.5.5.5
- 119.29.29.29
fallback:
- https://1.1.1.1/dns-query
- https://dns.google/dns-query
fallback-filter:
geoip: true # 国内 IP 使用 nameserver,国外 IP 使用 fallback
geoip-code: CN
规则配置建议
合理的规则配置可以优化网络性能,减少不必要的代理流量。
基础规则模板
rules:
# 屏蔽广告域名
- DOMAIN-KEYWORD,adservice,REJECT
- DOMAIN-SUFFIX,googlesyndication.com,REJECT
# 局域网直连
- DOMAIN-SUFFIX,local,DIRECT
- IP-CIDR,192.168.0.0/16,DIRECT,no-resolve
- IP-CIDR,10.0.0.0/8,DIRECT,no-resolve
- IP-CIDR,172.16.0.0/12,DIRECT,no-resolve
- IP-CIDR,127.0.0.0/8,DIRECT,no-resolve
# 常用国内网站直连
- DOMAIN-SUFFIX,cn,DIRECT
- DOMAIN-KEYWORD,baidu,DIRECT
- DOMAIN-KEYWORD,taobao,DIRECT
- DOMAIN-KEYWORD,jd,DIRECT
# 流媒体服务走代理
- DOMAIN-KEYWORD,youtube,PROXY
- DOMAIN-KEYWORD,netflix,PROXY
- DOMAIN-SUFFIX,twitter.com,PROXY
# 国内 IP 直连
- GEOIP,CN,DIRECT
# 其他流量走代理
- MATCH,PROXY
规则优先级
Clash 按照从上到下的顺序匹配规则,一旦匹配成功就不再继续。因此应该将:
1. REJECT 规则(广告拦截)放在最前面
2. 精确匹配(DOMAIN)放在前面
3. 模糊匹配(DOMAIN-KEYWORD)放在中间
4. IP 规则放在后面
5. MATCH(兜底规则)放在最后
规则集推荐
使用规则集可以简化配置,自动更新规则。推荐以下规则集:
- Loyalsoldier 规则集:涵盖常用网站分流规则
- ACL4SSR 规则集:精细化分流,适合高级用户
- DivineEngine 规则集:注重隐私和广告拦截
验证 TUN 模式是否生效
通过以下方法可以验证 TUN 模式是否成功启动并正常工作。
方法1:检查网络接口
打开终端(Terminal),执行以下命令:
ifconfig | grep utun
如果看到 utun 开头的网络接口(如 utun3、utun4),说明 TUN 设备已成功创建。
方法2:检查路由表
执行以下命令查看路由表:
netstat -nr | grep utun
如果看到路由条目指向 utun 接口,说明路由配置成功。
方法3:测试应用连接
测试不支持系统代理的应用(如命令行工具)是否能正常使用代理:
curl -I https://www.google.com
如果能够成功访问 Google,说明 TUN 模式正常工作。
方法4:检查 DNS 解析
验证 DNS 是否被正确劫持:
nslookup www.google.com
如果返回的 DNS 服务器是 127.0.0.1(本地),说明 DNS 劫持成功。
如果以上 4 个方法都验证成功,说明 TUN 模式已完美配置。现在你的 Mac 上所有应用的网络流量都会通过 ClashX 的代理规则进行处理,实现了真正的全局代理。
常见问题排查
在使用 TUN 模式过程中可能遇到的问题及解决方法。
问题1:TUN 模式无法开启
点击"增强模式"→"TUN 模式"后,菜单项无法勾选,或勾选后立即取消。
解决方法- 检查是否已安装网络扩展:ClashX 菜单 → 配置 → 实验性功能 → 安装网络扩展
- 授予完全磁盘访问权限:系统偏好设置 → 安全性与隐私 → 隐私 → 完全磁盘访问权限
- 检查系统偏好设置 → 安全性与隐私 → 通用,是否有需要"允许"的提示
- 重启 ClashX 或重启 Mac
问题2:开启后无法上网
TUN 模式已开启,但所有网络连接都无法使用。
解决方法- 检查代理节点是否可用:切换到其他节点测试
- 检查 DNS 配置是否正确:确保
dns.enable: true - 检查规则配置:确保有
MATCH兜底规则 - 尝试关闭 TUN 模式,使用系统代理模式测试节点是否正常
问题3:部分应用无法连接
大部分应用正常,但某些应用(如 NAS 访问、本地服务)无法连接。
解决方法- 将局域网 IP 段添加到直连规则:
IP-CIDR,192.168.0.0/16,DIRECT - 如果使用 fake-ip 模式,将本地域名添加到 fake-ip-filter
- 尝试切换到 redir-host 模式:
enhanced-mode: redir-host
问题4:网络速度变慢
开启 TUN 模式后,网络速度明显下降。
解决方法- 使用
stack: system而非gvisor,性能更好 - 使用
fake-ip模式代替redir-host - 优化规则配置,将国内网站和 IP 设为直连
- 检查代理节点质量,切换到延迟更低的节点
问题5:权限错误提示
弹出"权限不足"或"需要管理员权限"的错误提示。
解决方法- 打开终端,执行:
sudo chown root:admin /Applications/ClashX.app/Contents/Library/LaunchServices/ClashX.HelperTool - 执行:
sudo chmod +s /Applications/ClashX.app/Contents/Library/LaunchServices/ClashX.HelperTool - 重新安装网络扩展:ClashX 菜单 → 配置 → 实验性功能 → 安装网络扩展
- 重启 Mac 后再次尝试
性能优化技巧
通过以下优化技巧,可以进一步提升 TUN 模式的性能表现。
1. 选择最佳协议栈
推荐配置:stack: system
- system 栈:使用系统原生网络栈,性能最佳,延迟最低
- gvisor 栈:Go 语言实现的用户态网络栈,兼容性更好但性能稍低
- 在 Apple Silicon Mac 上,system 栈优势更明显
2. 优化 DNS 配置
- 使用
fake-ip模式,避免 DNS 解析延迟 - 使用距离最近的 DNS 服务器(国内用阿里/腾讯,海外用 Cloudflare)
- 启用 DoH(DNS over HTTPS)提升安全性和抗干扰能力
- 合理配置
fake-ip-filter,排除本地服务域名
3. 精简代理规则
- 将高频访问的域名放在规则列表前面,加快匹配速度
- 使用
GEOIP,CN,DIRECT让国内流量直连,减少代理负载 - 避免过多的
DOMAIN-KEYWORD规则,影响匹配效率 - 定期清理不再使用的规则
4. 选择优质节点
- 使用延迟测试功能,选择延迟最低的节点
- 优先选择支持 XTLS 或 Reality 协议的节点,性能更好
- 避免使用过于拥挤的公共节点
- 启用自动选择最快节点功能(如果订阅支持)
5. 系统级优化
- 关闭不必要的 VPN 或其他代理工具,避免冲突
- 确保 macOS 系统版本是最新的,获得最佳兼容性
- 定期重启 ClashX,清理缓存和连接
- 在 Apple Silicon Mac 上,确保使用 ARM64 原生版本
在 MacBook Pro M2 上,经过优化的 TUN 模式配置:
• 网络延迟增加:5-8ms
• 速度损失:<3%
• 内存占用:60-80MB
• CPU 占用:<2%(空闲时)
常见问题 FAQ
Q1: TUN 模式和增强模式是一回事吗?
是的。在 ClashX 中,"增强模式"就是指 TUN 模式。菜单中显示为"增强模式",配置文件中使用 tun 字段。
Q2: 开启 TUN 模式后还需要开启系统代理吗?
不需要。TUN 模式在网络层工作,无需配置系统代理。实际上,同时开启系统代理和 TUN 模式可能导致冲突。建议关闭系统代理,仅使用 TUN 模式。
Q3: TUN 模式能代理 Docker 容器的流量吗?
可以。TUN 模式工作在网络层,可以代理包括 Docker 容器在内的所有网络流量。但需要确保 Docker 的网络配置正确,避免与 TUN 设备的 IP 段冲突。
Q4: 使用 TUN 模式会被检测到吗?
TUN 模式本身不会增加被检测的风险。流量特征主要取决于你使用的代理协议(如 Shadowsocks、VMess、Trojan)。TUN 模式只是改变了流量捕获方式,不影响流量加密和伪装。
Q5: 可以在多台 Mac 上使用相同的 TUN 配置吗?
可以。TUN 模式的配置文件可以在多台 Mac 上通用。但需要注意,每台 Mac 都需要单独授予权限和安装网络扩展。配置文件可以直接复制使用。
Q6: TUN 模式支持 IPv6 吗?
支持。ClashX 的 TUN 模式支持 IPv6 流量。如果你的网络环境和代理节点支持 IPv6,TUN 模式会自动处理 IPv6 连接。可以在配置中添加 ipv6: true 启用。
Q7: 为什么有时候 TUN 模式会自动关闭?
可能原因:1) 配置文件重载时出错;2) 网络扩展崩溃;3) 系统权限变化。解决方法:检查配置文件语法是否正确,重新授予权限,或重启 ClashX。
Q8: TUN 模式和 Surge 的增强模式有什么区别?
工作原理相同,都是在网络层创建虚拟网络接口。主要区别在于实现细节和配置选项。Surge 的增强模式功能更丰富(如 MITM),但 ClashX 的 TUN 模式完全免费且开源。
如果你在使用 TUN 模式时遇到本文未涵盖的问题,可以:
• 访问 ClashX GitHub 查看 Issues
• 查阅 ClashX 常见问题 页面
• 参考 完整使用教程