Clash Verge Rev TUN 模式开启步骤:开关灰色、开启没网怎么办
简答:Clash Verge Rev 开启 TUN 前,先确认配置已选中、内核正在运行、节点可用;然后进入首页的“网络设置”卡,安装服务或切换到管理员模式,再打开“虚拟网卡模式”。判断是否真正生效时,不要使用带 <code>-x</code> 的代理测试代替 TUN 验证,应关闭系统代理后直接测试,并结合连接记录、规则命中、虚拟接口和出口 IP 判断。
定义:Clash Verge Rev 的 TUN 模式是通过虚拟网卡接管系统流量的方式,适合处理不读取系统代理设置的应用;它与“系统代理”是两种不同的流量进入方式。
先试这一步:四状态自查卡
如果你只是想先把 TUN 打开,按下面顺序检查:配置已选中 → 内核运行 → 服务或管理员模式就绪 → TUN 已启用。项目界面把“系统代理”“虚拟网卡模式”“服务模式”和“内核状态”分开显示,中文字段可参考项目中文首页界面字段和项目中文设置字段。
| 状态 | 客户端或系统中的查看位置 | 通过标准 | 未通过时的处理 |
|---|---|---|---|
| 配置已选中 | 首页“订阅卡”或配置卡 | 已有配置并显示当前配置 | 先完成配置导入,不要直接排查 TUN |
| 内核运行 | 首页“Clash 信息卡”“系统信息卡” | 不是“内核未运行” | 重启内核或客户端,再检查日志 |
| 服务或管理员模式 | 首页“系统信息卡” | 显示“服务模式”“管理员模式”或“管理员 + 服务模式” | 安装服务,或按界面提示切换运行模式 |
| TUN 已启用 | 首页“网络设置卡” | 显示“虚拟网卡模式已启用” | 先处理服务不可用、权限或内核问题 |
版本提醒:项目 GitHub Releases 页面可见 v2.5.10,发布时间为 2026 年 11 月 3 日;本文查阅日期为 2026 年 11 月 13 日。不同版本的菜单位置和字段名称可能变化,版本号与界面应以客户端实际显示为准,不能把其他版本的截图路径当成固定入口。
订阅链接提醒:订阅地址通常可能包含访问凭据。不要把完整订阅链接、节点密码或原始日志发布到论坛、截图和公开工单中。
Clash Verge Rev TUN 模式开启步骤
- 先确认基础代理可用。打开客户端首页,检查当前配置、内核状态和当前节点。若首页显示“内核未运行”或没有激活节点,先解决配置与节点问题。TUN 只是改变流量进入内核的方式,不能替代配置和节点排查。
- 打开网络设置入口。从首页找到“网络设置卡”,或进入设置页的“系统设置”。中文界面一般显示“虚拟网卡模式”,英文界面对应“Tun Mode”;“系统代理”对应“System Proxy”。项目界面字段明确列出这两个开关,并提示 TUN 启用时不需要再打开系统代理,可参考项目英文设置字段。
- 安装服务或切换管理员模式。如果 TUN 开关旁显示“需要服务模式,请先安装服务”,点击“安装服务”;英文界面通常是“Install Service”。如果当前版本提供“切换到服务模式”,可使用“Switch to service mode”。项目设置字段明确写有 TUN 需要 Service Mode 或 Admin Mode,但系统是否弹出权限窗口取决于操作系统和当前运行权限。
- 打开虚拟网卡模式。回到首页网络设置卡,将“虚拟网卡模式”打开。成功后应看到类似“虚拟网卡模式已启用,应用将通过虚拟网卡访问网络”的状态;如果刚打开就自动关闭,优先检查服务是否可用、内核是否通过服务运行。
- 关闭系统代理后单独验证 TUN。为了避免把两种模式混在一起,首次排查建议只保留 TUN。先关闭系统代理,再使用下方的连接记录、虚拟接口和出口 IP 方法验证。若关闭系统代理后应用仍能访问,不能单独证明 TUN 生效,因为本机直连本来就可能正常。
项目中文首页字段把 TUN 状态分为“需要服务模式”“已启用”“已关闭”等状态,并把运行模式列为服务模式、管理员模式和用户模式等类别。按钮位置可能因版本、语言和布局设置变化,操作时以当前客户端显示为准。
Windows、macOS、Linux 怎么查看服务和虚拟接口
| 系统 | 服务状态查看 | 虚拟接口查看 | 结果怎么判断 |
|---|---|---|---|
| Windows | 按 Win + R,输入 services.msc;也可执行 Get-Service | Where-Object {$_.Name -match 'clash|mihomo|verge' -or $_.DisplayName -match 'clash|mihomo|verge'} | Get-NetAdapter | Where-Object {$_.Name -match 'Mihomo|Clash|TUN' -or $_.InterfaceDescription -match 'Mihomo|Clash|TUN'} | Format-Table Name,Status,InterfaceDescription | 服务应处于运行状态;接口名称可能不同,匹配不到不等于 TUN 一定失败,应结合客户端状态判断 |
| macOS | 执行 launchctl list | grep -Ei 'clash|mihomo|verge' | 执行 ifconfig | grep -E 'utun|clash|mihomo' | 看到相关服务或 utun 接口只能作为线索,还要继续检查连接记录和出口 IP |
| Linux | 执行 systemctl --type=service --state=running | grep -Ei 'clash|mihomo|verge' | 执行 ip link show | grep -Ei 'tun|mihomo|clash' | 服务、接口名称依发行版和安装方式变化;没有固定名称时以客户端运行状态和系统路由为准 |
这些命令只用于查看,不会替你安装服务。Linux 上只有在客户端明确提示需要管理员权限时才使用 sudo,不要直接执行来源不明的安装命令。Windows 的服务名不能凭默认值猜测,优先在 services.msc 中查看显示名称。
项目设置字段还区分“服务已安装,但内核未通过服务运行”和“服务已安装且内核通过服务运行”两类状态。因此,看到服务条目存在,不代表内核已经通过服务模式启动。
如何验证 TUN 真的生效
上一版常见的误区是使用 curl -x http://127.0.0.1:7890 验证 TUN。这个命令明确指定了本地 HTTP 代理入口,测试的是 Mixed Port 是否响应,与流量是否经过 TUN 没有直接关系。下面的验证方法更适合区分两者。
- 关闭系统代理。在 Clash Verge Rev 首页关闭“系统代理”,同时确认操作系统代理设置没有残留。TUN 保持开启。
- 不带代理参数直接请求。使用不带
-x的命令,例如curl -I https://example.com。如果本机直连本来就能访问,这一步只能说明请求成功,不能单独证明走了 TUN。 - 查看连接记录。打开客户端的连接页面或连接列表,重新执行一次请求,观察是否出现该连接,并查看入站类型、进程、规则或出站信息。项目社区讨论中将 TUN 流量描述为虚拟网卡接管后进入 Mihomo 内核,连接列表可用于辅助判断,但不同版本显示字段可能不完整。
- 对比出口 IP。在关闭 TUN、保持系统代理关闭的情况下记录一次出口 IP;再开启 TUN,重新请求同一 IP 查询页面或服务。只有当出口 IP、连接记录或规则命中出现可区分变化时,才能把结果作为 TUN 生效的证据之一。
- 测试不读取系统代理的应用。选择一个已知不会读取操作系统代理设置的应用或命令行程序,观察连接页是否出现对应进程。仅凭“普通浏览器还能打开网页”不能区分系统代理、TUN 或本机直连。
项目首页字段明确区分“系统代理已启用”和“虚拟网卡模式已启用”;前者表示修改了操作系统代理设置,后者表示应用通过虚拟网卡访问网络。两者不要混为同一项验证。
TUN 设置页关键项怎么理解
进入设置中的“虚拟网卡模式”区域后,当前项目字段可见的选项包括堆栈、虚拟网卡名称、自动设置全局路由、排除自定义网段、严格路由、自动选择流量出口接口、DNS 劫持和最大传输单元等。字段名称可参考中文设置字段。
| 设置项 | 作用 | 排查建议 |
|---|---|---|
| 堆栈 | 选择 TUN 的网络栈实现 | 先保留当前版本默认值;只有日志或特定系统问题指向堆栈时再调整 |
| 自动设置全局路由 | 让 TUN 自动加入系统路由 | 需要全局接管时通常应保持开启;关闭后可能出现接口存在但流量未进入 TUN |
| 严格路由 | 限制流量绕过 TUN 的路径 | 开启后若出现 DNS 或局域网访问异常,记录现象后再按规则和排除网段排查 |
| 自动选择流量出口接口 | 让内核选择当前物理网络出口 | 切换 Wi-Fi、网线或手机热点后异常,可检查是否选到了错误接口 |
| DNS 劫持 | 将符合条件的 DNS 请求交给内核处理 | 开启后出现解析失败,先检查 DNS 模式、劫持端口和严格路由,不要立即修改多个参数 |
| 最大传输单元 | 设置虚拟接口的 MTU | 只有在特定链路出现分片或部分连接异常时再调整,并保留原值方便回退 |
可以先记录一份当前设置,再一次只修改一个选项。最小示例仅用于说明字段结构,不包含节点、规则和完整 DNS 配置:
tun:
enable: true
stack: mixed
auto-route: true
auto-detect-interface: true
strict-route: true
dns-hijack:
- any:53
mtu: 1500
上述示例不能直接替代客户端生成配置;不同系统、版本和配置合并规则可能导致实际字段被界面覆盖。保存前请备份配置,并以客户端最终显示的运行配置为准。
开关灰色、服务失败、开启后没网的排查顺序
| 现象 | 先看什么 | 可照做的处理 |
|---|---|---|
| TUN 开关灰色或提示服务不可用 | 服务模式、管理员模式、内核状态 | 查看运行模式→点击“安装服务”→重启客户端→确认内核通过服务运行 |
| 服务安装失败 | 权限、已有同类服务、其他流量接管软件 | 关闭其他接管软件→重新执行客户端提供的安装服务操作→在系统服务列表查看结果 |
| 虚拟接口出现但仍无法访问 | 自动路由、出口接口、DNS 劫持、规则 | 确认自动路由开启→检查出口接口→暂时恢复默认 DNS/TUN 设置→查看连接记录中的规则与出站 |
| 开启后完全没网 | DNS、严格路由、其他虚拟网卡、默认路由 | 先关闭 TUN 回退→确认网络恢复→一次只调整严格路由、DNS 或出口接口中的一个选项 |
| 只有部分域名打不开 | 规则分流和 DNS 模式 | 检查连接记录是否命中预期规则→测试域名解析→切换节点或代理组后再次验证 |
| 切换 Wi-Fi、网线或手机热点后异常 | 自动检测接口 | 重启内核并检查出口接口;必要时暂时关闭自动检测并选择当前物理接口,字段名称以版本实际显示为准 |
最小回退路径
- 关闭“虚拟网卡模式”。
- 等待系统网络恢复,再决定是否单独开启“系统代理”。
- 检查操作系统代理设置是否残留手动代理地址。
- 关闭其他流量接管软件,重启 Clash Verge Rev。
- 仍异常时,在客户端设置页使用“导出诊断信息”,先删除订阅地址、节点凭据和私人域名,再保存或提交日志。
如果 macOS 或 Linux 出现接口存在但 DNS 失败,不要直接把问题归因于节点。先查看连接记录、DNS 解析结果、出口接口和 TUN 设置;项目公开问题中可以看到不同版本和系统可能出现 DNS、自动接口选择或严格路由相关差异,因此具体故障需要结合版本与日志核对。
中文与英文菜单名称对照
| 中文界面 | 英文界面 | 用途 |
|---|---|---|
| 虚拟网卡模式 | Tun Mode | 开启或关闭 TUN 流量接管 |
| 系统代理 | System Proxy | 修改操作系统代理设置 |
| 安装服务 | Install Service | 安装客户端所需的服务组件 |
| 卸载服务 | Uninstall Service | 移除已安装的服务组件 |
| 切换到服务模式 | Switch to service mode | 让内核通过服务方式运行 |
| 自动设置全局路由 | Auto Route | 控制是否自动设置 TUN 路由 |
| 严格路由 | Strict Route | 控制流量绕过 TUN 的限制方式 |
| DNS 劫持 | DNS Hijack | 设置需要交给内核处理的 DNS 请求 |
项目的中英文设置文件提供了上述字段,但实际入口可能位于首页网络设置卡或设置页,取决于客户端版本和布局。找不到按钮时,可在设置页搜索“Tun”“虚拟网卡”“服务”或“Service”。
常见问题
Clash Verge Rev TUN 模式和系统代理要同时开启吗?
不建议把两者同时作为排查起点。系统代理修改操作系统代理设置,TUN 通过虚拟网卡接管流量。先关闭系统代理、单独开启 TUN,再用连接记录、规则命中和出口 IP 验证。
Clash Verge Rev 的 TUN 开关为什么是灰色?
优先检查服务模式、管理员模式和内核状态。项目界面明确提示 TUN 需要 Service Mode 或 Admin Mode,可先点击“安装服务”或“切换到服务模式”,再重启客户端检查。
开启 TUN 后没网,第一步应该做什么?
先关闭 TUN,让网络恢复到可控状态;然后检查内核、当前节点、自动路由、出口接口、DNS 劫持和其他流量接管软件。一次只改一个设置,避免无法判断是哪项造成变化。
Windows 怎么确认 TUN 服务正在运行?
按 <code>Win + R</code> 输入 <code>services.msc</code>,搜索名称中含 Clash、Mihomo 或 Verge 的服务;也可执行 <code>Get-Service | Where-Object {$_.Name -match 'clash|mihomo|verge' -or $_.DisplayName -match 'clash|mihomo|verge'}</code>。服务名可能不同,最终以客户端运行模式和服务列表为准。
macOS 和 Linux 没有固定的 TUN 接口名称怎么办?
macOS 可用 <code>ifconfig | grep -E 'utun|clash|mihomo'</code>,Linux 可用 <code>ip link show | grep -Ei 'tun|mihomo|clash'</code> 作为线索。接口名称会随系统、版本和配置变化,不能只凭名称判断成功,还要结合连接记录和出口 IP。
curl -x 127.0.0.1:7890 能证明 TUN 生效吗?
不能。带 <code>-x</code> 的命令强制使用本地 HTTP 代理入口,验证的是 Mixed Port,而不是 TUN。验证 TUN 时应关闭系统代理,直接执行不带 <code>-x</code> 的请求,并查看连接记录、规则命中、虚拟接口和出口 IP。