Shadowrocket(小火箭)
Shadowrocket 是 iOS/iPadOS 平台最成熟的网络代理客户端,基于系统级 VPN 框架开发,提供完整的代理解决方案,作为 iOS 首选代理工具,其核心优势在于:
- 全协议支持:兼容 Shadowsocks、VMess、Trojan、Hysteria、Reality 等主流协议
- 智能分流系统:基于域名、IP、GEOIP 的精细化路由规则,支持自定义脚本
- MitM 与重写:支持 HTTPS 解密、请求/响应重写、JavaScript 脚本注入
- 流量分析:实时网络监控、连接日志、流量统计图表
- 系统级集成:通过 VPN 扩展实现全局代理,支持 Widget 与快捷指令自动化
操作教程:小火箭快捷指令自动化配置
前置准备与权限配置
确保设备已安装 Shadowrocket(需美区 Apple ID 购买)和快捷指令 App。
系统要求:
iOS版本: ">= 14.0"
小火箭版本: ">= 2.2.30"
权限设置:
- VPN配置权限: 已授权
- 本地网络权限: 已开启
- URL Scheme: 已启用
进入 设置 > 快捷指令 > 高级,开启"允许运行脚本"和"不确认直接运行"。
获取小火箭 URL Scheme 参数
Shadowrocket 支持通过 URL Scheme 进行外部控制,基础格式如下:
shadowrocket://{action}?{parameters}
常用控制指令:
# 打开/关闭代理
shadowrocket://toggle
shadowrocket://connect
shadowrocket://disconnect
# 切换指定配置
shadowrocket://config?url={订阅链接编码}
# 打开特定策略组
shadowrocket://route?policy={策略组名}
创建基础自动化快捷指令
步骤 A:创建切换节点指令
- 打开"快捷指令"App,点击右上角 新建
- 添加操作:网页 > 打开 URL
- 输入 URL(示例为切换到指定节点):
// 编码后的订阅配置或节点信息 let nodeConfig = "shadowrocket://switch?host=server.example.com&port=443&password=base64encoded&method=aes-256-gcm";
步骤 B:创建代理开关指令
- 添加操作:脚本 > 运行 JavaScript
- 输入代码:
// 获取小火箭当前状态并切换 var url = "shadowrocket://toggle"; var app = Application.openURL(url); completion(app);
配置自动化触发条件
场景 A:基于 Wi-Fi 连接的自动切换
- 进入"自动化"标签页,点击 创建个人自动化
- 选择 无线局域网 > 选择特定网络(如公司 Wi-Fi)
- 添加操作:打开 App 选择 Shadowrocket,或直接使用 URL Scheme
- 配置连接公司 Wi-Fi 时关闭代理:
触发条件: "无线局域网" 等于 "Company-WiFi" 执行动作: - 打开URL: "shadowrocket://disconnect" - 显示通知: "已切换至直连模式"
场景 B:定时自动切换节点
- 选择 特定时间 触发(如每天 8:00)
- 添加 获取 URL 内容 操作,用于获取最新订阅
- 配置更新配置并切换:
# 更新订阅链接(需提前编码) shadowrocket://config?url=https%3A%2F%2Fexample.com%2Fsub%3Ftoken%3Dxxx
高级自动化:基于地理位置的智能分流
配置地理围栏自动化:
- 创建自动化选择 到达/离开 特定位置
- 添加 如果 条件判断,检查当前网络状态
- 使用 Scriptable 或 Shortcuts 的 Get Contents of URL 配合小火箭 API:
// 通过 Scriptable 实现复杂逻辑
let sr = new Shadowrocket();
await sr.switchPolicy("自动选择", "DIRECT");
// 或调用外部 API 获取最优节点
let response = await fetch("https://api.example.com/best-node");
let data = await response.json();
let scheme = `shadowrocket://switch?host=${data.host}&port=${data.port}`;
Safari.open(scheme);
调试与异常处理
添加错误捕获机制:
快捷指令结构:
1. 获取当前IP地址 (网络操作)
2. IP地址 包含 "国内IP段"
- 执行: 打开URL shadowrocket://disconnect
3. 否则
- 执行: 打开URL shadowrocket://connect
4. 显示结果通知
5. 等待 2 秒
6. 获取当前IP (验证代理是否生效)
调试技巧:
- 在快捷指令中添加 快速查看 操作查看 URL 编码是否正确
- 使用 显示结果 输出 Shadowrocket 的返回状态
- 检查 设置 > 隐私与安全 > 分析与改进 > 分析数据 中的 Shadowrocket 日志
一键导入配置(高级)
创建包含完整配置的快捷指令:
{
"action": "config",
"url": "https://example.com/config.conf",
"auto_update": true,
"update_interval": 86400,
"fallback": "DIRECT",
"rules": [
"DOMAIN-SUFFIX,apple.com,DIRECT",
"GEOIP,CN,DIRECT",
"FINAL,PROXY"
]
}
通过 Base64 编码 后生成:
shadowrocket://config?url=base64encodedstring
注意事项:
- iOS 16+ 系统需在 屏幕使用时间 > 内容和隐私访问限制 中允许快捷指令运行
- 部分 URL Scheme 需小火箭保持后台运行才能响应
- 建议配合 Focus 模式(专注模式)实现场景化自动切换