Stash 排查指南
Stash 是 iOS 上基于 Clash 配置格式的客户端,与 Shadowrocket 的定位差异明显:Shadowrocket 以节点列表为中心,Stash 以配置文件为中心。这个差异决定了两者的故障面不同——Stash 的问题多数出在配置文件与覆写规则上,而不是单个节点。
导入订阅
Stash 把订阅当作配置文件管理:
- 从服务商面板复制订阅地址(选择 Clash 格式,服务商通常提供多种格式的地址);
- Stash 首页 → 配置 → 右上角添加 → 粘贴地址 → 保存;
- 下拉刷新以更新配置。
如果服务商提供了一键导入按钮,效果等同。注意选对格式:把非 Clash 格式的订阅地址导入 Stash,会出现"添加成功但没有节点"或解析报错,这与账号或网络无关。
覆写机制:强大也最容易出问题
Stash 的**覆写(Override)**允许你在不修改原始订阅的前提下调整规则、DNS、节点分组。它解决的是"服务商配置不合心意"的问题,但也是排查时的头号变量:
- 覆写里的自定义 DNS 会取代配置文件的 DNS 设置,配错会导致解析异常;
- 覆写的规则可能把某些域名错误地送去直连或拒绝;
- 覆写在配置更新后依然生效——换了订阅问题依旧,容易误判成服务商的问题。
排查任何"部分网站不通"的问题,先临时停用全部覆写复测。这一步能立刻分清是配置问题还是链路问题。
日志与连接信息
Stash 的诊断入口比多数 iOS 客户端完善:
- 日志页显示内核输出,配置解析失败的原因在这里;
- 连接页实时显示当前会话及其匹配到的规则——这是判断"这个请求走了代理还是直连"最直接的证据,比任何猜测都快。
看到某个域名的连接匹配到了 DIRECT 规则,"开了代理却打不开"的谜底就已经揭晓了,相关分析见测速正常但网页打不开。
常见现象对照
| 现象 | 可能原因 | 对应文档 |
|---|---|---|
| 添加配置后没有节点 | 订阅格式不是 Clash 格式 | 订阅返回网页 |
| 配置更新失败 | 订阅过期 / 经失效代理更新 | 订阅更新失败 |
| 已连接但部分网站不通 | 覆写规则或 DNS 配置 | 已连接却无法上网 |
| 节点全部超时 | 网络限制 / 流量耗尽 | 所有节点同时超时 |
| 长时间使用后断流 | 长连接被中间层清理 | 空闲连接被切断 |
| 证书相关报错 | 系统时间偏差 | 系统时钟偏差 |
与 Shadowrocket 怎么选
两者都是成熟的 iOS 客户端,取向不同:
- Stash:配置文件模型、覆写能力强、连接页可视化规则匹配,适合需要精细分流的用户;
- Shadowrocket:节点列表模型、上手直接、协议覆盖广,适合"导入即用"的需求。
服务商同时标注支持两者时按习惯选;只标注其一时跟随标注。Shadowrocket 的具体排查见Shadowrocket 指南,选购层面的说明见Shadowrocket 机场推荐。
iOS 的排查限制与取证
iOS 沙盒内没有终端,无法运行完整诊断。取证路径与其他 iOS 客户端一致:用 Stash 的日志页与连接页取本地证据,同时在桌面端用同一订阅复现并取链路证据:
connproof diagnose 节点域名 --port 节点端口桌面复现失败说明问题在链路或服务端;桌面正常而 iPhone 失败,回到覆写与配置检查。手机侧的基础状态也可以用浏览器在线检测快速看一眼。