什么是 TUN 模式?
在日常使用代理工具时,你可能遇到过这样的困惑:明明 Clash 已经开启并运行,浏览器访问境外网站一切正常,但打开终端执行 git clone、npm install 或 curl 时,却仍然超时或报连接错误。这是因为传统的"系统代理"模式只对支持 HTTP/HTTPS 代理协议的应用生效,而命令行工具、游戏客户端、部分 Electron 应用等往往直接发出 TCP/UDP 连接,绕过了系统代理设置。
TUN 模式(Tunnel 模式)的出现正是为了解决这一痛点。它在操作系统层面创建一块虚拟网卡(通常命名为 utun 或 Meta),将系统中所有出站流量引入 Clash 的规则引擎进行处理,从而实现真正意义上的"全局代理"。无论是命令行工具、游戏程序,还是系统服务发出的网络请求,都会被 TUN 虚拟网卡接管,按照你配置的分流规则决定是否走代理节点。
Clash Verge Rev 内置了 Meta(Mihomo)内核,原生支持高性能 TUN 模式,配置步骤相比早期工具大幅简化。本文将分别介绍在 Windows 与 macOS 下的完整开启流程。
TUN 模式 vs 系统代理:核心区别
在正式操作之前,先理清两种代理模式的本质差异,帮助你做出合适的选择:
| 对比项 | 系统代理(HTTP Proxy) | TUN 模式 |
|---|---|---|
| 生效范围 | 仅支持 HTTP/HTTPS 代理的应用 | 全系统所有出站流量 |
| 命令行工具 | 需手动配置环境变量 | 自动接管,无需额外设置 |
| UDP 流量 | 不支持 | 支持(游戏加速必备) |
| 权限要求 | 普通用户权限 | 需管理员/root 权限 |
| 系统兼容性 | 所有平台 | 需 Windows Service 或 macOS 授权 |
推荐策略:平时浏览网页使用系统代理即可,有命令行开发需求或需要游戏加速时,开启 TUN 模式效果最佳。两种模式可以随时切换,互不影响。
开始之前:确认前置条件
在开启 TUN 模式之前,请确保满足以下条件:
- 已下载并安装最新版 Clash Verge Rev(建议 v2.0.0 及以上版本)。尚未安装?可前往 客户端下载页 获取最新版本。
- 拥有可用的节点订阅链接,并已在 Clash Verge Rev 中成功导入("代理"页面可以看到节点列表)。
- 操作系统为 Windows 10/11 或 macOS 12 Monterey 及以上版本。
- 拥有本机管理员账户权限(TUN 虚拟网卡的创建需要系统级权限)。
Windows 开启 TUN 模式教程
Windows 下开启 TUN 模式需要两步:先安装 Service Mode(服务模式),再开启 TUN 模式。Service Mode 的作用是让 Clash Verge Rev 以 Windows 系统服务身份运行,从而获得创建虚拟网卡所必需的系统权限。
1安装 Service Mode(服务模式)
打开 Clash Verge Rev,点击左侧菜单中的「设置」。向下滚动找到「系统设置」区域,可以看到「服务模式」选项。
点击「服务模式」右侧的「安装」按钮。此时系统会弹出 UAC 权限确认窗口,点击「是」授权安装。安装成功后,状态指示灯会变为绿色,按钮文字也会切换为「已安装」。
若点击「安装」后弹出 UAC 窗口但最终报错,请确认当前登录账户有管理员权限,或右键 Clash Verge Rev 图标选择「以管理员身份运行」后再操作。
2开启 TUN 模式
Service Mode 安装完成后,在设置页面继续向下找到「TUN 模式」选项,将其开关切换为开启状态。
开启后,Clash Verge Rev 会自动在系统中创建一块名为 Meta 的虚拟网卡,并将全局出站流量路由至该网卡。你可以打开 Windows「网络连接」(Win + R → ncpa.cpl)确认是否出现了名为 Meta 的新适配器,出现则表示 TUN 模式已成功激活。
3调整 TUN 配置参数(可选)
默认参数适合绝大多数用户,如有需要可在设置页面展开「TUN 模式」的详细配置项,或直接编辑配置文件中的 tun 字段:
tun:
enable: true
stack: mixed # 推荐 mixed:TCP 走 gVisor,UDP 走 system
dns-hijack:
- "any:53" # 劫持所有 DNS 请求,防止泄漏
auto-route: true # 自动添加路由规则
auto-detect-interface: true # 自动检测出口网卡
关键参数说明:
- stack:网络栈实现方式。
mixed模式综合性能最佳,推荐使用;gvisor兼容性更好但性能略低;system延迟最低但部分场景下有兼容性问题。 - dns-hijack:DNS 请求劫持范围,填写
any:53可确保所有 DNS 请求都经过 Clash 处理,防止 DNS 泄漏。 - auto-route:开启后 Clash 自动管理路由表,无需手动添加路由规则。
修改配置文件后,在 Clash Verge Rev 的「配置」页面点击对应配置文件右侧的「重载」按钮使其生效,无需重启软件。
macOS 开启 TUN 模式教程
macOS 下的 TUN 模式配置相对简单,无需像 Windows 那样单独安装服务组件,但需要在首次开启时授予系统扩展权限。
1授予 Clash Verge Rev 管理员权限
首次运行 Clash Verge Rev 时,系统会请求管理员密码以安装必要的帮助程序(Helper Tool)。在弹出的密码输入框中输入 macOS 登录密码并确认即可。
若错过了这一步或曾经拒绝授权,可以在 Clash Verge Rev 的「设置 → 系统设置」中找到「服务模式」,点击「安装」后再次输入密码完成授权。
macOS Sequoia(15.x)及以上版本可能需要在「系统设置 → 通用 → 登录项与扩展」中手动允许 Clash Verge Rev 的网络扩展。若 TUN 模式开启失败,请先检查此处设置。
2开启 TUN 模式
权限授予完成后,回到 Clash Verge Rev 的「设置」页面,找到「TUN 模式」开关,将其切换为开启状态。
开启后,系统菜单栏会提示网络配置已更改,此时 Clash Verge Rev 已在 macOS 系统中创建 utun 虚拟网卡并接管全局流量。你可以打开「系统设置 → 网络」确认是否出现名为 utun 开头的新接口,出现即表示 TUN 模式运行正常。
3macOS 专属建议:开启增强模式
在 macOS 下,建议同时开启「增强模式」(位于「设置 → 代理设置」),该模式通过 pf 防火墙规则将网络流量强制路由至 TUN 虚拟网卡,适合处理少数系统进程绕过代理的场景,覆盖更彻底。
验证 TUN 模式是否生效
开启 TUN 模式后,可以通过以下几种方式验证它是否真正生效:
方法一:命令行验证(推荐)
打开终端(PowerShell / Terminal),执行以下命令:
# 测试 curl 是否走代理(返回境外 IP 则说明 TUN 生效)
curl -s https://ipinfo.io/ip
# 测试 git 是否能正常访问 GitHub
git ls-remote https://github.com/MetaCubeX/mihomo.git HEAD
若 curl 返回的 IP 地址与你的代理节点出口一致,说明 TUN 模式已成功接管命令行流量。
方法二:查看 Clash 连接日志
在 Clash Verge Rev 的「连接」页面,实时刷新连接列表。执行 git clone 或 npm install 时,若能在连接列表中看到对应域名(如 github.com、registry.npmjs.org)的条目,说明请求已被 TUN 模式捕获并路由至 Clash。
常见问题与排查
Q1:开启 TUN 后网速明显变慢
TUN 模式下所有流量都经过虚拟网卡处理,会引入额外的 CPU 开销。建议将 stack 由 gvisor 改为 mixed 或 system,并确保代理节点本身延迟正常。若 CPU 占用过高,可以检查是否有大量本地流量被误路由至代理(如 NAS、内网服务),在规则里添加对应的 DIRECT 规则排除即可。
Q2:Windows 下 TUN 模式开启后某些应用反而无法联网
部分安全软件(如 Windows Defender、杀毒软件)可能拦截 TUN 虚拟网卡的创建或流量。建议暂时将 Clash Verge Rev 及其安装目录加入安全软件的白名单,或在 Windows Defender 防火墙中允许 clash-verge-rev.exe 的入站和出站规则。
Q3:macOS 提示"网络扩展被阻止"
这是 macOS 安全机制(System Extension)的正常提示。打开「系统设置 → 通用 → 登录项与扩展 → 网络扩展」,找到 Clash Verge Rev 的条目并勾选允许,然后重启 Clash Verge Rev 即可。
Q4:TUN 模式开启后 DNS 解析异常
若开启 TUN 后出现域名无法解析的问题,请检查配置文件中 dns 部分是否启用:
dns:
enable: true
enhanced-mode: fake-ip # 或 redir-host
nameserver:
- 223.5.5.5
- 119.29.29.29
fallback:
- tls://8.8.8.8:853
- tls://1.1.1.1:853
同时确认 tun.dns-hijack 已设置为 any:53,避免系统原有 DNS 服务器的请求绕过 Clash 处理。如需深入了解 DNS 防泄漏配置,可参考 Meta 内核 DNS 防泄漏终极指南。
Q5:重启电脑后 TUN 模式没有自动开启
在 Clash Verge Rev 的「设置 → 通用」中,开启「开机自启动」选项,同时确认「服务模式」为已安装状态。这样每次开机后 Clash Verge Rev 会自动以服务身份启动,TUN 模式也会随之恢复。
进阶使用技巧
排除本地流量
开启 TUN 后,所有流量都会经过 Clash,包括访问局域网设备(NAS、路由器管理页面等)的请求。建议在规则配置中加入以下条目,将私有地址段直接放行:
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
- IP-CIDR,127.0.0.0/8,DIRECT
# ... 其他规则
UDP 转发与游戏加速
TUN 模式原生支持 UDP 流量接管,这是游戏加速场景的核心优势。确保你的代理节点支持 UDP 转发(Shadowsocks、Hysteria2、TUIC 等协议均支持),然后在对应的 Proxy Group 中开启 udp: true 即可享受低延迟的游戏代理体验,告别游戏登录或匹配时的超时问题。
小结
TUN 模式是 Clash Verge Rev 区别于普通代理工具最核心的特性之一。一旦配置妥当,你会发现此前各种"代理开了但不生效"的问题几乎销声匿迹——无论是 git、npm、pip 这样的命令行工具,还是游戏客户端、系统更新服务,都能按照规则精准分流,既保证了访问速度,也不会影响国内业务的直连体验。
相比其他同类工具繁琐的 TAP 驱动安装流程,Clash Verge Rev 内置的 Meta 内核将 TUN 模式的配置复杂度降到了最低,几乎做到了"开关一拨即用"的体验。如果你还没有体验过这种级别的全流量代理,不妨现在就试试——