Shadowrocket重写规则是iOS端强大的HTTP请求修改工具,本文详解规则语法结构、配置流程及常见问题排查,帮助用户实现去广告、解锁功能等定制化需求,提升国际网络加速体验。
重写规则的技术本质
小火箭重写规则(Rewrite Rules)通过拦截并修改HTTP/HTTPS请求头、响应体或URL跳转,实现请求重定向、数据注入和响应修改,与单纯的代理分流不同,重写规则工作在应用层,能够精细化处理特定域名的请求行为,是跨境办公和学术资源访问场景下的高阶配置手段。
四步完成基础配置
-
获取规则源
从可信仓库复制重写规则链接,格式通常为.conf或纯文本列表,注意区分模块(Module)与配置文件(Config)的导入方式。 -
导入配置
打开Shadowrocket → 配置标签页 → 右上角"+" → 粘贴URL下载,或长按配置文件 → 编辑配置 → 添加重写规则段。 -
启用重写模块
进入配置详情 → 开启"重写"开关 → 检查HTTPS解密(MITM)是否启用,首次使用需安装描述文件并信任证书。 -
验证生效
访问测试页面(如httpbin.org),查看请求头是否被修改,或使用Safari开发者工具检查网络请求变化。
全局路由模式深度解析
配置小火箭重写规则时,必须理解"全局路由"四个选项的协作关系:
配置模式(Config)
根据配置文件中的规则集自动判断流量走向,重写规则在此模式下仅对匹配代理或直连的域名生效,适合精细化分流需求。
代理模式(Proxy)
所有流量强制走代理节点,重写规则会作用于全部HTTP请求,但可能增加节点负载,建议仅在调试规则时使用。
直连模式(Direct)
绕过代理直接连接,此时重写规则依然生效(本地处理),但无法修改需要代理才能访问的国际资源。
场景模式(Scene)
根据Wi-Fi/蜂窝网络自动切换上述三种模式,重写规则会随场景切换而动态生效,适合多网络环境办公场景。
实战配置示例
以下是一个典型的去广告重写规则配置:
[URL Rewrite] ^https?://api.example.com/ad/v\d+/list - reject ^https?://cdn.example.com/banner/ - reject-img [Script] http-response ^https?://api.example.com/user/info requires-body=1,script-path=https://raw.githubusercontent.com/example/unlock.js
关键参数说明:
reject:直接阻断请求返回404reject-img:返回1px透明图片(防页面塌陷)requires-body=1:需要解析响应体(消耗更多性能)
对于需要稳定国际网络加速的用户,建议选择支持WireGuard或Reality协议的节点服务商,这类传输协议与重写规则配合时延迟更低,且不易被识别。
常见问题诊断
现象:规则开关已启用但功能未生效
原因:MITM证书未在系统设置中信任,或目标App启用SSL Pinning(证书固定)。
解决方法:设置 → 通用 → 关于本机 → 证书信任设置 → 开启Shadowrocket根证书;对于固定证书App,需使用Shadowrocket的"证书屏蔽"功能或放弃重写该App。
现象:启用特定规则后页面加载缓慢
原因:正则表达式过于宽泛导致CPU占用过高,或规则触发循环重定向。
解决方法:优化正则从改为具体域名;检查是否存在http://重写到https://又反向重写的逻辑死循环。
现象:部分HTTPS网站提示证书错误
原因:重写规则尝试修改加密流量但未启用MITM,或证书过期。
解决方法:确保"启用解密"已打开;定期更新Shadowrocket内置证书(建议每90天重新安装)。
在学术资源访问场景中,若遇到数据库验证失败,可尝试添加以下重写规则绕过Referer检查:
^https?://www.example-database.com/login header-replace Referer https://www.example-database.com/
选择节点时,建议优先考虑提供IEPL专线的服务商,这类线路在承载重写规则产生的额外握手开销时表现更稳定,特别适合需要频繁修改请求头的跨境办公场景。
定期备份你的重写规则配置,复杂规则集建议拆分为多个Module按需启用,避免单次加载过多脚本导致内存溢出。
