先用系统代理跑通,再开启 TUN

Windows 首次配置 Clash Verge Rev,建议按“安装客户端 → 导入配置 → 选择策略 → 验证系统代理 → 安装服务 → 启用 TUN”的顺序操作。不要一开始同时调整 DNS、路由和防火墙:每次只改变一个条件,才能判断问题出现在哪一层。

Clash Verge Rev 负责配置管理、系统代理和界面交互;mihomo 内核负责解析配置、匹配规则和建立代理连接。订阅提供节点与规则等配置数据。客户端安装成功不代表订阅可用,节点延迟有数值也不代表所有应用都会经过代理。

安装包选择:看系统架构,不看 CPU 品牌

  1. 打开 Windows「设置」→「系统」→「系统信息」,查看“系统类型”。Windows 10 中该页面通常名为“关于”。
  2. 显示“基于 x64 的处理器”时选择 x64 安装包。AMD64 是 x64 架构名称,Intel 的 x64 处理器同样适用。
  3. 显示“基于 ARM 的处理器”时,优先选择项目提供的 ARM64 安装包。不要仅凭设备品牌判断架构。
  4. 从客户端下载页查看平台入口,安装前正常退出旧客户端,避免两个内核争用同一端口。

首次启动与运行环境

按安装向导完成安装后,先以普通用户身份打开客户端。如果出现明确的 WebView2 运行时缺失提示,按安装器说明或通过 Microsoft 官方渠道补齐运行时。窗口空白也可能来自图形渲染或安全软件拦截,不能仅凭空白窗口就判断订阅失效。

如果 Windows 提示应用来源或发布者信息,先核对下载来源及安装包信息,不要把关闭系统防护作为安装前置步骤。安装完成后,在客户端「设置」中记录客户端版本和内核版本;后续反馈问题时,同时提供这两项比只写“最新版”更有用。

导入订阅并确认规则模式

在客户端「订阅」页面粘贴订阅地址并执行导入,或者通过本地文件导入 YAML。导入后还要选中该配置,使其成为当前使用的配置;列表中出现配置名称,并不等于内核已经切换成功。

  1. 查看更新结果和运行日志,确认没有 YAML 解析错误、字段类型错误或节点加载失败。
  2. 进入「代理」页面,先使用规则模式。检查常用策略组当前选择的节点,不要误选 DIRECT 或 REJECT。
  3. 对候选节点执行延迟测试。超时需要进一步检查节点与网络,不能直接归因于 Windows 防火墙。
  4. 打开一个应当走代理的目标,再到「连接」页面核对命中的规则与策略链。

规则模式按 rules 顺序匹配;全局模式使用 GLOBAL 策略;直连模式不会因为选中了某个节点就自动使用它。排查时可以短暂切换全局模式做对照,但验证完成后应恢复预期模式,并检查具体规则。

系统代理不生效:先检查端口和请求路径

系统代理适合先验证浏览器等遵循 Windows 代理设置的应用。它不是全系统流量接管机制:部分游戏、命令行工具和带独立网络设置的软件不会自动使用它,普通 HTTP 系统代理也不负责接管所有 UDP 流量。

确认 127.0.0.1 与实际混合端口

先在客户端设置页确认混合端口,再打开“系统代理”。下面以 7897 为诊断示例;如果客户端实际显示 7890 或其他端口,必须替换命令中的数值。不要为了套用示例而随意修改端口。

# 在 PowerShell 中检查本地监听端口
Test-NetConnection 127.0.0.1 -Port 7897

# 检查当前用户的 Windows 代理设置
Get-ItemProperty 'HKCU:\Software\Microsoft\Windows\CurrentVersion\Internet Settings' |
  Select-Object ProxyEnable, ProxyServer, AutoConfigURL

# 检查监听进程;输出最后一列为 PID
netstat -ano | findstr LISTENING | findstr :7897

TcpTestSucceeded : True 只说明本地端口可以连接,不代表远端节点可用。若结果为 False,先查内核是否运行、配置是否加载,以及端口是否被其他程序占用。可以在任务管理器「详细信息」中按 PID 找到进程,不要直接结束不明系统进程。

用显式代理请求分离问题

# 显式指定 HTTP 代理,绕开应用是否读取系统设置的差异
curl.exe --proxy http://127.0.0.1:7897 --connect-timeout 10 --max-time 20 -I https://example.com/

这里使用 curl.exe,避免某些 PowerShell 环境把 curl 解析为其他命令。该请求仍然遵循内核的规则模式,因此还需查看「连接」页面,确认目标实际走了代理而不是直连。收到 HTTP 响应表示这条请求链路有响应,不等于所有网站均可访问。

  • 显式代理成功,浏览器失败:检查浏览器扩展、独立代理设置,以及 Windows「设置」→「网络和 Internet」→「代理」里的配置是否被其他软件改写。
  • 显式代理失败,本地端口可达:检查策略组、节点认证、远端连接和内核日志,不要继续反复切系统代理开关。
  • 浏览器成功,某个应用失败:确认该应用是否遵循系统代理;必要时在应用内设置代理,或再测试 TUN。

netsh winhttp show proxy 展示的是 WinHTTP 代理状态,不等同于当前用户浏览器使用的 Windows 代理设置。它显示“直接访问”不能单独证明 Clash Verge Rev 的系统代理失效,也不应据此盲目修改整机 WinHTTP 配置。

TUN 服务安装:先确认服务,再确认路由

TUN 通过虚拟网络接口和路由接管流量,适合处理不遵循系统代理的应用。它需要相应权限,也更容易与其他 VPN、虚拟网卡和企业网络策略发生冲突。TUN 不是节点修复工具:系统代理下已经失败的节点,通常不会因为打开 TUN 就恢复。

  1. 先关闭其他代理客户端及第三方 VPN,记录当前网络是否能正常直连。
  2. 进入 Clash Verge Rev「设置」,找到“服务模式”及其安装或管理入口,按提示安装服务,并确认 Windows 的用户账户控制授权。
  3. 确认界面显示服务可用,再开启“虚拟网卡模式”或“TUN 模式”。服务状态异常时先处理安装错误,不要连续反复切换 TUN。
  4. 为了隔离变量,可暂时关闭系统代理,只保留 TUN。打开目标应用,观察「连接」和「日志」是否出现对应流量。

理解 TUN 相关字段

以下是 mihomo 常见 TUN 字段的配置片段,不是包含节点、策略组和规则的完整配置。Clash Verge Rev 可能通过运行时覆盖生成这些字段,应优先使用客户端设置入口,并检查最终生效配置。不要把整段内容直接追加到订阅末尾,造成重复的 tun 键。

tun:
  enable: true
  stack: mixed
  auto-route: true
  auto-detect-interface: true
  dns-hijack:
    - any:53
  • auto-route 用于自动设置路由;启用后仍需确认流量确实进入内核。
  • auto-detect-interface 用于自动识别出站接口。多网卡、热点和 VPN 并存时,需要结合日志检查识别结果。
  • dns-hijack 中的 any:53 用于劫持相应的传统 DNS 请求,不会把所有 HTTPS 加密 DNS 请求都自动变成普通 DNS。
  • stack 的支持情况与行为取决于内核和平台。不要在没有日志依据时反复更换协议栈。

如果 TUN 一开就全机断网,先关闭 TUN 恢复网络,再检查出站接口、DNS 配置和其他 VPN 的路由。睡眠唤醒、从有线切到 Wi-Fi 后出现的问题,也应先重新确认接口与服务状态,而不是直接重装系统。

UWP 应用无法联网:区分回环限制与代理绕过

Microsoft Store 等采用应用容器网络模型的程序,可能受到本机回环访问限制。当它尝试通过 127.0.0.1:7897 使用本地代理时,即使普通浏览器正常,也可能连接失败。不是所有商店安装的应用都是相同网络模型,不能一概按 UWP 处理。

两条排查路径

  • 继续使用系统代理:如果当前版本提供 UWP 回环豁免工具,只针对需要的应用授权。缺少该入口时,可使用 Windows 自带工具检查,不要下载来源不明的批量修改脚本。
  • 使用 TUN 接管:关闭系统代理做单独测试,确认应用连接是否进入内核。TUN 可以改变接管路径,但不能替代对应用认证、DNS 和服务端错误的检查。
# 在管理员终端中查看已有的应用容器回环豁免
CheckNetIsolation.exe LoopbackExempt -s

该命令只列出现有豁免,不会自动为所有应用解除限制。若需要新增,先通过 Get-AppxPackage 确认目标应用的包族名称,再按工具帮助精确操作。只处理受影响的应用,避免把“全部豁免”当作通用优化。

如果 TUN 下仍失败,观察客户端是否出现该应用的连接。完全没有连接时优先检查接管路径;已经有连接并返回认证或地区错误时,应继续检查账户、出口和服务要求,不能再简单归因为回环限制。

防火墙排查:保留防护,只调整必要规则

正常的本机代理使用 127.0.0.1 监听,不需要为了访问互联网把混合端口开放给整个局域网。只有明确需要其他设备连接本机代理时,才考虑“允许局域网连接”、监听地址和入站规则,并限制来源网络。

现象优先检查处理方向
本地端口无法连接内核状态、端口占用先恢复监听,不急于增加防火墙规则
本地监听正常,远端连接超时节点、出站拦截、安全软件记录结合日志与其他节点对照定位
更新后出现拦截规则关联的程序路径核对当前内核位置,调整失效规则
其他设备无法连接本机代理监听地址、局域网开关、入站范围仅在确有共享需求时开放必要访问

按 Win + R,输入 wf.msc 打开“高级安全 Windows Defender 防火墙”。先检查“出站规则”里是否有针对当前客户端或内核的阻止规则,再检查安全软件的拦截记录。Windows 常见默认策略允许出站连接,但组织管理的电脑可能采用不同策略,应联系管理员处理。

如果出现“允许此应用通过防火墙”提示,不要机械勾选所有网络类型。应按实际用途授权;本机使用代理不等于需要在公用 Wi-Fi 上接受其他设备的入站连接。也不要开放内核控制接口来解决普通网页访问问题。

收尾验证与退出后的断网恢复

安装完成后,用固定顺序验收,比只看托盘图标可靠。建议先保留一个已知可用的节点和一种接管方式,确认稳定后再添加复杂规则或额外覆盖。

  1. 验证配置:当前订阅已选中,内核日志没有持续报错,策略组没有误选直连或拒绝。
  2. 验证流量:打开应走代理的目标,在「连接」中确认规则和策略链;出口 IP 查询只能作为辅助,因为查询请求本身也可能命中直连规则。
  3. 验证应用:分别测试浏览器和原先失败的应用,不要把浏览器正常当作全部通过。
  4. 验证退出:先关闭系统代理和 TUN,再正常退出客户端,确认普通网络访问恢复。

客户端已退出,Windows 仍指向本地代理

客户端异常退出后,如果 Windows 仍保留 127.0.0.1 代理,而对应端口已经没有监听,遵循系统代理的应用就会报错。打开 Windows「设置」→「网络和 Internet」→「代理」,核对“手动设置代理”中的“使用代理服务器”。确认该地址确实属于已退出的客户端后再关闭;企业要求的代理或设置脚本不要自行删除。

若只有 TUN 退出后异常,重新启动客户端并正常关闭 TUN,再查看虚拟网卡和路由是否恢复。不要直接批量删除网卡、清空路由表或重置所有网络设置,这些操作可能影响其他 VPN 和企业网络。

需要继续调整字段时,可查阅YAML 配置手册。先让最小配置和单一接管方式工作,再逐步恢复自定义 DNS、分流规则及其他网络工具,通常比一次性开启所有选项更容易定位问题。