{关键词},前言,为什么需要自动化?

导读:

  1. 基础准备与核心协议
  2. 五大实战场景配置
  3. 进阶技巧与故障排除
  4. 安全与隐私建议

小火箭(Shadowrocket)× 快捷指令(Shortcuts)深度自动化指南:打造iOS智能网络工作流

在iOS生态中,Shadowrocket(小火箭)作为专业的网络代理工具,与系统级快捷指令(Shortcuts)的结合,能够突破"手动切换节点、被动应对网络环境"的局限,实现场景感知、条件触发、智能调度的网络自动化体验。

本指南将从URL Scheme协议、自动化触发器、实战工作流三个维度,构建一套完整的智能网络管理体系。


基础准备与核心协议

1 环境要求

  • iOS版本:iOS 14.0+(支持自动化触发)
  • Shadowrocket版本:2.2.0+(完整URL Scheme支持)
  • 权限配置:设置 → 快捷指令 → 开启"允许不受信任的快捷指令"

2 小火箭URL Scheme协议详解

小火箭支持以下核心指令格式,这是构建自动化的基础:

// 基础控制
shadowrocket://toggle          // 切换连接状态(开/关)
shadowrocket://connect         // 强制连接
shadowrocket://disconnect      // 强制断开
// 节点切换(需配置特定节点)
shadowrocket://switch?host=服务器地址&port=端口&password=密码&method=加密方法
// 策略组切换(高级)
shadowrocket://policy?group=策略组名&policy=节点名

重要提示:涉及敏感参数的URL Scheme建议通过Base64编码或配合快捷指令的"词典"功能动态构建,避免明文存储。


五大实战场景配置

基于地理位置的智能节点切换

需求:到达公司自动切换办公节点,回家切换家庭宽带节点,外出使用高速节点。

配置步骤

  1. 创建个人自动化 → 选择"到达/离开"地点

  2. 添加操作

    • 操作1:获取当前WiFi名称(过滤条件:若WiFi名为"Office-5G")
    • 操作2:打开URL → shadowrocket://policy?group=Auto&policy=Office_Node
    • 操作3:显示通知"已切换至办公网络"
  3. 蜂窝网络兜底

    • 添加"离开"触发器,当离开家庭位置且连接蜂窝数据时
    • 执行:shadowrocket://policy?group=Auto&policy=HK-HighSpeed

优化技巧:配合"获取当前网络详情"判断信号强度,若4G信号<2格,自动切换至延迟更低的节点。


定时任务与专注模式联动

需求:深夜自动切换至省电节点,工作时间启用分流模式,睡眠时段完全断开。

配置方案

深夜省电模式(22:00-07:00)

  • 触发:特定时间(每天22:00)
  • 动作:
    1. 运行JavaScript(通过小火箭API获取当前流量)
    2. 若当日流量>10GB,执行shadowrocket://policy?group=Auto&policy=SaveTraffic_Node
    3. 开启iOS低电量模式(系统操作)

专注模式深度集成

  • 工作专注模式启动时 → 切换至"Work"策略组(屏蔽娱乐网站但保留开发工具代理)
  • 个人专注模式 → 切换至"Global"策略组
  • 睡眠专注模式 → 执行shadowrocket://disconnect并开启飞行模式(可选)

一键网络诊断与智能选优

需求:自动测试多个节点延迟,选择最优节点并连接。

快捷指令构建逻辑

// 在快捷指令的"运行JavaScript"中使用
var nodes = ["Node_A", "Node_B", "Node_C"];
var bestNode = "";
var minDelay = 9999;
for (var node of nodes) {
  // 通过小火箭的HTTP API获取延迟(需开启小火箭API访问)
  var url = "http://127.0.0.1:9090/proxies/" + encodeURIComponent(node) + "/delay?timeout=5000";
  var req = new XMLHttpRequest();
  req.open("GET", url, false);
  req.send();
  if (req.status == 200) {
    var delay = JSON.parse(req.responseText).delay;
    if (delay < minDelay) {
      minDelay = delay;
      bestNode = node;
    }
  }
}
// 返回最优节点名称供后续URL Scheme使用
completion(bestNode);

后续操作

  • 使用"打开URL":shadowrocket://policy?group=Auto&policy=[最优节点变量]
  • 添加震动反馈与语音播报"已切换至延迟XX毫秒的最优节点"

流量监控与限额提醒

需求:实时监控流量使用,接近套餐限额时自动切换至备用节点或断开连接。

实现方案

  1. 获取流量数据

    • 通过小火箭的http://127.0.0.1:9090/traffic API获取实时流量统计
    • 或使用快捷指令的"获取文件"读取小火箭的本地日志(需开启iCloud同步)
  2. 逻辑判断

    • 若本月流量 > 80%套餐限额 → 发送通知并切换至"Limited"节点(低带宽模式)
    • 若流量 > 95% → 执行shadowrocket://disconnect并弹窗提醒
  3. 自动化触发

    • 设置每小时自动运行一次
    • 或每次打开特定App(如YouTube、Netflix)前检查流量

跨设备状态同步(高级)

需求:iPhone切换节点后,自动同步至iPad或Mac(需配合其他工具)。

技术路线

  • iPhone执行切换后,通过快捷指令的"发送消息"至Telegram/微信文件传输助手
  • iPad端设置快捷指令监控剪贴板或接收特定消息,触发本地小火箭切换
  • 或使用iCloud Drive作为状态标记:iPhone写入节点名称至特定文件,iPad通过"获取文件"读取并执行对应URL Scheme

进阶技巧与故障排除

1 静默运行优化

为避免每次自动化运行时弹出通知干扰:

  • 在快捷指令末尾添加"退出快捷指令"操作
  • 系统设置 → 屏幕使用时间 → 查看所有活动 → 快捷指令 → 关闭通知(iOS 15+方法可能变化)

2 错误处理机制

在关键节点切换前添加"获取网络状态":

  • 若当前无网络连接,延迟30秒后重试
  • 若切换失败(通过检测小火箭VPN状态),回退至默认节点并发送错误日志

3 与Scriptable联动

对于复杂逻辑(如基于Ping测试的智能路由),可在Scriptable中编写JavaScript,通过快捷指令调用:

// Scriptable代码示例
let widget = new ListWidget();
let req = new Request("http://127.0.0.1:9090/proxies");
let json = await req.loadJSON();
// 处理节点数据...
Script.setShortcutOutput(bestNode);

4 常见问题解决

Q:URL Scheme执行无反应?

  • 检查小火箭是否后台运行(iOS限制,建议保持后台刷新开启)
  • 确认节点名称URL编码正确(含空格或特殊字符需encodeURIComponent)

Q:自动化触发延迟严重?

  • iOS的"到达/离开"定位触发有5-10分钟延迟属正常
  • 改用"连接至特定WiFi"触发更即时

Q:API访问被拒绝(127.0.0.1:9090)?

  • 小火箭设置 → 开启"允许来自局域网的访问"
  • 快捷指令中需先"获取URL内容"再解析JSON

安全与隐私建议

  1. 敏感信息保护:避免在快捷指令中硬编码服务器密码,建议使用iCloud钥匙串配合"获取密码"操作
  2. 自动化审计:定期检查"自动化"列表,删除不再使用的触发器,防止位置信息过度收集
  3. 网络隔离:工作流涉及API调用时,确保0.0.1:9090仅本地可访问,公共WiFi环境下慎用自动连接功能

通过小火箭与快捷指令的深度整合,iOS设备能够实现从"人适应网络"到"网络适应人"的转变,无论是基于地理位置的智能分流、基于时间的策略调度,还是基于流量消耗的自我保护,这套自动化体系都能显著提升网络使用体验。

建议从简单的"连接家庭WiFi自动切换节点"开始,逐步构建复杂的条件判断网络,最终形成个性化的iOS智能网络中枢

本文基于Shadowrocket 2.2.45及iOS 17系统测试,不同版本功能可能存在差异。

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