Shadowrocket脚本功能使用教程,自动化规则配置实战

本文详解Shadowrocket脚本功能的核心用法,包括rewrite重写、mitm抓包、cron定时任务等自动化配置,帮助iOS用户实现流量智能分流与高效跨境访问。

Shadowrocket脚本功能概述

Shadowrocket作为iOS平台主流的网络加速工具,其脚本功能支持自动化流量处理,脚本基于JavaScript语法,可在流量经过时执行自定义逻辑,实现广告拦截、域名分流、请求修改等高级功能。

核心脚本类型包括:

  • rewrite:请求/响应体重写
  • mitm:HTTPS证书解密与抓包
  • cron:定时执行任务
  • script:流量过滤与分流逻辑

脚本环境配置步骤

证书安装与信任

使用mitm功能前需配置HTTPS证书:

  1. 进入Shadowrocket设置 → HTTPS解密 → 安装证书
  2. 打开iOS设置 → 通用 → 关于本机 → 证书信任设置
  3. 启用对应证书信任

脚本文件导入

支持本地脚本文件与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脚本功能,可实现广告自动拦截、流量智能分流、请求自动化处理等高级功能,大幅提升跨境网络访问效率。

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

暂无相关文章