本文深入解析Shadowrocket脚本模块的底层逻辑,详解全局路由四种工作模式的适用场景,提供从基础配置到高级优化的完整操作路径,帮助用户实现国际网络加速的精细化管控。
脚本功能的核心价值
小火箭脚本功能使用的本质是通过JavaScript引擎实现HTTP/HTTPS请求的实时拦截与修改,与静态规则不同,脚本支持动态逻辑判断,可针对特定API响应体进行重写,适用于解锁区域限制内容或优化跨境办公网络体验。
基础配置流程:
- 启用脚本模块:设置 → 脚本 → 开启总开关,建议同时打开「自动更新」确保规则库时效性
- 配置MITM证书:生成或导入CA证书,在「通用→关于本机→证书信任设置」中开启完全信任
- 添加脚本规则:支持本地文件(.js)与远程URL订阅,远程脚本需设置更新周期(建议86400秒)
- 域名白名单设置:在脚本配置顶部声明需解密的域名,格式为
hostname = *.example.com, *.api.com
全局路由四种模式的技术差异
小火箭脚本功能使用的效果直接受「全局路由」选项控制,四种模式决定流量是否经过脚本引擎处理:
| 模式 | 流量走向 | 脚本执行 | 适用场景 |
|---|---|---|---|
| 配置 | 按规则分流 | 是 | 精细化学术资源访问 |
| 代理 | 全部走节点 | 否 | 临时全局加速 |
| 直连 | 全部本地出口 | 否 | 纯国内网络环境 |
| 场景 | 按WiFi/蜂窝自动切换 | 视场景而定 | 多网络环境自适应 |
关键区别:仅「配置」模式支持脚本解析与MITM解密,选择「代理」会强制所有流量通过远程节点,本地脚本规则完全失效;「场景」模式需预先定义不同网络环境下的策略组,适合经常在办公室WiFi与移动数据间切换的跨境办公用户。
高级脚本参数配置
针对复杂网络环境,建议采用以下优化参数:
[Script]
http-response ^https?:\/\/api\.example\.com\/requires-body=1,max-size=0,script-path=scripts/rewrite.js
http-request ^https?:\/\/.*\.example\.com\/header script-path=scripts/header.js,tag=HeaderModify
[MITM]
hostname = api.example.com, *.edu.cn, *.githubusercontent.com
passphrase = 1234
p12 = MIIDXTCCAkWgAwIBAgIJAJC1HiIAZAiUMA0GCSqGSIb3Q...
参数详解:
requires-body=1:启用响应体修改,适用于解锁4K流媒体或去除广告max-size=0:取消响应体大小限制,防止大文件截断force-http-engine-hosts:强制指定域名走HTTP引擎,绕过系统代理tag:为脚本添加标识,便于在日志中快速定位
典型问题诊断(FAQ)
现象:脚本规则已启用但特定App无法连接,提示SSL错误
原因:该App采用SSL Pinning证书锁定,MITM解密被拦截;或域名未完整列入白名单
解决:检查脚本配置中的hostname列表是否包含该App所有API域名;临时切换至「代理」模式测试节点连通性,确认非节点问题后,在「设置→通用」中排除该App的代理
现象:电池消耗异常,Shadowrocket后台活动占比过高 原因:脚本正则表达式过于宽泛导致循环匹配,或规则频繁触发重定向 解决:优化正则表达式,避免使用通配符;在「设置→高级」中启用「按需连接」与「低数据模式」;检查脚本逻辑是否存在死循环
现象:部分HTTPS页面显示「不受信任的证书」警告 原因:MITM证书过期或安装不完整,iOS系统级信任未开启 解决:重新生成CA证书并安装描述文件;进入「设置→通用→VPN与设备管理」确认证书状态;检查系统时间是否准确
节点选择与脚本协同策略
小火箭脚本功能使用的最终效果取决于底层节点质量,脚本负责流量分拣与头部修改,节点负责实际传输,对于需要稳定访问国际学术数据库的场景,建议搭配具备BGP优化线路的专线节点,延迟可控制在150ms以内;普通网页浏览可选择Anycast中转节点,性价比更高。
选择服务商时,重点考察:IP池更新频率(防止目标站点封锁)、是否支持UDP转发(影响部分实时应用)、以及是否提供针对特定流媒体优化的解锁节点,建议每月测试节点速度,剔除失效线路,保持脚本规则与节点配置的同步更新,确保国际网络加速体验的持续稳定。