代理组引用了不存在的节点怎么办
Clash 代理组里写的名字和节点或其他代理组对不上,内核会报 not found。说明怎么核对名字、订阅更新后节点改名怎么办,以及检查器能自动找出这类错误。
适用:Clash Verge RevFlClashClash PartyClash Meta for AndroidClashX MetaClash Mimihomo
你看到的现象
配置加载失败,日志里出现 not found。用 mihomo v1.19.33 实测,常见的几种报错是:
proxy group[0]: 节点选择: '香港01' not found
rules[0] [MATCH,节点选泽] error: proxy [节点选泽] not found
loop is detected in ProxyGroup, please check following ProxyGroups: [A B]
proxy 香港 01 is the duplicate name
第一行的意思是:代理组“节点选择”里写了“香港01”,但配置里没有叫这个名字的节点或代理组。方括号里的序号不一定等于它在文件里的位置,以报错里的代理组名称为准去找。
把配置粘贴到 配置文件检查器,可以直接标出引用错误的行,全程在浏览器本地完成。
可能的原因和解决办法
名字差了一个字符
怎么判断:代理组里写的名字要和节点的 name 完全一致,多一个空格、少一个空格、全角半角不同、大小写不同、表情符号不同,都算不同的名字。例如节点叫 香港 01(中间有空格),代理组里写成 香港01 就会报错。
怎么解决:从节点列表里复制名字,粘贴到代理组里,不要手打。名字里有特殊符号的,用引号括起来。
订阅更新后节点改了名
怎么判断:之前一直正常,更新订阅后才报错。服务商调整了节点命名,你在覆写、自定义代理组里手写的旧名字就对不上了。
怎么解决:不要在自定义代理组里写死节点名称。mihomo 支持按条件自动引入节点:include-all-proxies: true 引入全部节点,再用 filter 按关键词筛选,例如:
- name: 香港节点
type: url-test
include-all-proxies: true
filter: "(?i)港|hk"
写法见 mihomo 官方文档:代理组(在新窗口打开)。注意:filter 一个也没匹配上时不会报错(实测),组里只是没有你要的节点。
规则指向的代理组不存在
怎么判断:报错以 rules[序号] 开头,例如 proxy [节点选泽] not found。规则最后一项写的代理组名称和实际名称对不上。
怎么解决:把规则里的名称改成代理组的真实名字。规则的写法见 分流规则写了但不生效。
代理组互相引用成了环
怎么判断:报错 loop is detected in ProxyGroup,后面列出了相关的代理组。例如 A 组里有 B,B 组里又有 A。
怎么解决:去掉其中一个方向的引用。
两个节点重名
怎么判断:报错 proxy 名称 is the duplicate name。节点名称必须唯一。
怎么解决:给其中一个节点改名,代理组里的引用也一起改。
常见问题
引用的是代理集合(proxy-providers)?
代理组用 use 引用代理集合时,名字写错同样会报 not found。核对 use 里写的名字和 proxy-providers 下面的名称是否一致。节点从代理集合里加载不出来的情况,见 订阅里的节点数为 0。
还是没解决?
把客户端名称、版本和完整的报错信息发给我们(不要包含订阅链接),我们会补充到这一页。提交反馈