基础配置详解,{关键词}设置与优化完全指南

导读:

  1. 配置文件结构
  2. URL Rewrite 规则
  3. Script 脚本规则
  4. JavaScript 脚本模板
  5. 完整配置示例
  6. 关键注意事项
  7. 常用脚本资源(GitHub)

Shadowrocket(小火箭)的 Rewrite(重写) 功能主要用于修改网络请求和响应,包括 URL 跳转、请求头/体修改、响应体修改、去广告等,以下是完整的配置指南和常用脚本示例。


配置文件结构

Rewrite 配置通常写在 .conf 配置文件的 [Rewrite][Script] 段落中:

[General]
[MITM]
# HTTPS解密必需
hostname = api.example.com, *.google.com
ca-passphrase = 密码
ca-p12 = 证书内容(或留空使用生成证书)
[Rewrite]
# URL重写规则(302/307/reject等)
[Script]
# JavaScript脚本规则

URL Rewrite 规则

用于简单的 URL 跳转或拦截(无需脚本):

[Rewrite]
# 格式:正则 类型 目标(可选)
# 类型:302, 307, reject, reject-img, reject-dict, reject-array, header, header-del
# HTTP 强制跳转 HTTPS
^http://(www\.)?example\.com https://$1example.com 302
# 拒绝广告请求(返回空内容)
^https?://.+\.googlevideo\.com/.+&oad reject
# 拒绝图片(节省流量)
^https?://.+\.adserver\.com/.+\.(jpg|png|gif) reject-img
# 修改请求头(添加/修改)
^https?://api\.example\.com header-replace User-Agent Mozilla/5.0
# 删除请求头
^https?://api\.example\.com header-del X-Forwarded-For

Script 脚本规则

用于复杂的逻辑处理(修改 JSON、注入代码、计算等)。

脚本类型

类型 说明
script-request-header 修改请求头(发送前)
script-request-body 修改请求体(POST数据)
script-response-header 修改响应头
script-response-body 最常用,修改响应内容(JSON/HTML)

基本语法

[Script]
# 格式:类型 正则 参数
http-response ^https?://api\.example\.com/v1/userinfo script-path=https://raw.githubusercontent.com/user/repo/script.js, requires-body=true, timeout=10, tag=解锁VIP

关键参数:

  • script-path: 脚本路径(本地路径或远程URL)
  • requires-body=true: 是否需要获取/修改响应体(修改内容时必须)
  • requires-header=true: 是否需要获取/修改请求头
  • timeout=10: 脚本执行超时时间(秒)
  • tag: 规则名称(可选)

JavaScript 脚本模板

模板 1:修改响应 JSON(解锁/去广告)

// 保存为 unlock.js
let body = $response.body;
let obj = JSON.parse(body);
// 修改字段示例
obj.data.is_vip = true;
obj.data.vip_expire = "2099-12-31";
obj.data.ads = []; // 清空广告数组
$done({body: JSON.stringify(obj)});

配置引用:

[Script]
http-response ^https?://api\.example\.com/v1/user/info requires-body=1,script-path=unlock.js,tag=示例解锁

模板 2:请求头修改(User-Agent/Cookie)

// header.js
let headers = $request.headers;
headers['User-Agent'] = 'Mozilla/5.0 (iPhone; CPU iPhone OS 16_0 like Mac OS X)';
headers['X-Auth-Token'] = 'your_token_here';
$done({headers: headers});

配置引用:

[Script]
http-request ^https?://api\.example\.com requires-header=1,script-path=header.js,tag=修改UA

模板 3:重定向(302/307)

// redirect.js
$done({
  status: "HTTP/1.1 302 Found",
  headers: {
    "Location": "https://target.com/new-path"
  }
});

完整配置示例

以下是一个实用的去广告+解锁配置框架:

[General]
bypass-system = true
skip-proxy = 192.168.0.0/16, 10.0.0.0/8, 172.16.0.0/12, localhost, *.local, captive.apple.com
dns-server = 223.5.5.5, 8.8.8.8
[MITM]
enable = true
hostname = *.example.com, api.zhihu.com, mp.weixin.qq.com
[Rewrite]
# 知乎去广告
^https?://api\.zhihu\.com/(fringe|zst|commercial|real_time|ad-style-service|.*(recommendations|commercial)) reject-dict
^https?://api\.zhihu\.com/bazaar/vip/promotion reject-dict
[Script]
# 知乎优化(示例)
http-response ^https?://api\.zhihu\.com/v4/questions requires-body=1,script-path=https://raw.githubusercontent.com/app2smile/rules/master/js/zhihu.js,tag=知乎去广告
# 微信公众号去广告
http-response ^https?://mp\.weixin\.qq\.com/mp/getappmsgad requires-body=1,script-path=https://raw.githubusercontent.com/NobyDa/Script/master/QuantumultX/File/Wechat.js,tag=微信去广告
# 本地脚本示例(解锁某App)
http-response ^https?://api\.example\.com/v1/account requires-body=1,script-path=local/unlock.js,tag=本地解锁

关键注意事项

MITM(HTTPS解密)

修改 HTTPS 响应 必须开启 MITM

  • [MITM] 中填写目标域名 hostname
  • 安装并信任证书:Shadowrocket 设置 → 证书 → 生成/安装 → 去系统设置信任

本地脚本路径

  • iCloud 路径file:///var/mobile/Library/Mobile Documents/iCloud~com~shadowrocket~app/Documents/script.js
  • 本地绝对路径/var/mobile/Library/Shadowrocket/Scripts/script.js(需先创建文件夹)

调试技巧

  • 查看日志:Shadowrocket 设置 → 日志(Log)
  • 脚本报错时,检查 requires-body 是否开启
  • 正则表达式测试:使用 regex101.com 验证

性能优化

  • 尽量使用 reject 而非脚本拦截广告(性能更好)
  • 远程脚本建议下载到本地使用(避免网络延迟)

常用脚本资源(GitHub)

  1. NobyDa/Script:经典去广告、解锁脚本合集
  2. app2smile/rules:知乎、哔哩哔哩等优化
  3. yichahucha/surge:微博、淘宝历史价格查询
  4. chavyleung/scripts:签到脚本合集

使用建议:从远程仓库复制脚本到本地使用,避免原始仓库更新导致异常,同时减少对外网依赖。

需要特定 App 的 Rewrite 规则可以告诉我具体应用名称,我可以提供针对性的配置示例。

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