Clash报错常见问题与解决方法:订阅失败、YAML、TUN和端口错误
- Clash教程
- 11小时前
Clash报错大多集中在订阅、配置文件、规则、DNS、TUN 模式、端口和客户端运行环境这几类。本文整理Clash中遇到的常见问题和解决方法,不同客户端的报错会有差异,但 Clash for Windows、Clash Verge Rev、FlClash、OpenClash、Mihomo、Clash Meta 的处理方法大体相近。
1. Clash报错中的订阅失败和配置文件下载失败
有些订阅在 Clash for Windows 里能用,换到 Clash Verge Rev 后报 failed to fetch remote profile: Failed to send HTTP request。这类错误通常还没走到节点连接那一步,客户端只是没把配置文件拿下来。
把订阅地址复制到浏览器里打开,是最直接的验证办法。正常情况下,页面应返回 YAML 内容;如果跳出登录页、HTML 错误页、空白页,或者链接无法访问,Clash 自然无从解析。浏览器也无法访问时,先换网络或打开系统代理;浏览器能正常访问时,可以手动保存 YAML 再导入。遇到 CFW 无法下载配置文件、FlClash 不能添加配置,也先按这个办法验证订阅本身。参考:clash-verge-rev issue #4301。

2. Clash报错中的 YAML 解析失败
OpenClash 更新订阅后启动失败,日志里有时会出现 cannot unmarshal !!bool false into config.RawConfig。这句话绕,意思倒简单:内核本来要读一份 YAML,结果拿到的是 false,或者别的根本不像配置文件的内容。
这时不要只检查订阅链接,还要确认实际下载到本地的配置文件。文件开头如果出现 false、HTML、错误提示、空内容,问题多半在订阅服务或转换后端。可以更换订阅转换后端,或让服务商直接提供 Clash/Mihomo 格式。参考:OpenClash issue #4573。

3. unsupported rule type RULE-SET
OpenClash 加了第三方规则后起不来,日志提示 unsupported rule type RULE-SET,这通常是内核能力跟不上配置写法。配置里用了 RULE-SET,当前运行的内核却不认识它。
比较稳妥的处理方式,是换成支持 rule providers 的 Clash Premium、Clash Meta 或 Mihomo 内核。倘若只能继续用旧内核,就把 RULE-SET 改写成普通 DOMAIN-SUFFIX、IP-CIDR 一类规则。规则本身未必错,只是写法超出了内核的理解范围。参考:OpenClash issue #1229。
4. Selector not found
Clash Verge Rev 校验配置时,可能写着 proxy group[2]: Selector: 'west.derozan.xyz' not found。这不像网络故障,更像名单对不上:代理组引用了一个节点名,可 proxies 列表里没有这个节点。
打开最终 YAML,直接搜索报错里的节点名。如果它只出现在 proxy-groups,没有出现在 proxies,就删掉这个引用,或者换成真实存在的节点名。Merge、Script、节点过滤规则也可能把节点筛掉,排查时可以先临时关掉,避免过滤规则影响判断。参考:clash-verge-rev issue #3382。

5. profile does not contain proxies
profile does not contain proxies or proxy-providers 是很典型的导入失败提示。OpenClash 里类似的说法是 proxy group[0]: use or proxies missing。它们指向同一件事:配置里没有可用节点,或者策略组没有正确引用节点来源。
先检查最终 YAML 里有没有 proxies: 或 proxy-providers:。完全没有,就回头查订阅服务端或订阅转换后端;有节点但代理组为空,就检查每个 proxy-groups,至少要有 proxies: 或 use:。空组可以删掉,也可以改成真实存在的节点名或 provider 名称。参考:OpenClash issue #978。
6. default nameserver 为空
OpenClash 的 DNS 页面明明填过,启动时仍报 default nameserver should have at least one nameserver。常见原因是只写了 DoH 或 DoT,没有给内核一个可以直接访问的默认 DNS IP。
在 DNS 配置里补上 default-nameserver,至少填一个普通 IP,例如 223.5.5.5、119.29.29.29、8.8.8.8。这一步不能省,因为 Clash 需要先解析那些 DoH/DoT 服务器本身。参考:OpenClash issue #1461。
7. dhcp 这种 DNS 写法不被支持
日志里出现 DNS NameServer[1] unsupport scheme: dhcp,意思是当前内核不能识别 dhcp:// 这种 DNS scheme。配置里写得像“自动获取”,内核读到的却是一种陌生格式。
把 nameserver 改成当前内核支持的格式即可。普通 IP、DoH、DoT 都可以,常见写法包括 223.5.5.5、https://dns.alidns.com/dns-query。如果刚从其他模板复制了一整段 DNS,可以先删掉复杂写法,只保留最简单的一两条测试。参考:OpenClash issue #1608。
8. Clash报错中的端口被占用
bind: address already in use 是端口冲突,常见位置包括 7890、7891、7892、7874、9090。OpenClash 更新后内核反复启动失败,或者网络忽然断掉,很多时候就是另一个进程已经占住端口。
先确认有没有另一个 Clash/Mihomo 进程还活着。Windows 可以检查任务管理器;macOS 和 Linux 可以用 lsof -i :7890 这类命令查占用。冲突确认后,结束残留进程,或修改 mixed-port、redir-port、external-controller。这类问题通常不需要改订阅,处理端口占用即可。参考:OpenClash issue #3187。
9. Clash报错中的 TUN 模式打不开
Clash Verge Rev 在 macOS 上开启 TUN 后,有时会出现全网断开的情况。TUN 要创建虚拟网卡、接管路由,系统权限、服务模式、Helper Tool 任何一环没处理好,都可能冒出 operation not permitted。
macOS 需要允许网络扩展或 Helper Tool;Windows 通常要安装 Service Mode,必要时以管理员身份运行;Linux 要检查 capability 或 root 权限。若某个版本集中出现 TUN 问题,先升级到后续修复版,或者临时回退稳定版。别把权限问题误判成节点问题。参考:clash-verge-rev issue #3114,以及 Clash Verge Rev FAQ。
10. 开了 TUN,某些软件仍在直连
浏览器正常,终端、游戏、部分 Electron 应用却还在直连,这种情况常被误认为节点坏了。其实有些软件根本不理系统代理,流量没有进 Clash,节点本身正常也不会生效。
先检查 Clash 的连接列表,目标应用有没有产生连接。需要接管更多流量时,开启 TUN,并检查 auto-route、auto-detect-interface、dns-hijack。不开 TUN 的情况下,终端要单独设置 http_proxy、https_proxy、all_proxy。参考:Clash Verge Rev TUN Guide。
11. Fake-IP 引发局域网异常
Mihomo 文档里有 enhanced-mode: fake-ip,也提供 fake-ip-filter。实际使用时,局域网发现、投屏、路由器后台、部分登录域名和银行类 App,都可能不适合 fake-ip。它不是错误功能,但确实有兼容边界。
把不兼容的域名加入 fake-ip-filter,例如 *.lan、*.local、路由器后台域名、投屏设备域名。若问题明显集中在 DNS,也可以临时把 fake-ip 改成 redir-host 对照测试。参考:Mihomo DNS 文档。
12. rule-provider behavior 写错
Mihomo 的 rule-providers 要求 behavior 和规则内容匹配。域名列表、IP 段、完整 Clash 规则,是三种东西;混在一起填,加载失败并不奇怪。
纯域名规则用 domain,IP 段规则用 ipcidr,完整 Clash 规则用 classical。同时检查 format 和实际文件是否一致,不要把 YAML、text、mrs 格式乱套。这个位置不大,却经常被订阅转换器或复制来的模板影响。参考:Mihomo rule-providers 文档。
13. rule provider 的 YAML 报错
Clash.Meta/Mihomo 初始化 rule provider 失败时,日志里可能出现 mapping values are not allowed in this context。这种错误多半落在规则集文件本身,也可能是规则源返回了 404 或 HTML 错误页。
单独打开规则集 URL,确认返回的是预期规则文件。随后检查冒号、缩进、特殊字符和 payload: 结构。规则源失效时,换源比改客户端设置来得直接。参考:Clash.Meta issue #378。
14. invalid REALITY short ID
Mihomo 配置 VLESS Reality 时,如果出现 invalid REALITY short ID,其中一种典型写法是把 short-id 填成字符串 'null'。Reality 参数要和服务端一致,随意补一个值会导致连接失败。
服务商没有提供 short-id 时,不要写字符串 null;服务商提供了 short-id,就按原值填写。Mihomo VLESS 文档里的示例是类似 0123456789abcdef 的十六进制值。参考:Mihomo issue #2637,以及 Mihomo VLESS 文档。

15. System file not found
Clash Verge Rev FAQ 提到,启动时出现 System file not found,可能和核心文件缺失、应用目录异常、旧版本残留有关。这个问题落在客户端运行环境,不在订阅,也不在节点。
先卸载旧版本,清理残留配置目录,再重新安装最新版。安装后检查 App Directory 里的核心文件是否存在;刚更新后出错的,也可以重新下载完整安装包。参考:Clash Verge Rev FAQ。
16. Clash、FlClash或FIClash打不开
Windows 上 Clash Verge Rev、FlClash 或 FIClash 有时进程还在,窗口却打不开,或者白屏、按钮无反应。搜索里常见的“ficlash打不开”,也可以先按这个方向排查:WebView2、托盘状态、安装目录权限、旧版本残留,逐项检查。
先安装或修复 Microsoft WebView2 Runtime,再重启客户端。还不行,再卸载并重新安装 Clash Verge Rev 或对应客户端。如果只是托盘图标被隐藏,先在系统托盘和任务管理器里确认进程状态,再决定是否清理配置。参考:Clash Verge Rev FAQ。
一张对照表
| 报错关键词 | 优先检查 | 处理办法 |
|---|---|---|
| failed to fetch remote profile | 订阅链接 | 浏览器打开订阅,确认返回 YAML |
| yaml: unmarshal errors | 配置内容 | 检查订阅返回内容和转换器 |
| unsupported rule type | 内核版本 | 升级 Mihomo 或转换规则 |
| Selector not found | 代理组引用 | 修正节点名或关闭过滤脚本 |
| profile does not contain proxies | 节点列表 | 检查 proxies 或 proxy-providers |
| address already in use | 端口占用 | 结束重复进程或修改端口 |
| operation not permitted | TUN 权限 | 安装服务模式或授权网络扩展 |
| fake-ip 异常 | DNS 兼容 | 添加 fake-ip-filter 或改 redir-host |
Clash报错排查思路
排查 Clash 报错时,可以先按模块分流:订阅下载失败归到订阅链接,YAML 解析失败归到配置文件,RULE-SET、rule-provider 这类报错归到规则和内核,DNS、TUN、端口占用则分别检查对应设置。
如果无法判断问题来自哪里,可以先用最小配置测试:一个可用订阅,一个普通端口,暂时关闭复杂规则、脚本和 TUN。基础连接正常后,再依次启用 DNS、rule-providers、TUN 和脚本配置;哪一步启用后出现异常,就优先检查那一项。
相关阅读
- FlClash 使用教程
- Clash Mi 最新保姆级使用教程
- Clash Nyanpasu 使用教程
- Clash for Windows 下载、安装与订阅配置教程
- Clash Windows TUN 模式设置教程
常见问题 FAQ
Clash报错一定是节点失效吗?
不一定。订阅下载失败、YAML 解析失败、规则格式错误、端口占用、TUN 权限不足,都会让 Clash 表现得像“节点坏了”。节点失效只是其中一种,也并不总是最常见的那一种。
为什么同一个订阅在不同客户端表现不同?
客户端用的内核版本、订阅处理方式、规则支持范围不同。同一份订阅,在旧内核里可能卡在 RULE-SET,在新 Mihomo 里却能正常运行。不是玄学,是兼容范围不同。
遇到报错要不要直接重装?
多数时候不用。先确认问题属于订阅、配置、DNS、TUN 还是端口。只有客户端文件缺失、WebView2 异常、版本损坏这类情况,才考虑重装。
Clash无法切换到此配置文件怎么办?
通常是配置文件校验没通过。先确认日志第一条错误,再按 YAML、代理组、规则、DNS、TUN 的顺序排查。不要在界面里反复切配置,具体原因通常已经写在日志里。
FlClash端口是多少,端口冲突怎么处理?
常见 HTTP 端口是 7890,SOCKS 端口常见为 7891,不同配置会改动。遇到 address already in use,先关闭其他代理软件,或在配置里换一个没有被占用的端口。
