先用系统代理跑通,再开启 TUN
Windows 首次配置 Clash Verge Rev,建议按“安装客户端 → 导入配置 → 选择策略 → 验证系统代理 → 安装服务 → 启用 TUN”的顺序操作。不要一开始同时调整 DNS、路由和防火墙:每次只改变一个条件,才能判断问题出现在哪一层。
Clash Verge Rev 负责配置管理、系统代理和界面交互;mihomo 内核负责解析配置、匹配规则和建立代理连接。订阅提供节点与规则等配置数据。客户端安装成功不代表订阅可用,节点延迟有数值也不代表所有应用都会经过代理。
安装包选择:看系统架构,不看 CPU 品牌
- 打开 Windows「设置」→「系统」→「系统信息」,查看“系统类型”。Windows 10 中该页面通常名为“关于”。
- 显示“基于 x64 的处理器”时选择 x64 安装包。AMD64 是 x64 架构名称,Intel 的 x64 处理器同样适用。
- 显示“基于 ARM 的处理器”时,优先选择项目提供的 ARM64 安装包。不要仅凭设备品牌判断架构。
- 从客户端下载页查看平台入口,安装前正常退出旧客户端,避免两个内核争用同一端口。
首次启动与运行环境
按安装向导完成安装后,先以普通用户身份打开客户端。如果出现明确的 WebView2 运行时缺失提示,按安装器说明或通过 Microsoft 官方渠道补齐运行时。窗口空白也可能来自图形渲染或安全软件拦截,不能仅凭空白窗口就判断订阅失效。
如果 Windows 提示应用来源或发布者信息,先核对下载来源及安装包信息,不要把关闭系统防护作为安装前置步骤。安装完成后,在客户端「设置」中记录客户端版本和内核版本;后续反馈问题时,同时提供这两项比只写“最新版”更有用。
导入订阅并确认规则模式
在客户端「订阅」页面粘贴订阅地址并执行导入,或者通过本地文件导入 YAML。导入后还要选中该配置,使其成为当前使用的配置;列表中出现配置名称,并不等于内核已经切换成功。
- 查看更新结果和运行日志,确认没有 YAML 解析错误、字段类型错误或节点加载失败。
- 进入「代理」页面,先使用规则模式。检查常用策略组当前选择的节点,不要误选
DIRECT或REJECT。 - 对候选节点执行延迟测试。超时需要进一步检查节点与网络,不能直接归因于 Windows 防火墙。
- 打开一个应当走代理的目标,再到「连接」页面核对命中的规则与策略链。
规则模式按 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 就恢复。
- 先关闭其他代理客户端及第三方 VPN,记录当前网络是否能正常直连。
- 进入 Clash Verge Rev「设置」,找到“服务模式”及其安装或管理入口,按提示安装服务,并确认 Windows 的用户账户控制授权。
- 确认界面显示服务可用,再开启“虚拟网卡模式”或“TUN 模式”。服务状态异常时先处理安装错误,不要连续反复切换 TUN。
- 为了隔离变量,可暂时关闭系统代理,只保留 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 上接受其他设备的入站连接。也不要开放内核控制接口来解决普通网页访问问题。
收尾验证与退出后的断网恢复
安装完成后,用固定顺序验收,比只看托盘图标可靠。建议先保留一个已知可用的节点和一种接管方式,确认稳定后再添加复杂规则或额外覆盖。
- 验证配置:当前订阅已选中,内核日志没有持续报错,策略组没有误选直连或拒绝。
- 验证流量:打开应走代理的目标,在「连接」中确认规则和策略链;出口 IP 查询只能作为辅助,因为查询请求本身也可能命中直连规则。
- 验证应用:分别测试浏览器和原先失败的应用,不要把浏览器正常当作全部通过。
- 验证退出:先关闭系统代理和 TUN,再正常退出客户端,确认普通网络访问恢复。
客户端已退出,Windows 仍指向本地代理
客户端异常退出后,如果 Windows 仍保留 127.0.0.1 代理,而对应端口已经没有监听,遵循系统代理的应用就会报错。打开 Windows「设置」→「网络和 Internet」→「代理」,核对“手动设置代理”中的“使用代理服务器”。确认该地址确实属于已退出的客户端后再关闭;企业要求的代理或设置脚本不要自行删除。
若只有 TUN 退出后异常,重新启动客户端并正常关闭 TUN,再查看虚拟网卡和路由是否恢复。不要直接批量删除网卡、清空路由表或重置所有网络设置,这些操作可能影响其他 VPN 和企业网络。
需要继续调整字段时,可查阅YAML 配置手册。先让最小配置和单一接管方式工作,再逐步恢复自定义 DNS、分流规则及其他网络工具,通常比一次性开启所有选项更容易定位问题。