针对 Shadowrocket(小火箭) 的系统资源占用优化,主要从规则精简、功能调优、连接管理三个维度入手,以下是具体优化方案:
规则集优化(最关键)
规则数量直接影响内存和CPU占用:
精简规则数量
-
删除冗余规则:将数千条规则精简到 500 条以内
-
合并同类规则:使用
DOMAIN-SUFFIX替代大量DOMAIN规则# 低效(占用高) DOMAIN,google.com DOMAIN,googleapis.com DOMAIN,googleusercontent.com # 高效 DOMAIN-SUFFIX,google.com -
使用优化版规则:采用 ACL4SSR、ConnersHua 等维护的精简规则,避免使用"全量版"
优化规则匹配顺序
- 将高频访问域名放在前面(如 Apple、Microsoft 相关)
- 使用
GEOIP和IP-CIDR减少域名解析压力
功能设置调优
日志级别调整
设置 → 通用 → 日志级别:
- 改为 "警告" 或 "错误"(默认"信息"会持续写入日志消耗IO)
- 定期清理日志文件(设置 → 通用 → 清除日志)
关闭非必要功能
| 功能 | 建议设置 | 原因 |
|---|---|---|
| IPv6 | 关闭(或"仅直连") | 双栈解析增加DNS查询负担 |
| HTTP/HTTPS 抓包 | 关闭 | 实时解密分析消耗大量CPU |
| MitM | 关闭(除非需要解密HTTPS) | 证书验证开销大 |
| 脚本执行 | 关闭不用的脚本 | JS引擎持续占用内存 |
DNS 优化
设置 → DNS → 高级:
- 启用 "DNS 缓存"(Cache)
- 使用 DoH/DoT 替代传统UDP DNS(减少重试)
- 限制并发DNS服务器数量(2-3个即可,避免同时查询过多)
节点与连接管理
节点列表精简
- 删除失效节点:保留常用节点(建议 ≤10 个)
- 关闭自动测试:设置 → 延迟测试方法 → "手动"(避免后台持续ping)
- 禁用自动切换:关闭"自动选择最快节点"(持续测速耗电)
协议选择
- 优先使用:Trojan、VLESS(轻量级协议)
- 避免使用:大量插件叠加的 VMess(如多次混淆+WebSocket+TLS)
- 关闭 MUX 多路复用(如果延迟不高,反而增加CPU计算)
后台策略
设置 → 通用 → 后台运行:
- 关闭"始终开启"(Always On)- 除非需要持续代理
- 开启"按需连接"(On-Demand)替代持续连接
- 调整心跳包间隔:设置为 60-120 秒(默认30秒太频繁)
系统级优化
iOS 系统设置
- 设置 → 通用 → 后台App刷新:关闭小火箭(依赖VPN隧道保持,不需要系统级刷新)
- 屏幕使用时间:检查是否有异常后台活动
配置文件优化
手动编辑配置(文本模式):
dns-direct-system = true # 直连使用系统DNS,减少查询
监控与验证
如何查看资源占用:
- 设置 → 统计:观察内存使用(正常应 <80MB)
- iOS 设置 → 电池:查看小火箭后台活动占比
- CPU 占用:连接后若手机发热明显,说明规则或脚本存在死循环
快速检查清单
- [ ] 规则数量 < 500 条
- [ ] 日志级别设为"警告"
- [ ] IPv6 已关闭
- [ ] 节点数量 < 10 个
- [ ] 自动延迟测试已关闭
- [ ] 后台刷新已关闭
优化后预期效果:内存占用从 150MB+ 降至 50MB 以下,后台CPU活动减少 70%,续航提升明显。
如果仍有问题,建议导出配置检查是否有循环引用规则或高频定时脚本(如每秒执行的脚本)。