导读:
重写规则核心原理
Shadowrocket 的重写规则(Rewrite)是基于 URL 正则匹配的流量干预技术,通过修改请求头、响应体或重定向地址,实现广告过滤、请求劫持、数据注入等功能,与单纯的代理转发不同,重写规则在本地完成计算,延迟极低,是优化国际网络加速体验的关键组件。
技术实现依赖三个核心模块:URL 重写(302/307 重定向)、Header 修改(增删改请求头)、Body 重写(正则替换响应内容),开启 HTTPS 解密(MITM)后,可处理加密流量,但需先安装并信任 CA 证书。
配置前准备工作
-
生成并安装证书
进入 Shadowrocket → 配置 → 证书 → 生成新的 CA 证书 → 安装描述文件,完成后需在系统设置 → 通用 → 关于本机 → 证书信任设置中开启完全信任。 -
开启 MITM 功能
在配置文件编辑界面添加:[MITM] hostname = *.example.com, *.googlevideo.com enable = true
-
获取规则源
推荐使用开源维护的 Rewrite 规则集,确保兼容性与时效性。
实战配置步骤
导入基础规则
在配置文件的 [Rewrite] 段落添加规则模板:
[Rewrite] # 强制 HTTPS 跳转 ^http://(www.)?example.com https://$1example.com 302 # 请求头修改(模拟客户端) ^https?:\/\/api\.example\.com header-replace User-Agent Mozilla/5.0 # 拒绝广告域名 ^https?:\/\/ad\.example\.com reject-200
配置 MITM 域名
精确指定需要解密的域名,避免过度拦截导致银行类 App 异常:
[MITM] hostname = %APPEND% *.googleapis.com, *.youtube.com, *.tiktokv.com skip-server-cert-verify = false
规则调试与验证
开启 Shadowrocket 的日志记录功能(设置 → 日志记录级别 → Verbose),通过实时日志观察规则匹配状态,若出现 MITM failed 提示,检查证书信任状态与 hostname 配置完整性。
如果你还没有稳定节点,点击下方链接获取高速专线支持,确保重写规则在跨境办公场景下稳定生效。
高频应用场景
去广告与净化
通过 reject 系列指令拦截追踪域名与广告脚本,显著减少学术资源访问过程中的页面加载时间:
^https?:\/\/(logs|analytics)\.example\.com reject-dict ^https?:\/\/.*\.doubleclick\.net reject-img
解锁区域限制 利用 302 重定向将请求转发至特定区域服务器,适用于部分流媒体服务的区域验证:
^https?:\/\/api\.service\.com\/v1\/location https://api.service.com/v1/location?region=US 302
API 数据修改 修改响应体中的 JSON 字段,解锁高级功能(需开启脚本模式):
let body = $response.body;
let obj = JSON.parse(body);
obj.data.isPremium = true;
$done({body: JSON.stringify(obj)});
故障排查指南
现象:HTTPS 请求显示证书错误
原因:MITM 证书未正确安装或域名未加入 hostname 列表。
解决方法:重新安装证书并重启 Shadowrocket;检查配置文件中的 hostname 是否包含目标域名通配符。
现象:重写规则间歇性失效
原因:规则顺序冲突或正则表达式过于宽泛。
解决方法:将精确匹配规则置于文件顶部;使用 ^ 和 锚点限定匹配范围,避免误拦截。
现象:配置后特定 App 无法联网
原因:证书固定(SSL Pinning)机制阻止中间人攻击检测。
解决方法:对该 App 的域名添加 skip-server-cert-verify = true 或将其加入代理直连列表,绕过重写处理。
完成上述配置后,建议结合高速节点进行测试,点击此处获取 2026 稳定高速节点订阅,专为学术访问与跨境办公优化的 IEPL 专线,可充分发挥重写规则的性能优势。