本文详解Shadowrocket脚本功能的核心用法,包括rewrite重写、mitm抓包、cron定时任务等自动化配置,帮助iOS用户实现流量智能分流与高效跨境访问。
Shadowrocket脚本功能概述
Shadowrocket作为iOS平台主流的网络加速工具,其脚本功能支持自动化流量处理,脚本基于JavaScript语法,可在流量经过时执行自定义逻辑,实现广告拦截、域名分流、请求修改等高级功能。
核心脚本类型包括:
- rewrite:请求/响应体重写
- mitm:HTTPS证书解密与抓包
- cron:定时执行任务
- script:流量过滤与分流逻辑
脚本环境配置步骤
证书安装与信任
使用mitm功能前需配置HTTPS证书:
- 进入Shadowrocket设置 → HTTPS解密 → 安装证书
- 打开iOS设置 → 通用 → 关于本机 → 证书信任设置
- 启用对应证书信任
脚本文件导入
支持本地脚本文件与URL远程脚本两种方式:
- 本地导入:通过Files应用分享至Shadowrocket
- 远程订阅:添加脚本URL自动更新
常用脚本配置示例
广告拦截脚本
// 常见广告域名拦截
const adDomains = [
'ads.example.com',
'analytics.example.com',
'tracking.example.com'
];
if (adDomains.some(domain => $request.host.endsWith(domain))) {
$response.status = 404;
$response.body = '';
}
自动分流脚本
// 根据域名特征分流
const proxyDomains = ['netflix.com', 'youtube.com', 'google.com'];
const directDomains = ['baidu.com', 'taobao.com'];
if (proxyDomains.some(d => $request.host.endsWith(d))) {
$proxy = true;
} else if (directDomains.some(d => $request.host.endsWith(d))) {
$direct = true;
}
Cron定时任务
定时切换节点或更新订阅:
// 每6小时自动切换节点
const rule = {
cron: '0 */6 * * *',
event: function() {
// 切换至下一个可用节点
$notification.post('节点切换', '已自动切换至最优节点', '');
}
};
代理组类型与分流规则
代理组类型选择
| 类型 | 原理 | 适用场景 |
|---|---|---|
| select | 手动选择节点 | 需要指定节点 |
| url-test | 自动测速选择延迟最低 | 日常访问 |
| fallback | 优先使用第一个可用节点 | 稳定性优先 |
分流规则优先级
DOMAIN-SUFFIX(域名后缀) > DOMAIN(精确域名) > IP-CIDR(IP段) > GEOIP(国家/地区) > FINAL(默认)
示例规则配置:
rules: - DOMAIN-SUFFIX,netflix.com,Netflix - DOMAIN,www.google.com,Google - IP-CIDR,10.0.0.0/8,DIRECT - GEOIP,CN,DIRECT - FINAL,Proxy
常见问题FAQ
脚本无法执行
现象:配置脚本后无效果
原因:未开启脚本功能或证书未信任
解决:确认设置中已启用对应脚本类型,HTTPS解密需信任证书
证书信任失败
现象:mitm抓包显示安全警告
原因:证书未在系统设置中完全信任
解决:进入设置 → 通用 → 关于本机 → 证书信任设置手动开启
脚本导致应用闪退
现象:打开特定应用时Shadowrocket闪退
原因:脚本逻辑错误或内存溢出
解决:逐步排查脚本,优先禁用可疑脚本
节点订阅配置建议
配置好脚本后,需要稳定的节点订阅才能实现流畅的跨境访问体验,建议选择支持多协议(vmess、trojan、ss)的订阅服务,节点覆盖常用地区,对于4K视频需求选择高带宽节点,游戏加速选择低延迟线路,办公场景优先稳定性和安全性。
通过合理配置Shadowrocket脚本功能,可实现广告自动拦截、流量智能分流、请求自动化处理等高级功能,大幅提升跨境网络访问效率。
