针对 Shadowrocket(小火箭) 的系统资源占用优化,以下是分层次的实用方案,按优先级排序:
规则集优化(影响最大)
精简规则数量
- 目标:保持规则总数在 500-1000 条以内(超过 3000 条会显著增加 CPU 占用)
- 方法:
- 用
DOMAIN-SUFFIX合并大量DOMAIN规则(如用DOMAIN-SUFFIX,google.com替代所有 Google 子域名) - 删除长期不用的国内直连规则,改用
GEOIP,CN,DIRECT兜底 - 移除重复规则(使用「配置」→「编辑」→「去重」功能)
- 用
优化规则匹配逻辑
DOMAIN,mail.google.com
DOMAIN,drive.google.com
# 高效写法(后缀匹配,一次命中)
DOMAIN-SUFFIX,google.com
# 使用 IP-CIDR 替代部分 DOMAIN(减少 DNS 查询)
IP-CIDR,142.250.0.0/16,DIRECT
节点与连接优化
调整超时参数
在「配置」→「编辑」→「通用」中:
- 超时重试:设为
3 次(默认 5 次会增加无效尝试) - 连接超时:设为
5s(默认 10s 过长) - 空闲超时:设为
600s(保持连接但释放长期空闲资源)
限制并发连接数
- 在「服务器」设置中,对 Shadowsocks/Vmess 节点开启 「多路复用」(Mux):
- 并发流:8-16(iOS 建议 8,Mac 可 16)
- 最大流:设为并发流的 2 倍
- 避免在延迟测试时开启「同时测试全部节点」(改为分组测试)
功能开关调优
日志级别(关键)
- 设置路径:「设置」→「日志级别」
- 建议:日常使用设为 「Error」或「Warn」
- 避免:「Debug」或「Verbose」模式(会持续写入磁盘,增加 CPU 和 IO 负担)
关闭非必要功能
| 功能 | 建议 | 原因 |
|---|---|---|
| IPv6 | 关闭(除非网络支持) | 减少 DNS 查询和双栈连接尝试 |
| HTTP 捕获 | 关闭 | 实时抓包极耗内存 |
| MITM | 按需开启 | 证书解密增加 15-20% CPU 负载 |
| 脚本 | 缓存到本地 | 远程脚本每次加载消耗网络资源 |
iOS/macOS 系统级优化
iOS 专属
-
后台刷新策略:
- 设置 → 通用 → 后台 App 刷新 → 关闭 Shadowrocket
- 原理:iOS 代理类 App 在后台保持 VPN 隧道即可,UI 刷新反而增加内存峰值
-
低数据模式:
蜂窝网络设置中开启「低数据模式」,配合小火箭的「按需求连接」
macOS 专属
-
排除本地网络:
- 系统设置 → 网络 → VPN → Shadowrocket → 排除本地网络地址(
168.x.x,x.x.x) - 减少局域网流量经过代理栈
- 系统设置 → 网络 → VPN → Shadowrocket → 排除本地网络地址(
-
内核模式(仅限 M 系列芯片):
- 在「设置」→「高级」中开启 「系统扩展模式」(比用户空间模式 CPU 占用低 30%)
高级调优(进阶用户)
DNS 优化
# 在配置文件的 [General] 段 dns-server = 223.5.5.5, 119.29.29.29 dns-fallback-system = false # 避免双重查询 dns-direct-fallback = true # 直连域名使用系统 DNS
脚本缓存
- 将远程脚本(如京东签到、网易云解锁)下载到 iCloud/本地 引用,避免每次启动拉取
- 使用
script-path指向本地文件而非script-url
内存清理(iOS)
- 每周重启一次小火箭(彻底杀后台再开),清理累积的内存碎片
- 避免同时开启「按场景切换」+「自动选择节点」+「URL 测试」三个自动化功能
监控与验证
检查资源占用的方法:
- iOS:设置 → 电池 → 查看 Shadowrocket 的「后台活动」占比(优化后应 <5%)
- macOS:活动监视器 → 搜索
shadowrocket→ 查看「内存」标签(正常应 <150MB)
优化效果预期:
- CPU 占用:降低 40-60%
- 内存占用:减少 30-50%
- 续航提升:减少 15-20% 的后台电量消耗
注意:如果优化后出现连接问题,请优先检查 规则顺序(DOMAIN 规则应在 IP 规则之前)和 DNS 设置,而非直接恢复默认配置。