导读:
针对 Shadowrocket(小火箭) 在 iOS 后台被系统终止(杀后台)的问题,以下是系统性的解决办法,按优先级排序:
iOS 系统设置(关键)
开启后台 App 刷新
- 设置 → 通用 → 后台 App 刷新 → 找到 Shadowrocket → 开启
- 注意:iOS 16+ 系统即使开启,VPN 类应用仍可能被限制,建议同时开启"无线局域网与蜂窝数据"
关闭电池优化
- 设置 → 电池 → 低电量模式 → 关闭(低电量模式会 aggressively 杀后台)
- 设置 → 电池 → 电池健康与充电 → 关闭"优化电池充电"(部分机型)
屏幕使用时间检查
- 设置 → 屏幕使用时间 → App 限额,确认没有给 Shadowrocket 设置时间限制
Shadowrocket 应用内设置
开启"按需连接"(最重要)
- 打开 Shadowrocket → 设置(右下角)→ 始终开启(Connect On Demand)→ 开启
- 这样即使 App 被划掉,系统 VPN 配置仍会保持连接
关闭"自动断开"
- 设置 → 隧道 → 关闭"自动断开"(Auto Disconnect)
开启通知权限
- 设置 → 通知 → Shadowrocket → 允许通知
- iOS 对有通知权限的 App 后台存活更友好
添加小组件(辅助)
- 长按主屏幕 → 添加小组件 → 选择 Shadowrocket
- 虽然主要是快捷操作,但偶尔能触发系统保留进程
进阶解决方案
使用"快捷指令"自动化保持活跃
- 快捷指令 → 自动化 → 创建个人自动化
- 选择"特定时间"(每 30 分钟)或"打开 App"
- 操作选择"打开 App" → 选择 Shadowrocket
- 关闭"运行前询问"
配置文件的"保持连接"参数
在配置文件的 [General] 段添加:
# 自动重连
auto-reconnect = true
避免内存不足被杀
- 定期清理后台其他应用(iOS 内存紧张时会优先杀 VPN 类后台)
- 重启手机后第一时间打开 Shadowrocket 建立连接
iOS 版本差异说明
| iOS 版本 | 后台表现 | 建议 |
|---|---|---|
| iOS 12-14 | 较宽松 | 基本只需开启后台刷新 |
| iOS 15 | 中等严格 | 必须开启"始终开启" |
| iOS 16-17 | 非常严格 | 需配合快捷指令+始终开启 |
如果以上无效
- 重装应用:删除后重新安装(会重置 VPN 配置权限)
- 重置网络设置:设置 → 通用 → 传输或还原 iPhone → 还原 → 还原网络设置
- 检查企业证书:如果是非 App Store 版本,证书过期或撤销会导致频繁掉线
核心原理:iOS 的 VPN 连接实际上由系统守护进程 racoon 或 NEPacketTunnelProvider 维护,只要"始终开启"(Connect On Demand)功能正常开启,即使 App 本身被划掉,VPN 连接理论上仍应保持,如果频繁断开,通常是系统电池管理或网络切换导致。
建议优先确保"始终开启"功能正常工作,这是 iOS 系统级的保活机制。