-
Notifications
You must be signed in to change notification settings - Fork 1.4k
故障排除
| 章节 | 描述 |
|---|---|
| 优先使用 AI 辅助排障 | 使用 OpenClash 作者提供的提示词,让 AI 基于官方指南和实际来源分析问题 |
| 固件类问题 | 推荐固件、不建议的固件、旁路由 |
| 基本故障排查 | OpenClash 官方排障指南 |
| 分流和访问问题 | 直连与非直连访问、DNS 泄漏等 |
| 配置生成与转换错误 | 配置更新失败、校验失败解决方案 |
| 其他问题 | OpenClash 启动异常及注意事项 |
Important
对于并非由本项目引起的故障,维护者无法保证解决;仅在时间允许的情况下提供有限协助。
Note
- OpenClash 自身的问题,请前往 OpenClash 仓库反馈;在本项目反馈无法得到有效处理。
- 上游规则存在错误时,请前往对应仓库反馈,或根据需要自行修改。本项目仅集中引用上游规则,维护者无法直接修复上游规则内容。
OpenClash 作者提供了一套面向 AI 的排障方法:先让 AI 获取并阅读 OpenClash 项目维护的权威参考指南,再根据指南、官方文档、项目源码和 GitHub Issues 分析问题。这样可以降低 AI 凭记忆回答、使用过时信息或编造配置的风险。
该提示词不限定具体的 AI,适用于 ChatGPT、Claude、Gemini、DeepSeek、Copilot 等能够访问网页或检索代码的 AI。
Important
必须确认 AI 已成功读取权威参考指南,再参考它给出的排障结论。 该指南会随 OpenClash 更新,不能用 AI 的既有知识或曾经保存的旧版本代替。
- 打开任意支持网页访问或代码检索的 AI,新建对话,并开启联网、网页浏览或深度研究功能(如有)。
- 完整复制下方提示词,不要删除其中的参考指南链接、信息来源优先级和回答规则。
- 在提示词最后的「我的问题是:」后填写问题描述,然后一并发送给 AI。
- 建议同时提供 OpenClash 版本、固件名称及版本、运行模式、故障现象、完整错误信息、复现步骤,以及出现问题前做过的改动。
- 如果已有调试日志,可以同时提供;向第三方 AI 提交前,请先隐藏订阅地址、认证信息、公网 IP、MAC 地址等敏感内容。
- 检查 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 等不同架构,已长期稳定运行。
-
ImmortalWrt:GitHub
-
ImmortalWrt Downloads:下载地址
-
ImmortalWrt Firmware Selector:官方发布版本下载和在线定制固件
项目维护者会尽力确保本项目内容与此固件兼容,并及时进行更新适配。
OpenWrt 官方版本可作为备选。由于其软件源中不包含 OpenClash,需要自行安装相关依赖,并将 dnsmasq 替换为 dnsmasq-full。
上述两款是本项目唯二推荐用于软路由的固件;其他固件一概不推荐。
Warning
以下类型的固件不建议使用:
-
老版本固件: 指版本号低于相应源码当前稳定版的固件。
-
某些「深度定制」的修改版固件: 如「某 Store」固件。
-
臃肿的「高大全」固件: 多见于「某山论坛」,其中发布的自编译固件质量参差不齐。
-
「大杂烩」式的定制固件: 例如
openxxx.ai的定制固件。
推荐首选 ImmortalWrt 官方固件,备选 OpenWrt 官方固件。
原则上不推荐任何第三方编译固件(即非源码作者发布的固件),无论固件作者知名度如何。强烈建议使用官方固件,或通过官方 Firmware Selector 生成个性化固件。
如果没有修改源码的明确需求,就没有必要自行编译固件或使用他人编译的固件;官方 ASU 已可满足相关需求。
Note
如果官方发布版固件的默认容量不足,可以借助 owut 持久记录目标根文件系统大小。首次改变分区大小仍存在丢失配置的风险,操作前务必备份并确认恢复路径。扩容教程
Note
以上建议基于本项目维护者以往的个人经验,可能随时间变化,也不代表任何第三方立场。请根据实际环境评估。
注意: 若使用不在推荐范围内的固件,出现问题时请优先向对应固件维护者咨询。
Tip
自行编译或在线编译固件时,请使用 firewall4(fw4,基于 nftables)。
Caution
本项目只验证主路由环境,不提供旁路由配置和故障排查支持。旁路由的流量路径、DNS 和网关关系与本文基准不同,不能直接套用主路由步骤。
旁路由问题请向所参考教程的作者或对应方案维护者咨询。需要了解本项目选择主路由作为文档基准的原因时,可阅读关于「旁路由」的一些吐槽;该页面属于维护者观点,不是操作步骤。
出现异常时,请先按照 OpenClash 官方步骤排查:查看网络连接异常排查指南。
本项目的分流策略会将不属于 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 内核。
如果某些常见站点无法按直连逻辑绕过内核,请分别确认以上两个条件。
处理方法:
- 更新 GeoIP 数据库、GeoSite 数据库和直连白名单。
Important
请先更新 GeoIP 数据库、GeoSite 数据库和直连白名单。
数据过旧或加载异常时,直连分流可能失效,直连域名也可能进入内核并导致性能下降。
数据库或白名单未更新是常见原因之一,但模板规则顺序、Provider 状态、DNS 路径、流量接管和自定义覆写也可能改变结果。更新 GeoIP、GeoSite 和直连白名单后,仍应根据实际命中规则继续判断。
即使是常见域名,也不能仅凭域名知名度推断其是否应绕过内核。请以当前配置和连接记录为准。
如认为规则存在分流错误,请先在 Zashboard 中确认对应域名命中的策略组及其引用规则,再前往对应项目的仓库反馈。
此类问题提交到本项目 Issues 后,维护者通常会建议按照上述流程排查;时间允许时,也可能协助定位。
确认小众域名存在误分流后,可以在 GitHub Issues 中反馈。维护者会视情况临时添加直连规则,并定期向上游规则仓库提交 PR。
首先请确认:
-
对应域名返回的是直连地址,而不是 Fake-IP。
-
关闭 OpenClash 后,可以正常访问。
对于绕过内核的域名,OpenClash 仅影响域名解析。
Tip
可以尝试禁用「追加上游 DNS」,并在「NameServer」中启用一个或多个可用的 DoH DNS 服务器地址。
下载流量的分流建议如下:
可以按独立下载设备的 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
将 80 和 443 以外的端口设置为直连。
在策略组中将「非标端口」设为直连,可以让 80 和 443 以外的下载流量直连。如需同时让使用 80 或 443 端口的下载流量直连,请将「漏网之鱼」设为直连。
小众域名分流异常,可参考 关于小众域名收录。
- 检查 Zashboard 中对应的策略组是否选择了正确的出站项。
例如,某个策略组默认指向当前配置中不存在的分组或出站项时,对应访问将会失败。此时需要手动切换到其他可用项。
部分策略组提供了便于首次使用的默认选项;如果不符合实际情况,请自行调整。
Tip
如果策略组的默认选项不可用,请先在 Zashboard 中切换到可用项后再测试。
如果 OpenWrt 中部署了 DDNS 服务,并使用第三方 DDNS 服务商的 API,DDNS 域名可能被错误设置为 Fake-IP。
Tip
将相关服务商的 API 域名加入「Fake-IP Filter」。
参考:https://github.com/Aethersailor/Custom_OpenClash_Rules/issues/83
如果某些应用或服务更新异常(例如一直转圈),可以尝试在「流量控制」中为相关域名添加例外规则,例如加入「绕过指定区域 IPv4/IPv6 黑名单」,然后重启 OpenClash 并观察是否恢复。
非直连站点无法访问,且内核日志中没有对应记录时:
-
清空「流量控制」→「WAN 接口名称」中的设置。
-
确认 dnsmasq 的 DNS 重定向功能已关闭。
-
检查设备的 DNS 是否指向运行 OpenClash 的 OpenWrt。
-
检查 OpenClash 是否为 dnsmasq 的上游服务器。
-
使用
nslookup检查非直连域名是否返回 Fake-IP,例如198.18.0.1;实际地址范围以当前fake-ip-range配置为准。 -
启用 IPv6 时,建议关闭通过 RA 和 DHCPv6 向下游设备通告 IPv6 DNS 的相关选项,使下游设备使用路由器的 IPv4 地址进行 DNS 查询;不要关闭 SLAAC 地址分配本身。
Caution
本项目方案已经过维护者长期使用验证。出现 DNS 泄漏时,请先按照下方流程检查实际解析链路,再判断问题来自模板、插件、固件还是客户端设置,避免在缺少证据的情况下直接归因。
出现 DNS 泄漏时,先检查 DNS 解析流程是否正确。
正确的解析流程应为:设备 → OpenWrt dnsmasq(53 端口)→ OpenClash(7874 端口)。
出现泄漏时,先使用以下命令确认设备(如 PC)的上游 DNS 是否为 OpenWrt,以及能否取得 Fake-IP:
nslookup www.google.com返回结果应显示 DNS 服务器为 OpenWrt 的地址,解析结果为 Fake-IP 地址范围内的地址。
如果未取得 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 配置,重启系统并重新配置。
本项目规则默认将 Steam 设为直连。如果希望 Steam 的登录、商店或社区等流量使用「非直连」策略,需要在控制面板中为 Steam 策略组选择合适的出站项。
Tip
在 Zashboard 中,将 Steam 策略组设为所需的出站项,即可让 Steam 除下载以外的流量按该策略组处理。
路径: OpenClash →「覆写设置」→「规则设置」。
-
勾选「自定义规则」。
-
在框内按需添加规则。
-
保存设置后,重启 OpenClash 即可生效。
规则中已将 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}在 OpenClash 的「订阅转换服务地址」下拉列表中选择可用的转换服务,例如:
api.asailor.org
如果列表中没有,可以手动填写:
https://api.asailor.org/sub
本项目的规则模板默认使用 jsDelivr CDN,通常可在多数网络环境中正常访问。
如果仍不稳定,请根据转换服务所在的网络环境更换可用下载源,并确认转换服务能够访问对应地址。
如果使用转换服务后发现策略组结构与本文或截图差异较大,通常表示模板或规则未正确拉取,或缓存尚未更新。
建议先查看「运行日志」,确认模板地址和下载源可用,再重新更新配置。
本项目主要提供模板、规则文件和 OpenClash 设置方案。所有设置操作均基于 OpenClash 图形界面,不涉及超出常规范围的系统修改。出现异常时,应结合运行日志,从插件版本、固件、转换服务、其他插件和实际配置等方面逐项排查。
建议在主路由环境中使用。
旁路由或二级路由相关设置仅供参考,仍需根据实际环境调整并验证。
如需反馈问题,请在 GitHub Issues 中附上运行日志和复现步骤。
Important
OpenClash 设置和本项目模板具有较强的普适性。 按照方案设置后如出现异常,请先从插件版本、固件、转换服务、其他插件和客户端设置等常见因素查找原因;如有明确证据指向本项目内容,请附上日志和复现步骤反馈。
可能原因包括 OpenClash 的 dev 版本、Clash 内核、转换服务、其他插件、第三方编译固件、老旧固件、OpenWrt 设置错误,以及某些设备的内置 DNS 等。
若证据表明问题来自上述因素,则通常不属于本项目模板或规则的处理范围,请按照对应方向排查。此类 Issue 将被直接关闭,不再解答。
Tip
本项目 Telegram 讨论群组:Custom OpenClash Rules
本项目及相关项目的更新信息均统一在群组内发布,包括不定期整理的常见问题解决方案。