Shadowrocket 的远程脚本(Remote Script)功能允许你通过 JavaScript 修改 HTTP/HTTPS 请求和响应,实现去广告、解锁功能、数据修改等高级操作。
基本配置格式
在 Shadowrocket 配置文件的 [Script] 部分添加:
[Script] 脚本名称 = type=http-request|http-response,pattern=匹配URL,script-path=远程脚本URL,requires-body=是否需要体,max-size=大小限制,timeout=超时时间
关键参数说明:
- type:
http-request(修改请求)或http-response(修改响应) - pattern: URL 匹配规则(支持通配符 和正则)
- script-path: 远程脚本 URL(HTTPS 链接)
- requires-body:
true/false是否需要处理 body(响应脚本通常需要) - max-size: 最大 body 大小(默认 2048KB)
常见脚本示例
修改响应数据(解锁/去广告)
// 远程脚本示例:修改 JSON 响应
let body = $response.body;
let obj = JSON.parse(body);
// 修改数据,例如解锁会员
obj.data.is_vip = true;
obj.data.vip_expire_time = "2099-12-31";
$done({body: JSON.stringify(obj)});
修改请求头
// 添加/修改请求头
let headers = $request.headers;
headers['User-Agent'] = 'Custom-Agent';
headers['X-Auth-Token'] = 'token_here';
$done({headers: headers});
重定向请求
// URL 重定向
let url = $request.url;
url = url.replace(/old-domain\.com/, 'new-domain.com');
$done({url: url});
完整配置示例
[Script]京东比价 = type=http-response,pattern=^https?://api\.m\.jd\.com/client\.action\?functionId=(wareBusiness|serverConfig|basicConfig),requires-body=1,max-size=0,script-path=https://raw.githubusercontent.com/githubusername/repo/main/jd_price.js,timeout=10 # 微博去广告(请求脚本) 微博去广告 = type=http-request,pattern=^https?://(sdk|wb)app\.uve\.weibo\.com(/interface/sdk/sdkad.php|/wbapplua/wbpullad.lua),requires-body=0,script-path=https://raw.githubusercontent.com/githubusername/repo/main/weibo_ad.js [MITM] hostname = api.m.jd.com, *.weibo.com
脚本托管与更新
推荐托管平台:
- GitHub: 最稳定,配合 CDN(如 jsDelivr、fastly.jsdelivr.net)
- GitLab: 备选方案
- Gitee: 国内访问快(适合国内用户)
URL 转换示例:
原始: https://raw.githubusercontent.com/user/repo/main/script.js
CDN: https://fastly.jsdelivr.net/gh/user/repo@main/script.js
调试与排错
- 查看日志: Shadowrocket → 设置 → 日志(查看脚本执行错误)
- 语法检查: 确保 JavaScript 语法正确(特别是分号、括号)
- MITM 证书: 处理 HTTPS 请求必须安装并信任证书
- Body 大小: 如果响应太大,增加
max-size参数
安全注意事项
⚠️ 风险提示:
- 只使用可信来源的脚本(GitHub 知名仓库、官方推荐)
- 恶意脚本可能窃取 Cookie、Token 等敏感信息
- 定期检查脚本更新,避免使用长期未维护的脚本
- 涉及银行、支付类 App 建议谨慎使用脚本
常用脚本仓库参考
- NobyDa: 各类去广告、解锁脚本
- yichahucha: 京东比价、微博去广告
- chavyleung: 签到脚本
- Sunert: 各类实用脚本
提示: 在 Shadowrocket 中,远程脚本会自动缓存,修改脚本后需要在 App 中手动刷新配置或清除缓存才能生效。