Clash 代理组为空:订阅格式与 Provider 引用排查
排查步骤
先打开订阅内容确认有 proxies 或 provider 数据,再核对代理组引用。YAML 的层级缩进错误会让字段被忽略或导致加载失败。
稳定维护
对订阅做覆写而非直接修改原文件;每次更新后先看日志再判定。保留一份可用的最小配置便于回退。
诊断范围
“Clash 代理组为空:订阅格式与 Provider 引用排查”应先按可观察现象缩小范围:更新后代理组没有节点时,检查订阅内容、代理提供者名称和 YAML 引用。 记录发生时间、使用的客户端与系统版本、是否仅在某个网络或某个配置下发生。不要从单次测速、单个节点或一次重试直接推断根因,也不要在未备份配置时同时修改多个开关。
操作步骤
- 保留错误提示的非敏感部分,并记下当前客户端、系统、网络类型和最近一次成功时间;订阅链接、账号、令牌和个人网络标识不得写入截图或工单。
- 在受控条件下只改变一个变量,例如切换已知可用的网络、恢复一份已导出的配置,或暂时停用可能重复接管流量的另一个客户端;每次改动后回到同一个操作复测。
- 将结果归为“现象消失、现象不变、出现新错误”之一。前两类分别保留变更前后记录;出现新错误时立即恢复上一步,而不是继续叠加 DNS、代理模式、内核或系统权限改动。
验证与回退
完成调整后,以原始失败动作连续复测,并确认目标功能恢复而不是只看到界面状态改变。若复测失败,回退到已导出的配置或原先已知可用的客户端状态,再依据记录选择下一项检查。任何无法解释的证书、权限、路由或账户提示都应停止扩大改动范围并转交产品或网络管理员。
来源与适用边界
本文未绑定可逐条核验的外部案例,只提供本机侧可重复的诊断顺序,不把任何现象归因于特定服务商、线路或版本。若需要升级,应带着脱敏后的时间、错误文本和已执行步骤联系相应产品支持。
来源与更新
本文为本地诊断整理,未把它表述为某个公开个案的结论。执行前请以所用客户端和系统的当前官方说明为准。
排查顺序
- 记录症状确认客户端、系统、错误文本与发生范围。
- 低风险核对先检查本文对应的配置、权限、网络或版本条件。
- 复测与回退只改变一项;现象变化后再决定是否继续。
常见问题
订阅有节点但组为空怎么办?
检查组的 use/provider 名称是否与定义完全一致,注意大小写和缩进。
可以手工改订阅文件吗?
可以测试,但更新会覆盖;将自定义内容放在覆写配置中更稳妥。
确认结果、回退与日志
每次只修改一项并复测原始现象。若出现新错误,恢复导出的配置或关闭刚启用的开关;仍未解决时,请保留客户端与系统版本、错误文本、发生时间、已尝试步骤以及脱敏日志。
不要公开订阅地址、账号或完整连接信息。文中的命令与配置片段仅适用于其标注的客户端和系统;未提供命令时,请以来源中的官方界面或系统文档为准。
补充更新:按空白层级定位订阅、Provider 与内核问题
简答:Clash 代理组为空不一定是订阅失效:先看原始配置是否有 proxies 或 proxy-providers,再核对 proxy-groups 的 use、filter。
定义:Clash 代理组为空,是指配置已导入或更新后,代理组没有可选节点、只有 DIRECT/REJECT,或客户端界面无法读取本应存在的代理组。
先判断:是全部节点为空,还是某个代理组为空?
更新于 2026 年 10 月 31 日。不要先删除配置或反复刷新订阅,先把“空”定位到具体层级。Mihomo 官方文档将 proxies 定义为代理组直接引用的节点或其他代理组,将 use 定义为代理组引用的 Proxy Provider;两者引用方式不同,排查顺序也不同。Mihomo proxy-groups 文档
| 观察到的现象 | 优先检查 | 下一步 |
|---|---|---|
| 代理列表和所有代理组都没有节点 | 订阅 HTTP 返回、配置格式、proxies、proxy-providers | 打开原始响应或生成配置,确认是否真的包含节点数据 |
| 只有一个地区组或一个策略组为空 | filter、exclude-filter、节点名称匹配 | 暂时移除过滤器,观察组内是否恢复节点 |
| 配置文件有节点,界面却显示空 | 内核进程、服务模式、External Controller 或命名管道 | 查看客户端日志,确认 UI 是否能读取内核状态 |
| 只有 DIRECT、REJECT,没有订阅节点 | Provider 是否加载、use 名称是否一致 | 核对 Provider 名称、缓存文件和更新日志 |
| 导入的是规则集文件 | 文件类型是否为 rule-provider | 不要把规则集当作包含代理节点的完整配置导入 |
最短判断方法是:先看“代理列表总数”,再看“具体代理组成员数”,最后看“内核日志”。总数为零时,不要先调策略组;总数正常而单组为空时,优先检查过滤条件和引用。
可复现的证据链:订阅响应→Provider→代理组→客户端界面
- 保留现场:记录客户端名称、系统、发生时间和订阅更新日志;订阅 URL 通常含令牌,不要把完整地址、完整日志或截图公开。
- 检查原始内容:确认返回内容是完整 Clash/Mihomo 配置,还是仅包含节点、规则或其他用途的文件。完整配置通常需要结合
proxies、proxy-groups、rules等字段判断;Provider 则应出现在proxy-providers下。 - 核对 Provider:官方文档规定 HTTP Provider 需要
type和url,并可设置path、interval和健康检查。Provider 名称必须唯一,代理组的use必须引用同名 Provider。Mihomo proxy-providers 文档 - 核对代理组:先删除或注释
filter、exclude-filter,再检查use和proxies的名称。官方示例中,select、url-test、fallback等组类型都可以通过proxies引用节点,也可以通过use引入 Provider。Mihomo 配置示例 - 验证生成配置:在独立备份上运行
mihomo -t -f config.yaml;该命令只验证配置,不代表节点一定可连接。验证失败时先修 YAML 缩进、字段名称和引用关系,再回到客户端更新。
可用于核对结构的最小片段如下,实际订阅地址、Provider 名称和节点内容需要替换为你自己的值:
proxy-providers:
provider1:
type: http
url: "替换为你的订阅地址"
path: ./proxy_providers/provider1.yaml
interval: 3600
proxy-groups:
- name: Proxy
type: select
use:
- provider1
rules:
- MATCH,Proxy
如果这个结构能通过配置检查,但客户端仍显示空白,问题更可能发生在客户端生成配置、Provider 更新、内核进程或控制通道,而不是策略组语法本身。配置验证命令与“验证通过后再重启内核”的流程,也出现在 MetaCubeX 面板项目的公开说明中。MetaCubeX 面板配置说明
跨客户端排查差异与失败回退
| 客户端或平台 | 先看什么 | 失败时怎么回退 |
|---|---|---|
| Clash Verge Rev / Windows | 订阅更新日志、生成配置、内核进程、服务模式和控制通道 | 先关闭服务模式或切换普通运行模式做对照;保留日志和配置后再升级或回退 |
| macOS / Linux | 配置文件路径、文件权限、内核日志和控制接口 | 复制一份最小配置到独立目录验证,不直接覆盖原配置 |
| Android | 订阅内容、Provider 缓存、过滤器和当前配置是否已激活 | 重新导入前先导出或备份当前配置,避免把问题扩大到全部配置 |
| iOS | 订阅更新结果、节点列表和策略组成员,不只看首页开关 | 停止连续刷新,改用原始订阅响应或另一份已知可用配置做对照 |
Clash Verge Rev 的公开 Release 页面曾列出代理组显示、服务模式操作、订阅更新提示和部分核心通信相关修复;因此“核心正在运行但 UI 代理组为空”应单独作为控制通道问题排查,不要直接等同于订阅没有节点。当前版本、修复范围和升级方式以该项目 Release 页面为准。Clash Verge Rev Releases
若日志出现核心通信错误,同时配置文件已经能看到 proxies 和 proxy-groups,可以按以下顺序回退:停止服务模式→退出客户端→确认没有残留内核进程→重新启动普通模式→重新加载备份配置。公开 issue 中也记录过 Windows 服务模式下核心可运行、但 UI 读取代理组失败的分层现象;这类报告只能作为排查线索,不能替代你自己的日志确认。Clash Verge Rev 服务模式与空代理组 issue
常见问题
Clash 导入成功但代理组仍然为空,订阅一定失效了吗?
不一定。导入成功只说明客户端接受了输入,仍需检查返回内容是否包含节点、Provider 是否成功更新,以及代理组是否用正确的名称引用它们。先查看原始响应和更新日志,再判断订阅状态。
为什么总节点正常,某个代理组却没有节点?
最常见的检查点是 filter、exclude-filter 和节点名称。先临时移除过滤器;如果节点恢复,再缩小正则或关键词范围。官方文档明确说明过滤器会筛选匹配的节点,因此匹配结果为零时,代理组可能保留但没有成员。Mihomo proxy-groups 文档
proxies 和 use 有什么区别?
proxies 直接引用代理节点或其他代理组,use 引用 proxy-providers 中定义的 Provider。使用 Provider 时,Provider 名称、更新状态和代理组中的 use 名称必须对应。
配置检查通过后,为什么客户端界面还是空的?
配置检查只说明 YAML 和字段引用能被内核接受,不代表 GUI 已经连接到正确的内核。继续检查内核是否运行、服务模式是否启用、控制端口或命名管道是否可访问,以及客户端是否加载了刚刚验证的那份配置。
什么时候应该停止反复更新订阅?
当原始响应为空、返回格式明显不是配置,或每次更新都会覆盖手工修复内容时,应停止连续刷新,先保存日志、备份当前配置并核对 Provider 文件。之后再根据证据决定是修复引用、切换配置来源,还是联系订阅提供方。
常见问题
Clash 代理组为空是不是订阅失效?
不一定。先确认原始响应是否有节点数据,再检查 Provider 更新和代理组引用;只有在响应本身异常时,才把订阅来源列为主要嫌疑。
Clash 代理组为空怎么快速修复?
先暂时移除 filter 与 exclude-filter,核对 proxy-groups 的 use 和 proxy-providers 名称,再用 mihomo -t 验证生成配置;配置完整但界面为空时检查内核与控制通道。
为什么只有某个 Clash 代理组为空?
通常与过滤器匹配不到节点、节点名称变化或 use 引用错误有关。先看总节点数,再单独检查该代理组。
配置验证通过但 Clash Verge Rev 仍显示代理组为空怎么办?
把问题分到客户端层:检查服务模式、内核进程、控制端口或命名管道,并用普通运行模式加载备份配置做对照。
相关阅读
- Clash 订阅导入失败的链接、格式与客户端排查
- Clash YAML 缩进、引号与字段兼容性检查
- Clash Verge Rev 内核通信错误且代理组为空
- Clash 规则不生效时的优先级与策略组诊断
- Clash 节点全红时区分测速失败与实际不可用