Skip to content

故障排除

Aethersailor edited this page Feb 6, 2026 · 101 revisions

故障排除

📋 快速导航

章节 描述
固件类问题 推荐固件、不建议的固件、旁路由
基本故常排查 OpenClash 官方排障指南
分流和访问问题 直连/非直连访问、DNS 泄漏等
配置生成/转换报错问题 配置更新失败、校验失败解决方案
其他问题 OpenClash 启动异常及注意事项

Important

非本项目原因导致的故障,不保证解决,维护者仅能在时间充足的情况下,出于热心进行指导和协助。

Note

  • OpenClash 自身问题,请去 OpenClash 仓库反馈,在本项目反馈是没用的。
  • 上游规则错误,请去规则对应仓库反馈,或者自行修改。本项只是对上游规则的一个集中引用,作者无法解决规则本身的问题。

固件类问题

推荐固件

Note

以下固件推荐仅面向软路由用户,硬路由用户请自行挑选无线信号最好的固件(例如某些包含了闭源驱动固件)。

Tip

强烈推荐使用 ImmortalWrt 官方发布版

  • 选择版本:Stable Release 或 Snapshot 版本均可。注意 Snapshot 默认不带 luci,建议使用 Firmware Selector 生成带 luci 的固件再刷入。

    • 喜欢追新:使用 Snapshot 版本。

    • 喜欢稳定:使用 Stable Release 版本。

  • 有个性化需求:使用 Firmware Selector 在线生成自带插件的固件,无需编译知识。

推荐更新方式:使用值守式系统升级(luci-app-attendedsysupgrade)或 owut 一键生成带当前插件的固件并刷入。

Note

  • 首次刷入固件,你可以直接刷入官方发布版,再手动安装插件。也可以使用 Firmware Selector 生成带你需要的插件的固件再刷入,比如增加 luci、luci-app-openclash 等插件。
  • 下一次升级时,只要你安装的插件都是来自官方软件源的插件,值守式系统升级会生成完全一样的固件刷入,实现保留配置和插件的平滑升级。
  • 官方发布版固件可以很方便的借助 owut 实现扩容,不影响升级。扩容教程

如何方便的在每次升级后更新 dev 版本的 OpenClash:参考以下内容:dev 版本爱好者如何便捷的升级插件

本项目维护者部署的多台设备均使用 ImmortalWrt SNAPSHOT,使用场景包括家庭以及生产环境下的主路由,包含 X86、ARM 等不同架构的设备,常年运行均未出现任何问题。

项目维护者确保本项目内容保证和此固件完美兼容,并及时进行更新适配。

OpenWrt 官方版本作为备选,因为它的软件源中没有 OpenClash,注意需要自行安装相关依赖,并将 Dnsmasq 替换为 Dnsmasq-full

以上两款固件是唯二推荐使用的固件,对于软路由而言,其他固件一概不推荐

不建议使用的固件

Warning

以下类型的固件不建议使用:

  • 老版本固件:指所有版本号低于对应源码的 Stable Release 版本号的固件

  • 某些"深度定制"的魔改固件:如 某Store 固件。

  • 臃肿的"高大全"固件:多见于某山论坛,由于论坛完全无门槛,成了许多菜比发布自编译垃圾固件的集中地。

  • "大杂烩"式的"定制"固件:例如 openxxx.ai 的定制固件。

推荐首选 ImmortalWrt 官方固件,备选 OpenWrt 官方固件

原则上不推荐任何第三方编译固件(非源码作者发布的固件),无论固件作者多么有名强烈建议使用官方固件(即源码作者发布的固件文件)或者使用官方的 Firmware Selector 生成个性化固件。

如果没有修改源码的刚需,就没有任何必要自行编译固件或使用他人编译的固件,官方的 ASU 完全可以满足需求。

Note

很多人觉得官方发布的固件容量不够用 官方发布版固件可以很方便的借助 owut 实现永久扩容,不影响升级。且操作简单到右手就行,不需要使用网上任何复杂的扩容教程。扩容教程

Note

以上建议,完全是基于本项目维护者过去的个人经验做出的,不具有时效性,不代表任何立场,且不一定完全正确,请自行斟酌和尝试。

注意:若使用不推荐的固件,出现问题请自行解决,或者用了谁的固件你去问谁,不要问我。

Tip

自编译/在线编译固件,务必使用 Firewall4(Nftables)。


不建议使用旁路由

Caution

旁路由是一种错误的组网设置,强烈建议使用主路由组网,抛弃旁路由。

个人观点:关于旁路由的一些吐槽

维护者观点如无必要,勿增实体,大到设备,小到插件,原则皆是如此。关于旁路由问题,不做任何解答。

谁教你用旁路由的,你就去找谁提问,不要在本项目提问。


基本故常排查

出现异常,请先按照 OpenClash 官方的排障步骤排查问题:点击前往


分流和访问问题

一些直连网站/APP/小程序打不开

本项目分流策略对于不属于 geosite:cn 的域名,在未命中特定规则时,默认按“非直连”策略处理。

geosite:cn 对部分小众域名的收录难免有遗漏。有些地区性网站/APP/小程序带有访问地域限制(例如本地水电煤气缴费),若被误判为“非直连”反而会无法连接。遇到此类问题,请为对应域名增加直连规则。

Tip

设置"漏网之鱼"策略组直连,即可临时解决这个问题,漏网之鱼直连后将无法通过 DNS 泄露测试,但不存在真正意义上的 DNS 泄露。

同时,有时间和兴趣的用户,在遇到此类情况时,建议通过 zashboard 观察对应连接命中的域名,并通过 Issue/PR 的方式提交,维护者会视情况将对应域名提交至上游规则中。

模板的影响范围

模板不会影响 GeoSite 范围内的直连域名访问问题,分流异常通常源于上游规则。

模板只是一个对上游第三方规则的集中引用,模板自身并不会导致分流问题;分流异常往往由上游规则碎片引起。直连域名和 IP 的分流依托直连白名单与 GEO 数据库完成。

上游规则、直连白名单、GEOIP 数据库、GEOSITE 数据库内容和本项目没有直接关系,它们导致的分流异常情况请不要向我反馈,我也无法解决。有需要请去上游规则的仓库进行反馈。

但就本项目维护者自身经验而言,上游规则碎片和 GEO 数据库很少出现分流错误的问题。偶发性的问题不会对日常使用造成严重影响。

直连绕过异常

Note

正常情况下,包含在 geosite:cn 中,且解析 IP 位于直连白名单中的域名,不应该进入 Clash 内核。

如果遇到某些常见站点无法按直连逻辑绕过内核,请确认以上两点是否符合。

解决方案

  1. 更新 GEOIP 数据库、GEOSITE 数据库和直连白名单。

Important

更新 GEOIP 数据库、GEOSITE 数据库和直连白名单!

一定要更新,否则直连分流可能失效,直连域名进入内核导致性能下降。

如果常见站点出现分流不正常,通常说明 OpenClash 的数据库/白名单未更新或加载异常,请先更新 GEOIP、GeoSite 和直连白名单。

正常情况下,除非是小众域名,否则直连连接不应进入内核。

如果你认为规则出现了分流错误,请自行进入 zashboard 检索对应域名命中的策略组,以及相关策略组引用的规则,然后至对应项目的仓库反馈。

此类问题如果发 issue ,可能会得到类似回答,或者在维护者时间充足的情况下,有可能会引导排查相关故障。

小众域名若存在误分流,可在 GitHub Issues 中反馈,维护者会视情况临时添加直连规则,并定期提交 PR 至上游规则仓库。

开启 OpenClash 的情况下某些绕过内核的访问卡顿

首先请确认:

  1. 对应域名返回的是直连地址而非 Fake-IP

  2. 关闭 OpenClash 的情况下,可以正常访问

对于绕过内核的域名,OpenClash 只影响域名解析

Tip

可以进行如下尝试:禁用"追加上游 DNS",在 Nameserver 下启用一个或多个可用的 DoH DNS 服务器地址。

BT 和 PT 等下载流量分流问题

针对下载流量分流的建议:

1. 独立下载设备

请为独立下载设备的 IP 地址设置直连规则,即可令下载机全部流量走直连。

建议修改 覆写设置 > 规则设置 > 自定义规则 > 上方文本框内容

如果下载设备是 NAS 这样的独立设备,自行替换规则中的 IP 地址为下载设备的局域网地址。

假设下载机局域网地址为 192.168.1.201

- SRC-IP-CIDR,192.168.1.201/32,DIRECT

如果你按照本项目的 IPv6 设置方案开启了 IPv6 设置,那么建议同时添加一条 IPv6 直连规则。

查看下载机的 IPv6 地址后缀(前缀由运营商下发,后缀由 EUI64 生成),然后添加规则:

# 假设下载机 IPv6 地址后缀为 a1b2:c3d4
- SRC-IP-SUFFIX,::a1b2:c3d4,DIRECT

自定义规则设置示例

2. 非独立设备

设置 80/443 以外端口直连。

设置策略组中设置"非标端口"策略组直连,可规避 80/443 端口以外的所有下载流量。如需避免 80/443 端口下载流量,请设置"漏网之鱼"直连

小众域名

小众域名分流异常,可参考 关于小众域名的收录

某些策略组对应的站点/服务打不开?

  1. 检查 zashboard 中对应的策略组是否选择了正确的出站项。

例如,某个策略组默认指向了你配置中不存在的分组/出站项,那么对应访问就会失败。此时需要你手动切换为其他可用项。

部分策略组给了一个“默认选择”,只是为了便于首次使用;不符合你实际情况时,自行调整即可。

Tip

不要一上来就抱怨不能用,先在 zashboard 里选好可用项再说

DDNS 服务工作异常

如果你的 OpenWrt 中部署了 DDNS 服务,并且使用了第三方 DDNS 服务商的 API,有可能会出现 DDNS 域名被错误设置为 Fake-IP 的情况。

Tip

将相关服务商的 API 域名填入 Fake-IP Filter 中即可。

参考:https://github.com/Aethersailor/Custom_OpenClash_Rules/issues/83

某些应用更新异常

如果遇到某些应用/服务更新异常(一直转圈)的问题,可尝试在 流量控制 中为相关域名添加例外规则(例如加入 绕过指定区域 IPv4/IPv6 黑名单),并重启 OpenClash 观察是否恢复。

非直连站点打不开

非直连站点打不开,并且内核日志里没有访问记录

  1. 清空"流量控制 > WAN 接口名称"。

  2. 确保 dnsmasq 的 DNS 重定向功能已关闭。

刚配置完成就开始出现 DNS 泄漏与解析异常

  1. 检查设备的 DNS 是否指向了 OpenClash 所在的 OpenWrt

  2. 检查 OpenClash 是否为 Dnsmasq 的上游服务器

  3. 使用 nslookup 检查非直连域名是否返回 Fake-IP(如 198.18.0.1 这样的 198 开头的地址)

  4. 开启 IPv6 的情况下,建议关闭路由的 SLACC 和 DHCPv6 中分配 IPv6 DNS 的相关设置,强迫下游设备使用路由的 IPv4 地址解析 IPv6 域名请求

DNS 泄露

Caution

不要一上来就怀疑本项目的配置方案和模板有问题,项目维护者可以承诺以上内容没有任何会导致 DNS 泄露的问题,任何质疑都是浪费你我的时间。

出现 DNS 泄露,首先检查你的 DNS 解析流程是否正确

正确的解析流程应当是 设备 > OpenWrt Dnsmasq(53端口) > OpenClash(7874端口)

出现泄露,先使用以下命令确认你的设备(如 PC)的上游 DNS 是否为 OpenWrt,是否可以取得 Fake-IP:

nslookup www.google.com

返回的结果,应当显示你的 DNS 服务器地址为 OpenWrt 的地址,并且结果为 Fake-IP 地址范围的地址。

nslookup 命令输出示例

如果取得的不是 Fake-IP 或者上游 DNS 地址不对,说明你的设备的上游 DNS 不是 OpenWrt,先自行解决这个问题。此类问题纯属个人设置导致的,与本项目无关,请勿提问。

旁路由用户常见此问题,一定要手动指定 IPv4 DNS 为 OpenWrt 的局域网地址,并将 IPv6 DNS 留空。

如果设备的上游 DNS 地址为 OpenWrt 的地址,但是返回的不是 Fake-IP,说明你的 Dnsmasq 的上游 DNS 不是 OpenClash。如果你已经严格按照本项目的方案配置了 OpenClash,是不可能出现这种情况的。

请再次检查 OpenClash 设置,以及 OpenWrt 中是否启用了其他会劫持 53 端口或者改变 Dnsmasq 上游服务器参数的插件。

如果是所有配置完美无瑕,正常使用一段时间无泄露,升级 OpenClash 或者内核后,莫名其妙的开始泄露

Tip

重启设备再测试,如果还泄露,按照上面的步骤检查,如果设置没问题,还原 OpenClash 配置,重启系统后,重新配置

还原 OpenClash 配置

Steam 无法登录/无法访问商店或社区等页面

本项目规则中 Steam 默认直连。如果你希望 Steam 的登录/商店/社区等流量走“非直连”策略,需要在控制面板里为 Steam 策略组选择合适的出站项。

Tip

在 zashboard 中,将 Steam 策略组设为你希望使用的出站项,即可让 Steam 除下载以外的流量按该策略组处理。

如何添加自定义规则

路径:OpenClash 覆写设置 > 规则设置

  1. 勾选"自定义规则"。

  2. 在框内按需添加规则。

  3. 保存设置后,重启 OpenClash 即可生效。

Cloudflare Tunnel 连接不正常

规则内已指定 Cloudflare Tunnel 相关的域名直连,相关连接不受分流影响。

Cloudflared 默认使用 QUIC 连接,而海外 QUIC 流量默认被 OpenClash 阻断,如果 Cloudflared 无法回落到 HTTP/2 则会出现连接不正常的情况。

请使用 --protocol 参数显式指定 Cloudflared 使用 HTTP/2 进行传输,以 docker 版为例:

services:
  cloudflared:
    image: cloudflare/cloudflared:latest
    container_name: cloudflared
    restart: unless-stopped
    network_mode: host
    command:
      - tunnel
      - --no-autoupdate
      - --protocol
      - http2
      - run
      - --token
      - ${CF_TUNNEL_TOKEN}

配置生成/转换报错问题

配置生成失败的通用处理

在 OpenClash 的 订阅转换服务地址 下拉列表中,选择一个可用的转换服务即可。例如:

api.asailor.org

如列表中没有,可手动填写:

https://api.asailor.org/sub

自托管转换服务无法拉取模板/规则

本项目的规则模板默认使用 jsDelivr CDN,通常在多数网络环境下可用。

如仍不稳定,请根据转换服务所在网络环境替换为可用的下载源,并确保转换服务能访问对应地址。

zashboard 中的规则分组和本项目的不一致

如果你使用了转换服务但发现策略组结构与本文/截图差异很大,通常是模板/规则没有被正确拉取或缓存未更新。

建议先查看 运行日志,确认模板地址与下载源可用,再重试更新配置。


其他问题

OpenClash 不能启动或者其他错误

本项目提供的仅仅是模板/规则文件以及 OpenClash 有关的设置方案,且所有设置操作均基于 OpenClash 的图形界面,没有任何超出常规范围的设置和修改,因此不会导致 OpenWrt 以及 OpenClash 工作异常。不要怀疑设置是否有问题。

建议使用主路由工作环境。

旁路由/二级路由相关设置基于本人对 OpenWrt 以及 OpenClash 的理解而形成,理论上不会导致问题,请自己根据实际情况调整。

有问题可以在 GitHub Issues 中反馈,并附上运行日志与复现步骤。

注意事项

Important

OpenClash 设置以及本项目模板具有普适性,按照方案设置后如果有异常,请从方案和模板以外的因素自行查找原因。请不要怀疑本项目的方案是否有错误,这只会浪费你的时间。

故障原因包括但不限于 OpenClash Dev 版本自身、Clash 内核自身、转换服务亦或是搭配其他插件、他人编译的固件、老旧的固件版本、OpenWrt 设置错误,以及某些设备内置 DNS 等原因。

以上原因均与本项目内容无关,请自行排查故障。相关 issue 将被直接关闭,不再予以解答。

关注更新通知

Tip

本项目通知频道:https://t.me/custom_openclash_rules

有时候推送一些普遍性问题的解决方案


⬆️ 返回顶部

Clone this wiki locally