小火箭脚本功能使用,规则分流与自动化配置详解

Shadowrocket脚本功能可实现智能分流与自动化处理,本文详解脚本配置流程、全局路由四种模式差异及常见问题排查,助你掌握国际网络加速的高级玩法。

脚本功能的核心价值

小火箭脚本功能使用得当,能将繁琐的手动切换转化为自动化流程,通过JavaScript脚本,可实现广告拦截、节点自动切换、特定域名分流等高级操作,满足跨境办公需求与学术资源访问的精细化管控。

配置流程三步走

  1. 获取脚本资源 在配置页面点击「添加模块」,导入包含脚本规则的配置文件,建议从可信仓库获取经过验证的脚本,避免执行恶意代码。

  2. 启用脚本开关 进入「配置」→「编辑配置」→「脚本」,确保开关处于开启状态,检查脚本路径是否正确指向本地或远程URL。

  3. 调试与验证 使用Safari开发者工具或内置日志查看脚本执行状态,遇到报错时,检查JavaScript语法兼容性,小火箭支持ES6部分特性但存在限制。

全局路由四种模式解析

理解「全局路由」设置是掌握小火箭脚本功能使用的关键,四种模式决定流量走向:

配置模式(Config) 根据配置文件中的规则列表进行分流,这是日常使用推荐选项,脚本在此模式下生效,可实现智能判断。

代理模式(Proxy) 所有流量强制走代理节点,无视任何规则,适用于需要全局国际网络加速的特殊场景,但会增加节点负载。

直连模式(Direct) 完全不走代理,相当于关闭加速功能,用于排除本地网络问题或访问纯国内资源。

场景模式(Scene) 根据网络环境自动切换规则,如Wi-Fi与蜂窝数据使用不同配置,配合脚本可实现地理位置感知切换。

实战脚本示例

以下是一个自动选择最快节点的脚本框架:

// 节点延迟测试脚本
const $ = new API();
const nodes = ["节点A", "节点B", "节点C"];
let bestNode = "";
let minLatency = 9999;
nodes.forEach(node => {
  const latency = testLatency(node);
  if(latency < minLatency) {
    minLatency = latency;
    bestNode = node;
  }
});
$.setPolicy(bestNode);
$.done();

将此代码保存为.js文件,在「脚本」→「本地」中导入并关联到特定策略组。

常见问题排查

现象:脚本显示执行成功但规则未生效 原因:脚本修改了策略组,但「全局路由」设置为代理或直连模式,绕过了配置规则。 解决方法:切换至「配置」模式,检查脚本输出日志确认策略变更是否生效。

现象:特定App无法连接,关闭脚本后正常 原因:脚本中的REJECT规则误拦截了该应用的关键域名,或MITM证书配置不当。 解决方法:在脚本日志中查找被拦截的域名,添加白名单规则或调整证书信任设置。

现象:脚本运行导致小火箭闪退 原因:JavaScript内存泄漏或无限循环,部分复杂正则表达式在iOS端执行超时。 解决方法:简化脚本逻辑,避免在script-response-body中处理大体积响应体,改用script-request-header进行轻量判断。

节点选择与脚本配合

脚本功能的发挥依赖稳定的节点质量,对于4K流媒体需求,建议选择具备BGP专线的服务商;游戏场景优先考虑低延迟的IEPL专线;普通学术访问使用普通中转即可。

配置脚本时,建议将高端节点设为「自动测试」组,配合延迟检测脚本实现故障自动切换,避免在脚本中硬编码节点名称,使用策略组变量提高配置可移植性。

进阶优化建议

掌握小火箭脚本功能使用后,可尝试结合「定时任务」实现节点每日自动测速更新,对于多设备用户,建议搭建私有配置仓库,通过URL统一分发脚本更新,确保iPhone与iPad规则同步。

定期清理无效脚本规则,过多的正则匹配会增加CPU占用,影响电池续航,保持小火箭版本更新,新版通常修复JavaScript引擎的内存管理问题。

您可以还会对下面的文章感兴趣: