Shadowrocket重写规则可实现请求头修改、本地文件映射及广告拦截,本文详解规则语法结构、常见使用场景与配置步骤,帮助用户掌握这一高阶功能。
重写规则(Rewrite)是Shadowrocket区别于基础代理工具的核心功能,通过正则匹配拦截HTTP/HTTPS流量,支持修改请求参数、重定向响应或注入本地脚本,掌握小火箭重写规则设置技巧,可显著提升国际网络加速的精细化程度,满足跨境办公需求中的API调试与广告过滤场景。
重写规则语法结构解析
Shadowrocket采用类Surge语法,每条规则由匹配模式、动作类型和参数三部分组成,与Clash的Rule Provider仅做路由分流不同,小火箭重写规则设置直接操作应用层数据包。
基础配置格式如下:
[Rewrite] # 请求头修改 ^https?://api\.example\.com header-add X-Forwarded-For 1.1.1.1 # 302重定向 ^https?://old\.domain\.com https://new.domain.com 302 # 本地文件映射(适用于前端开发) ^https?://cdn\.jsdelivr\.net/.+\.js file:///var/mobile/Documents/local.js # 拒绝连接(广告拦截) ^https?://googleads\.g\.doubleclick\.net/.+ reject
小火箭重写规则设置操作流程
-
配置入口定位
选择活跃配置文件→点击「编辑」→进入「Rewrite」标签页,支持直接粘贴单条规则或导入GitHub托管的远程规则集(需使用raw链接)。 -
正则表达式编写
使用PCRE语法匹配URL,注意对点号(.)和斜杠(/)进行转义,建议先用「测试」功能验证正则是否命中目标请求。 -
代理组策略绑定
重写规则需与代理组协同工作,Shadowrocket提供三种核心代理组类型:- 手动选择(Select):固定节点,适合需要稳定IP的学术资源访问
- 自动测速(URL-Test):按延迟自动切换,适用于国际网络加速场景
- 故障转移(Fallback):主节点超时后自动切换,保障跨境办公连续性
-
MITM证书配置
HTTPS重写需开启「解密HTTPS流量」功能,安装并信任CA证书,iOS 16+系统需在「设置→通用→VPN与设备管理」中手动启用。
TUN模式与系统代理的差异化应用
小火箭重写规则设置在不同工作模式下作用范围各异:
- 系统代理:仅处理支持系统代理的应用(如Safari、Chrome),重写规则无法作用于独立Socket连接的应用
- TUN模式:创建虚拟网卡接管所有流量(含UDP/游戏数据包),重写规则可拦截系统级请求,但会增加约5-10%的CPU占用
建议常规浏览使用系统代理配合重写,游戏或视频场景启用TUN模式并关闭非必要的重写规则以降低延迟。
分流规则优先级与匹配逻辑
当重写规则与分流规则共存时,Shadowrocket按以下优先级处理:
- DOMAIN(精确匹配,如
api.twitter.com) - DOMAIN-SUFFIX(后缀匹配,如
google.com匹配www.google.com) - DOMAIN-KEYWORD(关键词匹配,用于泛域名拦截)
- IP-CIDR(IP段匹配,适用于绕过CDN直接访问源站)
- GEOIP(地理位置匹配,用于国内外分流)
配置时建议将精确规则置于文件顶部,通用规则置底,重写规则在分流决策之后执行,确保流量先进入正确代理通道再应用修改。
高频应用场景配置示例
广告拦截场景:
[Rewrite] ^https?://(www\.)?google\.com/(pagead|aclk) reject ^https?://app\.analytics\.com/v1/events header-del Authorization
API调试场景(开发环境切换):
[Rewrite] ^https?://api\.production\.com header-replace Host api.staging.local ^https?://api\.production\.com header-add X-Debug-Mode true
常见问题排查(FAQ)
现象:重写规则生效但网页显示空白或证书错误
原因:目标站点启用SSL Pinning或CORS策略拦截
解决方法:关闭「MITM」严格模式,或在「Hostname」中排除该域名
现象:规则匹配失败,请求直接通过代理
原因:正则表达式未转义特殊字符,或TUN模式未开启导致部分流量绕过
解决方法:使用regex101验证语法,检查「全局路由」是否为「代理」模式
现象:视频类App重写后无法加载内容
原因:流媒体服务验证请求头完整性(如User-Agent、Referer)
解决方法:避免修改身份标识类请求头,仅使用reject规则拦截追踪域名
对于需要稳定国际网络加速的用户,建议配合支持Clash YAML格式的节点订阅使用重写规则,通过SubConverter工具将订阅转换为Shadowrocket兼容格式,可实现自动分流与重写规则的协同工作,选择具备IEPL专线的服务商,能有效降低重写规则处理带来的额外延迟,确保4K视频与大型文件传输的流畅性,定期更新远程规则集可维持广告拦截与访问优化的持续有效。