Clash Verge Rev 开启 TUN 模式完整教程(Windows / macOS / Linux 2026)
系统代理只能覆盖浏览器和少数读取系统代理设置的应用。游戏、命令行工具、Steam、Epic、Microsoft Store 不走系统代理,必须开 TUN 模式。本文分平台给出 Service Mode 安装、权限授权和断网排查步骤,附路由表和 DNS 检查命令。
操作步骤速查
确认系统代理已跑通
在开 TUN 之前先确认系统代理模式下一切正常。打开 Clash Verge Rev → Overview 页面,确认系统代理开关为绿色。浏览器访问 https://api.ipify.org,显示的 IP 应该与代理节点出口 IP 一致,和本地宽带 IP 不同。这一步排除了订阅、节点、端口等基础问题——TUN 的复杂问题通常是这些基础配置的放大,不是新问题。
预期结果:浏览器中 api.ipify.org 返回节点出口 IP,系统代理开关为绿色,Mix Port(默认 7890)没有被其他程序占用。
如果系统代理都不通,先别开 TUN。回去检查订阅导入和节点可用性。TUN 不能补救一个本就不通的代理配置。
安装 Service Mode(获取虚拟网卡权限)
TUN 模式需要在系统中创建虚拟网卡,这是操作系统级别的操作,需要管理员权限。Clash Verge Rev 通过 Service Mode 让后台服务以特权运行,GUI 仍以普通用户运行。Windows:点 Settings → System Service → 点 Install 按钮,等待进度条完成,Running Mode 从 Sidecar 变为 Service。macOS:同样路径点 Install,macOS 弹窗要求输入登录密码,输入后等待 Completion 字样出现。Linux:终端运行 sudo clash-verge-service-install,或对 Mihomo 内核二进制执行 sudo setcap cap_net_admin=+ep $(which mihomo)。
预期结果:Settings 页面的 Running Mode 显示为 Service,TUN Mode 开关从灰色(不可点击)变为可点击状态。Windows 在任务管理器的「服务」标签中能看到 Clash Verge Service 状态为「正在运行」。macOS 在终端运行 ps aux | grep clash-verge-service 能看到服务进程。
Windows 用户如果点 Install 没反应,先右键 Clash Verge Rev 快捷方式 → 以管理员身份运行,再去安装服务。部分杀毒软件会拦截 Wintun 驱动(wintun.dll),如果安装失败检查 Windows 安全中心的保护历史,恢复被隔离的 wintun.dll 并添加排除项。
选择 TUN Stack 并开启 TUN 模式
Service Mode 装好后,进入 Settings → TUN Mode 设置。TUN Stack 下拉有三个选项:gvisor(Google 用户态网络栈,兼容性最好,推荐首选)、system(使用操作系统原生网络栈,性能略高但兼容性差一些)、mixed(TCP 走 gvisor,UDP 走 system)。默认选 gvisor。Auto Route 保持 true,Strict Route 保持 false。Device Name 默认 Mihomo 不需要改。设置完后回到 Overview 主页,把 TUN Mode 开关拨到右侧打开。开关变绿表示 TUN 已启动。
预期结果:TUN 开关变绿后,在终端验证:Windows 运行 ipconfig,输出中新增一个名为 Mihomo 的虚拟适配器。macOS 运行 ifconfig,输出中新增一个 utun 接口(如 utun1024),IPv4 地址通常为 172.x.x.x 或 198.18.x.x。Linux 运行 ip addr show,能看到新增的 tun 接口。
system 和 mixed 栈只在 Service Mode 下可用。如果只想用管理员权限跑(不装 Service),只能选 gvisor。system 栈在部分 Hyper-V 或 WSL2 开启的 Windows 上会蓝屏,遇到就切回 gvisor。
验证所有流量已走代理
TUN 开启后做三次验证确认整体网络接管。第一,浏览器正常访问 https://api.ipify.org,确认 IP 为节点出口 IP。第二,打开命令行(Windows 的 cmd 或 macOS/Linux 的终端),运行 curl https://api.ipify.org,同样应返回节点出口 IP——命令行不走系统代理,能返回代理 IP 说明 TUN 正在工作。第三,开一个之前不走代理的应用(如 Steam、Microsoft Store、Epic Games Launcher),看是否能正常连接海外服务。Windows 下可运行 route print 查看路由表,应能看到 Mihomo 虚拟网卡的路由条目。
预期结果:浏览器和命令行的 curl 均返回节点出口 IP。route print(Windows)或 netstat -rn(macOS/Linux)中能看到指向 TUN 虚拟网卡的默认路由或特定网段路由。Steam 等应用能正常显示海外商店页面。
有些应用的网络连接在启动时就建立了,开 TUN 对已经运行的应用不一定立即生效。如果 Steam 开了 TUN 还是连不上,先完全退出 Steam 再重新打开。
调 DNS 和路由:解决开 TUN 后的断网和漏代理
开了 TUN 最常见的两种异常:整体网络断(国内网站也打不开)和部分应用还不走代理。整体网络断先查两点:Settings → TUN Mode 里把 Strict Route 关掉(false),它的本意是强制所有流量走 TUN 但会导致局域网和国内直连也卡住。然后检查 DNS Hijack 配置,确认 DNS 劫持范围合理——通常是 any:53 和 tcp://any:53。部分路由器或公司网络有特殊 DNS 策略,可尝试把 DNS Hijack 范围缩小到仅劫持 8.8.8.8:53 这样的外部 DNS。MTU 值在高延迟或 UDP 密集场景下可降到 1400 或 1300。
预期结果:关掉 Strict Route 后国内网站恢复访问。缩小 DNS hijack 范围后,如果仍有断网,在 Logs 页面查看是否有大量 DNS 查询超时或路由匹配失败的记录。
不要同时开 Strict Route 和 Auto Route。Auto Route 已经自动添加了 TUN 的路由规则,Strict Route 会阻止任何不匹配 TUN 规则的流量出去,等于把所有直连流量也封死了。
排查规则:确认漏掉的流量去哪了
如果特定应用(比如某款游戏的反作弊模块、企业 VPN、视频会议)还是走本地,打开 Logs 页面把日志级别调到 debug(Settings → Log Level → debug),然后触发一次那个应用的网络请求。在日志里搜索应用的目标域名或 IP,看匹配到了哪条规则。Matched 列如果显示 DIRECT,说明规则把它判为直连;显示 PROXY 说明走代理但在代理链路上卡住了。针对 DIRECT 判定的流量,需要调整 Rules 里的对应规则,用 DOMAIN-SUFFIX 或 IP-CIDR 把目标地址拉进代理。
预期结果:日志中出现该应用的目标域名/ IP,且 Matched 策略与预期一致(该走代理的走代理,该直连的直连)。如果日志里完全没有该应用的请求记录,说明流量根本没进 TUN——回到步骤 2 检查 Service Mode 状态。
部分游戏反作弊系统(如 EasyAntiCheat、BattlEye)会在内核层检测虚拟网卡和流量劫持,这不是 TUN 配置能解决的问题。遇到游戏被封号或反作弊报警,先关 TUN 确认问题来源,而不是继续调 TUN 参数。
系统代理只能覆盖浏览器和少数主动读取系统代理设置的应用。游戏(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 转发稳定的订阅,可以看看 多格式测试订阅源。
相关阅读
常见问题
- 开了 TUN 后 Steam 还是打不开商店页面?
- Steam 启动时就建立了连接池,开 TUN 后需要完全退出 Steam(托盘图标右键 → 退出)再重新打开。如果退出重开还是不行,检查 Steam → Settings → Web Browser → 是否勾选了 Do Not Use Proxy——取消勾选或保持默认。
- gvisor、system、mixed 三个 Stack 到底怎么选?
- 默认 gvisor 适用于 90% 的情况,兼容性最好。system 性能略好但在开 Hyper-V / WSL2 的 Windows 上可能蓝屏,在 macOS 上更稳。mixed 在需要高性能 UDP(如视频会议、游戏语音)时考虑。遇到任何异常先切回 gvisor 验证问题是否消失。
- 开 TUN 后国内网站变慢或打不开?
- 先关 Strict Route。如果还慢,检查 DNS 配置——TUN 会劫持 DNS 请求发到 Mihomo 内部 DNS,如果 DNS 走了代理服务器解析,国内网站的 CDN 会被调度到海外节点。确认 Rules 里有 GEOIP,CN,DIRECT 或 DOMAIN-KEYWORD,cn,DIRECT 规则,让国内流量直连。
- TUN 和系统代理能同时开吗?
- 能同时开,但实际只有 TUN 生效——TUN 在网络层拦截了所有流量,系统代理的设置对它覆盖的流量没有额外作用。开着系统代理也不会有副作用,只是多余的开关。建议日常只用系统代理,需要代理全量应用时才开 TUN。
- Wintun 驱动被 Windows Defender 报毒怎么办?
- Wintun 驱动的系统级网络操作触发了杀毒软件的行为检测,是误报。在 Windows 安全中心 → 病毒和威胁防护 → 保护历史中找到被隔离的 wintun.dll,恢复它。然后把 Clash Verge Rev 的安装目录添加到排除项:病毒和威胁防护 → 管理设置 → 排除项 → 添加文件夹。
来源与时间
本文最后查看时间:2026-05-29。操作路径会随客户端版本变化,遇到按钮名称不一致时,优先按同义菜单和官方文档查看。