Clash Verge Rev 里「系统代理能用」和「TUN 能用」不是一件事。官方快速开始文档说,系统代理是自动修改操作系统代理设置;TUN 模式是在系统里安装虚拟网卡,用来处理不走系统代理的应用。

所以排查顺序要从轻到重:先系统代理,再 Service Mode,最后 TUN。

##跑通 7890 系统代理

把 TUN、Service Mode、Bypass 都关掉,只保留系统代理。默认常见端口是 mixed-port: 7890,用这个端口做基线。

Windows PowerShell:

curl.exe -x http://127.0.0.1:7890 https://example.com -I
netstat -ano | findstr 7890

macOS/Linux:

curl -x http://127.0.0.1:7890 https://example.com -I
lsof -i :7890

这一步不通,先回到订阅、Profile 和端口。系统代理都没跑通时,开 TUN 只会把错误藏得更深。

Service Mode 要看服务,不看按钮

Windows 上先查服务名。GitHub issue #6512 里,用户和维护者都提到了 clash_verge_service

Get-Service -Name clash_verge_service
Get-Service | Where-Object {$_.Name -match "clash|verge|mihomo"}

日志里这几行值得注意:

Some issue with service IPC Path
系统找不到指定的文件。 (os error 2)

这类日志说明 GUI 和服务进程之间的通信没准备好。重新安装 Service Mode 前,先退出 Clash Verge Rev,确认旧服务是否还在,再以管理员权限启动一次客户端。

Linux 用户如果遇到类似问题,可以对照 issue #6978。那个 issue 里报告了服务 socket 路径不一致:服务创建在 /tmp/clash-verge-service-ipc-test/service.sock,GUI 查的是 /tmp/verge/clash-verge-service.sock,结果界面报 IPC path not ready。这不是订阅问题。

TUN stack 只改一个变量

Mihomo TUN 文档给了三个 stack

tun.stack含义排错建议
system使用系统网络栈权限和路由问题更容易暴露
gvisor用户态网络栈Windows 桌面端常作为基线
mixedTCP 用 system,UDP 用 gVisor稳定后再试,不要首轮混测

最小配置大概是这样:

tun:
  enable: true
  stack: gvisor
  auto-route: true
  auto-detect-interface: true
  dns-hijack:
    - any:53

dns-hijack 是把匹配到的 DNS 连接交给 Mihomo 内部 DNS。文档也提醒,macOS/Windows 不能自动接管 LAN DNS 请求,Android Private DNS 也会影响劫持。桌面端排错时只看本机流量,不要顺手把路由器和手机一起纳入测试。

Bypass 和自定义路由最后再加

Clash Verge Rev 的 Bypass 文档把排除方法分成系统代理排除、TUN 流量排除、自定义路由规则。先别急着写复杂规则。

如果要测试排除,用一条确定的规则就够:

rules:
  - IP-CIDR,10.11.12.0/24,DIRECT,no-resolve
  - DOMAIN-SUFFIX,example.com,DIRECT
  - MATCH,默认策略

TUN 刚修好时,确认 Dashboard 能看到连接,再确认这条规则命中。不要同时改 tun.stackdns-hijack、规则和订阅。

日志关键词怎么读?

日志片段指向位置第一动作
Some issue with service IPC PathGUI 与服务通信查服务是否存在,重装 Service Mode
os error 2路径或文件不存在看服务 IPC 路径和安装目录
IPC path not ready服务 socket 未就绪Linux 对照 socket 路径
failed to create tun device虚拟网卡创建失败查权限、安全软件、旧网卡
dns-hijack 无连接DNS 没进 TUN暂时关闭严格路由或换 stack 测试

日志要和当前开关对应。你如果一次打开 Service Mode、TUN、DNS 覆写、Bypass,日志里出现十几种错误,最后很难判断第一处失败在哪里。

验收标准

按这个顺序复测:

  1. 关闭 TUN,curl -x http://127.0.0.1:7890 能通。
  2. 打开 Service Mode,Windows 服务处于 Running。
  3. 打开 TUN,系统出现虚拟网卡或对应网络接口。
  4. 打开同一个网页,Dashboard 能看到连接。
  5. 日志里不再出现 IPC、TUN device、DNS hijack 相关错误。

确认后再保存 Bypass 和自定义路由。能少动一项就少动一项。

相关阅读