Shadowrocket 的节点不是 App 自带的。Apple iTunes API 里的说明也写得很清楚:Shadowrocket 不包含任何代理服务或服务器资源。节点列表空白,看远程 URL 返回了什么。
iPhone 上最方便的第一步是 Safari。用同一条订阅 URL 打开,不要先在 App 里刷新十次。
Safari 里看到什么?
| Safari 结果 | 判断 | 下一步 |
|---|---|---|
| 直接下载或显示节点文本 | URL 本身可能正常 | 回 App 处理缓存和格式 |
| 登录页、账户页 | 拿到的是网页入口 | 换订阅输出链接 |
403 或空白 | 服务端拒绝或无内容 | 检查账号、链接和请求环境 |
| Clash YAML | 需要确认 Shadowrocket 入口是否支持 | 换 Shadowrocket/V2Ray 输出测试 |
| HTML/CSS/JS | 不是节点配置 | 不要继续刷新 App |
如果每行是 ss://、vmess://、trojan:// 这类分享链接,Shadowrocket 通常更容易识别。如果是复杂 YAML,确认你的导入入口支持该格式。
App 内怎么重加远程配置?
保存当前配置截图或导出备份,再删掉出问题的远程配置。重新添加时手动粘贴 URL,避免剪贴板识别失败。
重加后看两个时间:
- 远程配置的更新时间是否变成现在。
- 节点列表是否从 0 变成具体数量。
更新时间没变,说明 App 没拉到新内容。更新时间变了但节点仍是 0,说明内容格式或内容本身有问题。
iOS 剪贴板和配置描述文件要分开
iOS 剪贴板权限只影响 App 能不能从剪贴板读取新链接。它不决定远程配置内容。
Apple 的 iPhone 用户指南有配置描述文件安装/移除说明。某些 VPN 或网络设置如果来自描述文件,应该在系统配置描述文件里管理。但 Shadowrocket 订阅空白,通常先查订阅 URL,不要把所有问题都归到系统描述文件。
多台 iPhone 结果不同怎么办?
先记录这些信息:
- iOS 版本。
- Shadowrocket 版本。
- 同一订阅 URL 在 Safari 里的响应。
- 是否同一网络出口。
- 系统日期是否正常。
服务端可能按请求环境返回不同内容。A 机能拉到文本、B 机返回登录页,这时要把 Safari 的响应截图和 URL 重定向记录下来。
如果手机、电脑和软路由要共用同一份配置,可以准备一份多格式测试订阅源作为多端来源;但 iPhone 空列表仍然先按 Safari 响应查。
怎么确认已经恢复?
恢复后应该满足:
- Safari 能拿到配置文本。
- Shadowrocket 远程配置更新时间刷新。
- 节点数量不为 0。
- 点延迟测试有返回值或明确错误。
- 重启 App 后列表不再清空。
只看到「刷新完成」不够。刷新完成可能只是下载了一个空文件或错误页面。
相关阅读
- Shadowrocket 订阅导入后节点为空 — URL、token 和格式导致的空节点深度排查
- Shadowrocket 订阅更新超时 — 超时类问题的 iOS 端完整排查链路
- Clash Verge Rev 导入订阅后显示 HTML — 桌面端遇到同类问题的处理方式