##判断你属于哪种情况

表现更可能原因检查
OpenClash 更新成功但节点为空订阅不是 Clash/Mihomo YAML,或 YAML 缺少 proxies打开订阅内容看字段
PassWall 订阅保存后没有节点格式不被当前解析器支持换服务端对应导出格式
路由器提示下载失败路由器本机无法访问订阅 URLLuCI 诊断或 SSH 测试
HTTPS 证书错误系统时间错、CA 包缺失同步 NTP,安装 CA 证书
某些新协议节点全失败内核版本旧或依赖没装更新 Mihomo、Xray、sing-box 等内核
两个插件轮流异常DNS 劫持或透明代理冲突一次只启用一个插件

OpenClash 官方仓库定位为 OpenWrt 上的 Clash 客户端,Wiki 也把订阅设置、配置文件管理、DNS、运行状态等作为主要配置入口。PassWall/PassWall2 则是 OpenWrt LuCI 插件,依赖包仓库包含 sing-box、xray-core、hysteria、naiveproxy 等组件。两者都在 OpenWrt 上跑,但订阅格式、依赖和日志入口并不一样。

适用场景与不适用场景

适用:

  • OpenWrt、ImmortalWrt、iStoreOS 或类似 LuCI 固件。
  • PassWall、PassWall2 或 OpenClash 订阅导入失败、节点为空、更新超时。
  • 想判断是订阅格式、路由器网络、插件依赖还是内核版本问题。
  • 家庭路由器、旁路由、软路由都可按本文排查。

不适用:

  • 你还没有安装插件,只是在选择 OpenWrt 固件。
  • 订阅服务本身无法在任何设备打开。
  • 需要重写复杂分流规则或自定义脚本覆写。
  • 路由器硬件存储不足,连基础依赖都无法安装。

确认插件和订阅格式匹配

分清目标插件:

插件更适合的订阅类型不建议直接导入
OpenClashClash/Mihomo YAML,含 proxiesproxy-groupsrulessing-box JSON、纯 v2ray 链接列表、网页登录页
PassWall节点订阅、PassWall 支持的服务端导出、V2Ray/Xray/sing-box 相关格式依赖复杂 provider 的 Clash 完整配置
PassWall2与 PassWall 类似,但更看重当前依赖和内核组件未确认字段支持的新协议配置

检查方法:

  1. 在电脑浏览器打开订阅 URL。
  2. 不要只看「能下载」,要看内容结构。
  3. OpenClash 订阅应能看到 proxies:proxy-groups:rules: 等 YAML 字段。
  4. sing-box JSON 应能看到 { "outbounds": ... } 这类结构,不能直接当 OpenClash 配置。
  5. 如果打开后是登录页、错误页、套餐说明或空白页,插件导入也会失败。

如果你准备多插件切换,最好让服务端分别提供 OpenClash、PassWall、sing-box 等导出,而不是把一个链接到处粘。需要统一多端测试时,可以准备一份配套订阅线路,但导入时仍要选择当前插件支持的格式。

确认路由器本机能拉取订阅

很多人只在电脑浏览器测试订阅,这是不够的。OpenWrt 插件更新订阅时,请求来自路由器本机;电脑能访问,不等于路由器能访问。

LuCI 图形界面检查

  1. 进入 LuCI 后台。
  2. 打开「网络 → 诊断」或固件提供的诊断页。
  3. 对订阅域名做 DNS 解析测试。
  4. 对订阅域名做 ping 或 HTTP 测试。
  5. 如果域名解析失败,修路由器 DNS,再回插件。

SSH 检查

如果你能 SSH 到路由器,可执行:

nslookup example-subscription-domain.com
wget -S -O- 'https://example.com/sub?token=redacted' >/tmp/sub-test.txt

看三件事:

  • 是否能解析域名。
  • HTTPS 返回码是否为 200。
  • /tmp/sub-test.txt 里是不是目标格式,而不是 HTML 错误页。

不要把真实 token 发给别人排查;截图时也要遮住订阅参数。

检查时间、证书、依赖和空间

OpenWrt 上的 HTTPS 问题经常和系统时间、CA 证书有关。

检查项正常状态异常时处理
系统时间与当前时间相差很小配置 NTP,同步后再更新订阅
CA 证书已安装 ca-bundleca-certificates通过软件包管理安装
下载工具curlwget-ssl 可用安装 HTTPS 版本工具
可用空间/overlay 仍有余量清理日志、旧包、临时文件
插件依赖LuCI 插件和内核包匹配补装缺失依赖或使用同源软件包

iStoreOS 用户也建议看这几项。图形界面做了封装,但底层仍是 OpenWrt 包、证书、时间和文件系统。

OpenClash 专项排查

OpenClash 失败时,按这个顺序走:

  1. 进入 OpenClash 的订阅设置页,确认订阅类型没有选错。
  2. 手动更新订阅,记录页面提示。
  3. 打开运行状态或日志页面,看是下载失败、配置解析失败,还是内核启动失败。
  4. 如果下载成功但配置检查失败,把订阅 YAML 另存后检查缩进、字段和 provider。
  5. 更新 Mihomo/Meta 内核,再测试一次。
  6. 暂停 PassWall、SSR Plus+、其他透明代理插件,只保留 OpenClash。

OpenClash 更依赖 Clash/Mihomo 配置语义。即使订阅能下载,只要 YAML 里使用了当前内核不认识的字段,也可能导入后启动失败。

OpenClash 快速定位表

日志关键词或现象含义处理方向
download failed订阅 URL 拉取失败查 DNS、HTTPS、返回码
yaml parse errorYAML 结构错误换导出格式或检查缩进
proxy not found分组引用了不存在的节点重新生成订阅配置
rule provider error规则集下载或格式异常单独测试规则集 URL
core start failed内核启动失败更新内核,看详细日志

PassWall / PassWall2 专项排查

PassWall 的更该先看节点、协议、内核和分流设置之间是否匹配,而不是 YAML 配置文件。

  1. 进入节点订阅页,确认订阅类型和解析模式。
  2. 更新订阅后看节点列表是否新增。
  3. 如果节点有了但不可用,看节点协议对应的内核是否安装。
  4. VLESS、Trojan、Hysteria、TUIC、Shadowsocks 等协议不要混用错误内核。
  5. 检查 DNS 与透明代理模式,避免和 OpenClash 同时接管。
  6. 打开 PassWall 日志,区分「订阅解析失败」和「节点运行失败」。

PassWall/PassWall2 的依赖包仓库包含多个核心组件。插件界面存在,不代表每个协议所需的运行组件都已经装好。

PassWall 快速定位表

表现更可能原因处理方向
更新后节点数为 0订阅格式不被解析换 PassWall 支持的导出
节点存在但启动失败对应内核缺失安装或更新 xray-core、sing-box 等组件
只有部分协议失败单个协议字段不兼容更新内核或改用服务端兼容导出
规则生效混乱DNS/分流设置冲突用默认规则测试,再逐项恢复
重启后配置丢失存储空间或权限问题检查 /overlay 与配置文件权限

避免两个插件互相抢流量

在同一台路由器上同时启用 PassWall 和 OpenClash,是排错时最常见的干扰源。它们都可能改防火墙、DNS、透明代理入口和本机转发规则。

建议这样做:

  1. 先停用所有同类插件。
  2. 只启用 OpenClash,完成订阅更新和访问验证。
  3. 记录可用配置后停用 OpenClash。
  4. 再只启用 PassWall,重复同样验证。
  5. 确认两者单独可用后,再决定保留哪一个。

如果你只是想全家设备走同一套路由规则,通常不需要两个插件同时启用。少一个变量,排障会快很多。

验证是否修好

完成修复后,不要只看「节点出现了」。按下面清单验收:

  • 手动更新订阅成功,日志里没有下载或解析错误。
  • 插件节点列表、分组或策略页能看到预期内容。
  • 重启插件后配置仍存在。
  • 路由器本机 DNS 解析正常。
  • 手机或电脑连接该路由器后,常用海外服务访问结果符合预期。
  • 国内常用服务没有被错误转发到远端 outbound。
  • 停用另一个代理插件后,问题不会再次出现。

验证时选 2 台设备:一台手机、一台电脑。手机可排除电脑本地代理残留;电脑方便看开发者工具和 DNS 缓存。两边都正常,才算配置层面基本通过。

站内延伸阅读