故障排查
前提
代理 App 版必须开启开关、重写、脚本、MitM(并信任证书)功能,且模块/脚本下载成功。功能没开,一切排查都无从谈起。
代理 App 版排查
以 Sub-Store 模块为例(BoxJs / Script Hub 同理,只是地址不同):
确认模块和脚本都下载成功
浏览器访问
https://sub.store/api/utils/env(注意是 https),应能看到版本号注意
该请求走的是
sub.store重写域名:若 MitM/重写未生效(往往正是排查原因),请求会发往公网 sub.store,存在数据泄露风险。建议先按 sub.store 域名说明 将sub.store映射到127.0.0.1再做验证。如果报错,尝试访问
http://sub.store/api/utils/env(注意是 http):若成功,说明是 MitM / 证书信任 的问题还是不行的话,一般是请求没有进重写:检查重写、脚本功能是否开启
其他常见问题:
- Shadowrocket / Surge 上刷新就失败:尝试调小请求并发数
- QX(macOS)请求超时:参考 QX 相关讨论(并发/超时设置)
- Stash 异常:参考 Stash 社区的排查帖
- 前端不是官方
sub-store.vercel.app:需要在模块参数cors中配置 CORS allowlist - macOS:可用
surge-cli dump profile effective | grep sub.store检查当前配置中的 Sub-Store 相关项;若其他模块覆盖了hostname(规范的模块应使用hostname = %APPEND%或%INSERT%),删除模块重装、把模块优先级调到最高,或检查模块内容
如仍不行,带日志向对应代理 App 的开发者反馈,而不是在群里反复提问。
自建 / Docker / Android 版排查
- 检查日志:
docker logs -f --tail 100 sub-store,应能看到[FRONTEND] :::3001与[FRONTEND -> BACKEND]转发日志 - 检查端口:
docker ps,应能看到0.0.0.0:3001->3001/tcp(仅本机监听时显示127.0.0.1) - 本机验证:
curl http://127.0.0.1:3001/<后端前缀>/api/utils/env应返回 JSON(含version) - 依次用「部署机 IP」→「反代域名 http」→「反代域名 https」重复上面的验证,逐步定位是哪一层的问题
- 前端能打开但设置后端失败:查看浏览器控制台。常见原因是 HTTPS 前端访问 HTTP 后端(混合内容),可:
- Chrome:
chrome://settings/content/insecureContent - Edge:
edge://settings/privacy/sitePermissions/allPermissions/insecureContent - 添加允许访问的后端地址
- Chrome:
- 使用非官方前端时,注意
SUB_STORE_CORS_ALLOWED_ORIGINS(2.38.0 起需要设置 CORS allowlist);若要使用脚本操作、脚本过滤或修改响应,必须设置SUB_STORE_FRONTEND_BACKEND_PATH(不想改路径可设SUB_STORE_FRONTEND_BACKEND_PATH=/),或改用SUB_STORE_BACKEND_CUSTOM_NAME
订阅拉取失败或协议不全
- 机场订阅优先使用 mihomo 订阅,避免 Shadowrocket 等可能含非标准 URI 的订阅
- 浏览器能打开、Sub-Store 拉不到:在订阅设置中把 User-Agent 改成你浏览器的 User-Agent
- 代理 App 里能用、浏览器打不开:机场限制了 User-Agent,可尝试常见客户端的 UA(如
clash.meta/v1.19.99、v2ray等) - 浏览器也打不开:给该订阅分流换节点,或尝试不走代理
- 证书报错(如日志出现
unable to verify the first certificate):仅在确认信任该机场时,可在订阅链接结尾加上#insecure跳过 TLS 校验;否则中间人可替换订阅内容,风险等同于订阅走明文。优先与机场确认证书链/CDN 配置,而不是关闭校验 - 超时:在订阅编辑页把超时调大(如 10000ms)重试;客户端自身超时无法调整时,可把超时调小并开启组合订阅的「忽略失败的远程订阅」,或配置定时同步到 Gist 后让客户端使用 Gist 链接(同步任务不存在超时问题)
- 已知问题:使用 CF 节点访问 CF 订阅链接会报错,跟踪见 Sub-Store#324
前端没更新到新版:清除 PWA 缓存
- 尝试前端最后一个 tab 页面左上角的刷新/清理按钮
- 删除桌面图标,关闭之前打开的前端页面,杀掉浏览器后台
- 重新打开浏览器访问前端地址,应刷新出最新版
脚本请求超时
使用脚本(尤其未开缓存时)可能导致每次请求耗时过长而超时,可选用:
- 方案 1:配置 Gist 定时上传,客户端拉取 Gist 链接(定时任务没有超时限制)
- 方案 2:在脚本中开启缓存(一般为
cache参数设为true),并配合定时处理订阅预热缓存 - 方案 3:创建同步配置,设置定时并选择订阅(不上传产物),定时触发处理
合理的反馈方式
遇到节点转换/处理结果不对时,请提供:
- 原始订阅内容(可导出为文件)
- 你配置的处理操作与期望结果
- 后端日志
这样可复现并定位问题。更多排查细节见折腾啥博客:代理 App 版排查、自建/Android 版排查、订阅拉取失败或协议不全。