Skip to content

故障排除

Aethersailor edited this page Aug 23, 2026 · 117 revisions

故障排除

📋 快速导航

章节 描述
优先使用 AI 辅助排障 使用 OpenClash 作者提供的提示词,让 AI 基于官方指南和实际来源分析问题
固件类问题 推荐固件、不建议的固件、旁路由
基本故障排查 OpenClash 官方排障指南
分流和访问问题 直连与非直连访问、DNS 泄漏等
配置生成与转换错误 配置更新失败、校验失败解决方案
其他问题 OpenClash 启动异常及注意事项

Important

对于并非由本项目引起的故障,维护者无法保证解决;仅在时间允许的情况下提供有限协助。

Note

  • OpenClash 自身的问题,请前往 OpenClash 仓库反馈;在本项目反馈无法得到有效处理。
  • 上游规则存在错误时,请前往对应仓库反馈,或根据需要自行修改。本项目仅集中引用上游规则,维护者无法直接修复上游规则内容。

优先使用 AI 辅助排障

OpenClash 作者提供了一套面向 AI 的排障方法:先让 AI 获取并阅读 OpenClash 项目维护的权威参考指南,再根据指南、官方文档、项目源码和 GitHub Issues 分析问题。这样可以降低 AI 凭记忆回答、使用过时信息或编造配置的风险。

该提示词不限定具体的 AI,适用于 ChatGPT、Claude、Gemini、DeepSeek、Copilot 等能够访问网页或检索代码的 AI。

Important

必须确认 AI 已成功读取权威参考指南,再参考它给出的排障结论。 该指南会随 OpenClash 更新,不能用 AI 的既有知识或曾经保存的旧版本代替。

使用方法

  1. 打开任意支持网页访问或代码检索的 AI,新建对话,并开启联网、网页浏览或深度研究功能(如有)。
  2. 完整复制下方提示词,不要删除其中的参考指南链接、信息来源优先级和回答规则。
  3. 在提示词最后的「我的问题是:」后填写问题描述,然后一并发送给 AI。
  4. 建议同时提供 OpenClash 版本、固件名称及版本、运行模式、故障现象、完整错误信息、复现步骤,以及出现问题前做过的改动。
  5. 如果已有调试日志,可以同时提供;向第三方 AI 提交前,请先隐藏订阅地址、认证信息、公网 IP、MAC 地址等敏感内容。
  6. 检查 AI 的回答是否注明了参考指南章节或外部来源。若 AI 无法访问指南链接,请先将 SKILL.md 下载后上传给 AI,或改用具备网页访问能力的 AI,不要让其跳过指南直接猜测。

建议的问题描述格式

描述越完整,AI 越容易缩小排查范围。可以在「我的问题是:」后按照以下格式填写:

OpenClash 版本:
OpenWrt 或 ImmortalWrt 固件及版本:
运行模式(如 Fake-IP、Redir-Host、TUN):
故障现象:
复现步骤:
完整错误信息:
出现问题前做过的改动:
已尝试的排查或处理:
调试日志(已隐藏敏感信息):

可直接复制的完整提示词

# OpenClash 专家助手

你是 OpenClash 专家助手。OpenClash 是 OpenWrt 上管理 Mihomo 内核的 LuCI 插件。

**重要** —— 在回答之前,你必须获取并阅读这份权威参考指南。所有回答规则、诊断流程、CLI 命令、LuCI 路径、外部资源 URL 和 Issue 搜索指引均在指南中定义 —— 请严格遵守。
- [OpenClash 用户指南](https://raw.githubusercontent.com/vernesong/OpenClash/dev/.github/skills/openclash-user-guide/SKILL.md)

指南是唯一权威来源 —— 涵盖从调试日志流程到外部资源查询的所有内容。禁止凭记忆回答,必须对照指南验证。

## 问题

我的问题是:

Tip

建议一次只排查一个主要问题。收到 AI 的操作建议后,先确认其引用来源与适用版本,再逐项执行并记录结果。不要同时修改多个无关设置,否则出现新问题时将难以确定具体原因。


固件类问题

推荐固件

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 在生成升级固件时指定根文件系统大小。首次改变分区大小前必须备份配置,并阅读教程中的平台风险提示。扩容教程

如何在系统升级后更新 OpenClash 的 dev 版本: 参考升级插件至 dev 版本

本项目维护者部署的多台设备均使用 ImmortalWrt SNAPSHOT,涵盖家庭和生产环境中的主路由,以及 x86、ARM 等不同架构,已长期稳定运行。

项目维护者会尽力确保本项目内容与此固件兼容,并及时进行更新适配。

OpenWrt 官方版本可作为备选。由于其软件源中不包含 OpenClash,需要自行安装相关依赖,并将 dnsmasq 替换为 dnsmasq-full

上述两款是本项目唯二推荐用于软路由的固件;其他固件一概不推荐

不建议使用的固件

Warning

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

  • 老版本固件: 指版本号低于相应源码当前稳定版的固件。

  • 某些「深度定制」的修改版固件: 如「某 Store」固件。

  • 臃肿的「高大全」固件: 多见于「某山论坛」,其中发布的自编译固件质量参差不齐。

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

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

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

如果没有修改源码的明确需求,就没有必要自行编译固件或使用他人编译的固件;官方 ASU 已可满足相关需求。

Note

如果官方发布版固件的默认容量不足,可以借助 owut 持久记录目标根文件系统大小。首次改变分区大小仍存在丢失配置的风险,操作前务必备份并确认恢复路径。扩容教程

Note

以上建议基于本项目维护者以往的个人经验,可能随时间变化,也不代表任何第三方立场。请根据实际环境评估。

注意: 若使用不在推荐范围内的固件,出现问题时请优先向对应固件维护者咨询。

Tip

自行编译或在线编译固件时,请使用 firewall4(fw4,基于 nftables)。


旁路由支持边界

Caution

本项目只验证主路由环境,不提供旁路由配置和故障排查支持。旁路由的流量路径、DNS 和网关关系与本文基准不同,不能直接套用主路由步骤。

旁路由问题请向所参考教程的作者或对应方案维护者咨询。需要了解本项目选择主路由作为文档基准的原因时,可阅读关于「旁路由」的一些吐槽;该页面属于维护者观点,不是操作步骤。


基本故障排查

出现异常时,请先按照 OpenClash 官方步骤排查:查看网络连接异常排查指南


分流和访问问题

部分直连网站、App 或小程序无法访问

本项目的分流策略会将不属于 geosite:cn、且未命中特定规则的域名,默认按「非直连」策略处理。

geosite:cn 难免遗漏部分小众域名。某些地区性网站、应用或小程序带有访问地域限制,例如本地水电煤气缴费服务;若被误判为「非直连」,可能无法连接。遇到此类问题,请为对应域名增加直连规则。

Tip

将「漏网之鱼」策略组设为直连,可以临时解决此类问题。设置后可能无法通过 DNS 泄漏检测网站的测试,但这不一定代表实际发生了 DNS 泄漏,应结合真实解析链路判断。

如愿意协助完善规则,可以通过 Zashboard 查看对应连接命中的域名,并通过 Issue 或 PR 提交。维护者会视情况将对应域名提交至上游规则。

模板、配置与上游数据的影响范围

最终分流结果同时受模板中的规则顺序和 Provider 引用、OpenClash 覆写设置、Provider 加载状态、直连白名单以及 GeoIP、GeoSite 数据影响。域名理论上属于某个 GeoSite 分类,不等于当前运行配置一定已经加载并命中该分类。

排查时,先查看 Zashboard 或日志中的实际连接,再核对当前运行配置、命中的规则、Provider 更新时间和 OpenClash 绕过设置。不要仅根据预期分类判断故障来源。

  • 如果模板引用、规则顺序或本项目维护的补充规则有误,请在本项目反馈。
  • 如果最终证据指向上游规则、GeoIP 或 GeoSite 数据,请前往对应上游仓库反馈。
  • 如果 Provider 未更新、配置覆写异常或流量接管不完整,请先按 OpenClash 官方排障指南处理。

直连绕过异常

Note

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

如果某些常见站点无法按直连逻辑绕过内核,请分别确认以上两个条件。

处理方法:

  1. 更新 GeoIP 数据库、GeoSite 数据库和直连白名单。

Important

请先更新 GeoIP 数据库、GeoSite 数据库和直连白名单。

数据过旧或加载异常时,直连分流可能失效,直连域名也可能进入内核并导致性能下降。

数据库或白名单未更新是常见原因之一,但模板规则顺序、Provider 状态、DNS 路径、流量接管和自定义覆写也可能改变结果。更新 GeoIP、GeoSite 和直连白名单后,仍应根据实际命中规则继续判断。

即使是常见域名,也不能仅凭域名知名度推断其是否应绕过内核。请以当前配置和连接记录为准。

如认为规则存在分流错误,请先在 Zashboard 中确认对应域名命中的策略组及其引用规则,再前往对应项目的仓库反馈。

此类问题提交到本项目 Issues 后,维护者通常会建议按照上述流程排查;时间允许时,也可能协助定位。

确认小众域名存在误分流后,可以在 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 地址,再查看该地址的后缀。不要假定客户端使用 EUI-64:现代操作系统可能使用稳定隐私地址或临时地址,本项目 IPv6 设置中的 eui64 只控制 OpenWrt 路由器 LAN 接口自身的地址后缀。地址后缀可能变化时,应先按设备系统的文档配置稳定地址,再添加规则:

# 假设下载机 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;实际地址范围以当前 fake-ip-range 配置为准。

  4. 启用 IPv6 时,建议关闭通过 RA 和 DHCPv6 向下游设备通告 IPv6 DNS 的相关选项,使下游设备使用路由器的 IPv4 地址进行 DNS 查询;不要关闭 SLAAC 地址分配本身。

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。请先修正客户端或网络的 DNS 设置;此类问题不属于本项目规则范围。

旁路由环境中常见此类问题。请手动将 IPv4 DNS 指定为 OpenWrt 的局域网地址,并将 IPv6 DNS 留空。

如果设备的上游 DNS 地址为 OpenWrt,但返回的不是 Fake-IP,说明 dnsmasq 的上游 DNS 未指向 OpenClash。若已严格按照本项目方案配置,则不应出现这种情况。

请重新检查 OpenClash 设置,并确认 OpenWrt 中是否启用了其他会劫持 53 端口或修改 dnsmasq 上游服务器参数的插件。

如果所有配置均正常,且此前使用一段时间未出现泄漏,但升级 OpenClash 或内核后开始出现泄漏,可以尝试以下操作:

Tip

重启设备后再次测试。如果仍有泄漏,请按照上述步骤检查;确认设置无误后,可以还原 OpenClash 配置,重启系统并重新配置。

reset

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

本项目规则默认将 Steam 设为直连。如果希望 Steam 的登录、商店或社区等流量使用「非直连」策略,需要在控制面板中为 Steam 策略组选择合适的出站项。

Tip

在 Zashboard 中,将 Steam 策略组设为所需的出站项,即可让 Steam 除下载以外的流量按该策略组处理。

如何添加自定义规则

路径: OpenClash →「覆写设置」→「规则设置」。

  1. 勾选「自定义规则」。

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

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

Cloudflare Tunnel 连接不正常

规则中已将 Cloudflare Tunnel 相关域名设为直连,相关连接不受代理分流影响。

cloudflared 默认优先尝试 QUIC;在 UDP 不可用时,auto 模式通常会自动回退到 HTTP/2。如果日志显示 QUIC 反复失败,且自动回退后仍不正常,可以显式指定 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}

参考:Cloudflare Tunnel 协议参数


配置生成与转换错误

配置生成失败的通用处理

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

api.asailor.org

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

https://api.asailor.org/sub

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

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

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

Zashboard 中的规则分组与本项目不一致

如果使用转换服务后发现策略组结构与本文或截图差异较大,通常表示模板或规则未正确拉取,或缓存尚未更新。

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


其他问题

OpenClash 无法启动或出现其他错误

本项目主要提供模板、规则文件和 OpenClash 设置方案。所有设置操作均基于 OpenClash 图形界面,不涉及超出常规范围的系统修改。出现异常时,应结合运行日志,从插件版本、固件、转换服务、其他插件和实际配置等方面逐项排查。

建议在主路由环境中使用。

旁路由或二级路由相关设置仅供参考,仍需根据实际环境调整并验证。

如需反馈问题,请在 GitHub Issues 中附上运行日志和复现步骤。

注意事项

Important

OpenClash 设置和本项目模板具有较强的普适性。 按照方案设置后如出现异常,请先从插件版本、固件、转换服务、其他插件和客户端设置等常见因素查找原因;如有明确证据指向本项目内容,请附上日志和复现步骤反馈。

可能原因包括 OpenClash 的 dev 版本、Clash 内核、转换服务、其他插件、第三方编译固件、老旧固件、OpenWrt 设置错误,以及某些设备的内置 DNS 等。

若证据表明问题来自上述因素,则通常不属于本项目模板或规则的处理范围,请按照对应方向排查。此类 Issue 将被直接关闭,不再解答。

关注更新通知

Tip

本项目 Telegram 讨论群组:Custom OpenClash Rules

本项目及相关项目的更新信息均统一在群组内发布,包括不定期整理的常见问题解决方案。


⬆️ 返回顶部

Clone this wiki locally