Clash Verge Rev 开启 TUN 模式完整教程(Windows / macOS / Linux 2026)
系统代理只能覆盖浏览器和少数读取系统代理设置的应用。游戏、命令行工具、Steam、Epic、Microsoft Store 不走系统代理,必须开 TUN 模式。本文分平台给出 Service Mode 安装、权限授权和断网排查步骤,附路由表和 DNS 检查命令。
系统代理只能覆盖浏览器和少数主动读取系统代理设置的应用。游戏(Steam、Epic、Battle.net)、命令行工具(git、npm、pip、curl、wget)、Microsoft Store、WSL2 里的 Linux 发行版——这些都不走系统代理,开了代理开关跟没开一样。TUN 模式的工作原理是创建一张虚拟网卡,把系统所有网络流量先导向这张虚拟网卡,再由 Mihomo 内核判断每个连接走代理还是直连,最后发出。
如果你已经能在浏览器里正常访问 Google,但打开 Steam 商店一片空白、命令行 curl 卡住不动——你需要的就是 TUN 模式。全程大约 8 分钟。
系统代理和 TUN 模式到底差在哪
系统代理只工作在应用层。Clash Verge Rev 打开系统代理开关后,实际做的是修改操作系统的代理设置(Windows 写入注册表,macOS 写入网络配置),告诉”愿意看系统代理设置”的应用:HTTP 代理在 127.0.0.1:7890,HTTPS 代理同理。浏览器、部分 IDE(VS Code、JetBrains)会读取这些设置并走代理。其余应用完全不在这个体系里。
TUN 模式工作在网络层(第三层)。它创建一张虚拟网卡(TUN 接口),通过修改系统路由表把所有出站流量导向这张虚拟网卡。Mihomo 内核在虚拟网卡的另一端接收原始 IP 数据包,匹配分流规则后决定代理或直连。不管应用本身支不支持代理,它的网络请求都会经过 TUN。
| 对比项 | 系统代理 | TUN 模式 |
|---|---|---|
| 工作层级 | 应用层(HTTP/HTTPS) | 网络层(所有 TCP/UDP/ICMP) |
| 覆盖范围 | 浏览器、部分 IDE | 系统内所有应用的网络流量 |
| UDP 支持 | 不支持 | 完整支持 |
| 游戏兼容 | 基本不走 | 全部接管 |
| 命令行工具 | 大部分不走 | 全部接管 |
| 权限要求 | 不需要提权 | 需要管理员 / root |
| 性能开销 | 极低 | 略高(虚拟网卡转发) |
开 TUN 之前先确认三样东西
不是你装好 Clash Verge Rev 就能直接开 TUN,三样东西缺一个都会卡在半路。
订阅配置已激活且节点可用。 打开 Proxies 页面,能看到按策略组分组的节点列表,至少有一个节点测速不是 timeout。TUN 不能帮你造节点出来。
系统代理模式下浏览器能正常访问海外网站。 如果系统代理都不通,TUN 开了大概率也是断网。TUN 是基于现有代理配置的”流量接管”,不是独立的新代理方式。
你有管理员权限。 Windows 需要能安装系统服务的权限(右键”以管理员身份运行”),macOS 需要知道登录密码,Linux 需要 sudo。没有提权手段就开不了 TUN。
Windows:装 Service Mode 再开 TUN
Clash Verge Rev 在 Windows 上通过 Service Mode 让后台服务以 SYSTEM 权限运行,GUI 界面仍以普通用户运行。不装 Service Mode 直接开 TUN,开关是灰色的,点不动。
操作路径:Settings → System Service → 点 Install 按钮。等待进度条跑完,上方的 Running Mode 从 Sidecar 变成 Service。这一步的实质是注册一个 Windows 系统服务 clash-verge-service,并安装 Wintun 虚拟网卡驱动。
常见卡点:
- 点 Install 没反应。 先右键 Clash Verge Rev 快捷方式 → 以管理员身份运行,再进 Settings 点 Install。
- 报错 service already exists。 之前装过旧版,用管理员终端跑
sc delete clash-verge-service清理遗留服务,再重新 Install。 - Wintun.dll 被 Windows Defender 隔离。 打开 Windows 安全中心 → 保护历史 → 找到被隔离的条目 → 还原。然后把 Clash Verge Rev 安装目录加到排除项。
Service Mode 装好后,在 Settings → TUN Mode 设置里确认:TUN Stack 选 gvisor(Windows 下 system 栈与 Hyper-V、WSL2 有兼容问题),Auto Route 开,Strict Route 关。回到 Overview 打开 TUN 开关。
验证命令:打开 cmd 运行 ipconfig,输出中应出现一个名为 Mihomo 的适配器。运行 route print,应能看到目的网络为 0.0.0.0 或某些网段的路由指向 Mihomo 接口。
macOS:隐私与安全性那关怎么过
macOS 的 TUN 流程比 Windows 多一步系统安全授权。
操作路径:Settings → System Service → Install。macOS 会连续弹出两个窗口——先是要求输入登录密码的对话框,输入后等安装完成;然后是”系统扩展已被阻止”的系统提示,要求到隐私与安全性设置中允许。
打开系统设置 → 隐私与安全性,页面底部会看到一行提示:“来自开发者 Clash Verge Rev 的系统软件已被阻止载入”,旁边有一个 Allow 或 允许 按钮。点击后可能要求再次输入密码或重启。授权完成后回到 Clash Verge Rev 的 Settings 页面,Running Mode 显示为 Service。
TUN Stack 选 gvisor(macOS 下三个栈都能用,gvisor 最稳),Auto Route 开,Strict Route 关。回到 Overview 打开 TUN。如果开关点不动,说明系统扩展授权没完成——再去隐私与安全性页面确认。
验证命令:终端运行 ifconfig | grep utun,能看到新增的 utun 接口。运行 netstat -rn | grep utun,检查路由表中是否有指向 utun 的路由条目。
Linux:权限不够时两条路
Linux 下有两种方式获取 TUN 权限。
方式一(推荐):安装 Service Mode。 终端运行 sudo clash-verge-service-install。如果是 AppImage 安装的,找到解压后目录中的 clash-verge-service 脚本。装完后 Clash Verge Rev 的 Running Mode 显示为 Service。
方式二:给内核二进制文件加 Linux capabilities。 如果你不想装 Service Mode,直接给 Mihomo 内核可执行文件提权:
sudo setcap cap_net_admin=+ep $(which mihomo)
这条命令只给 Mihomo 内核添加创建虚拟网卡的能力(cap_net_admin),不需要整个应用跑在 root 下。检查是否生效用 getcap $(which mihomo),输出应包含 cap_net_admin=ep。
装完权限后,确认系统已加载 TUN 内核模块:ls /dev/net/tun。如果文件不存在,运行 sudo modprobe tun。然后回到 Clash Verge Rev,Stack 选 gvisor,打开 TUN 开关。
验证命令:ip addr show | grep tun 看虚拟网卡是否出现,ip route show table all | grep tun 看路由表。
开了 TUN 为什么整体网络都断了
这是开启 TUN 后最常见的故障,DNS 和路由两大原因占 95%。
DNS 劫持范围太宽。 TUN 模式默认劫持所有发往 53 端口的 DNS 查询(any:53),把它转给 Mihomo 内部 DNS 处理。如果 Mihomo 的 DNS 上游走的是代理,国内网站的 DNS 解析结果就变成海外 CDN 节点,Ping 延迟从 20ms 飙到 300ms。解决办法:确认分流规则里 GEOIP 或域名关键词规则把国内流量标为 DIRECT。
Strict Route 开了。 TUN Mode 设置里的 Strict Route 默认是关的,它一旦打开,任何不匹配代理规则的流量都会被丢弃——局域网打印机、NAS、路由器的管理页面全部不可达。关掉它就行。
MTU 值太大导致分片。 默认 MTU 通常没问题,但部分路由器或 PPPoE 拨号网络需要更小的 MTU。在 TUN 设置里把 MTU 改成 1400 或 1300,看问题是否消失。Windows 下可以用 ping -f -l 1372 <网关IP> 测试实际路径的 MTU。
防火墙拦截了虚拟网卡。 Windows 防火墙可能把 Mihomo 虚拟网卡当成”公用网络”并阻止入站连接。控制面板 → Windows Defender 防火墙 → 允许应用通过防火墙 → 确认 Clash Verge Rev 在列表里且勾选了公用和专用网络。
| 故障表现 | 最可能原因 | 先试什么 |
|---|---|---|
| 所有网站都打不开 | Strict Route 开启,或节点挂了 | 关 Strict Route;切一个已知可用的节点 |
| 国内网站能开,国外全断 | 代理链路失效,但直连规则正常 | Proxies 页面点节点测速,确认节点可达;检查订阅是否过期 |
| 国外网站能开,国内全断或极慢 | DNS 劫持导致国内 CDN 解析到海外 | 确认分流规则有 GEOIP,CN,DIRECT;关掉浏览器的 DNS over HTTPS |
| 网页能开但游戏/语音不通 | UDP 未代理或 TUN stack 不支持 | TUN Stack 选 mixed(TCP gVisor + UDP system) |
| 间歇性断网后又恢复 | 多个代理客户端端口冲突 | 关掉其他 VPN 或代理软件,只留 Clash Verge Rev |
Windows 下用 tracert -d 8.8.8.8 追踪路由路径,看第一跳是不是走了 Mihomo 虚拟网卡。macOS/Linux 用 traceroute -n 8.8.8.8。
Steam 还是不走代理,TUN 是不是没生效
如果浏览器和 curl 都走代理了,但某个应用死活不走,问题不在 TUN 是否开启,而在路由规则。
打开 Clash Verge Rev 的 Logs 页面,日志级别调到 debug(Settings → Log Level → debug)。触发一次那个应用的网络请求。在日志中搜索目标域名或 IP 地址——如果能找到记录,看右侧的 Matched 字段。
- Matched 显示 DIRECT。 分流规则把这个流量判为直连。需要在 Rules 配置或 Rule Provider 里加一条 DOMAIN-SUFFIX 或 IP-CIDR 规则,把目标地址拉进代理策略组。
- Matched 显示 PROXY 或某代理组名。 流量走了代理但在代理链路上卡住了——可能是节点不支持这个协议(如 UDP),或者节点的端口策略拦截了特定流量。
- 日志里完全搜不到这个应用的请求。 流量根本没进 TUN。回去检查 Service Mode 状态和 TUN Stack 选择。部分应用(如容器、虚拟机)有独立的网络命名空间,TUN 捕获不到——这超出了 Clash Verge Rev 的能力范围。
有一个容易被忽略的细节:应用启动时就已建立的 TCP 连接不会被 TUN 接管。想让 TUN 生效,需要先开 TUN 再打开那个应用。已经在后台运行的 Steam、Epic 等客户端,先完全退出(包括系统托盘图标),再重新启动。
TUN 模式对节点稳定性要求比系统代理更高——UDP 流量在游戏和实时通信中没有多少重试空间,丢包和高延迟直接体现为卡顿。如果订阅在系统代理模式下就频繁出现节点 timeout,开了 TUN 只会让断连更频繁。需要一份节点长期维护且 UDP 转发稳定的订阅,可以看看 兼容 Clash / Singbox / V2Ray 的订阅。
相关阅读
来源与时间
本文最后查看时间:2026-05-29。操作路径会随客户端版本变化,遇到按钮名称不一致时,优先按同义菜单和官方文档查看。