小火箭重写规则设置实战,精准控制HTTP请求与响应

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

小火箭重写规则设置操作流程

  1. 配置入口定位
    选择活跃配置文件→点击「编辑」→进入「Rewrite」标签页,支持直接粘贴单条规则或导入GitHub托管的远程规则集(需使用raw链接)。

  2. 正则表达式编写
    使用PCRE语法匹配URL,注意对点号(.)和斜杠(/)进行转义,建议先用「测试」功能验证正则是否命中目标请求。

  3. 代理组策略绑定
    重写规则需与代理组协同工作,Shadowrocket提供三种核心代理组类型:

    • 手动选择(Select):固定节点,适合需要稳定IP的学术资源访问
    • 自动测速(URL-Test):按延迟自动切换,适用于国际网络加速场景
    • 故障转移(Fallback):主节点超时后自动切换,保障跨境办公连续性
  4. MITM证书配置
    HTTPS重写需开启「解密HTTPS流量」功能,安装并信任CA证书,iOS 16+系统需在「设置→通用→VPN与设备管理」中手动启用。

TUN模式与系统代理的差异化应用

小火箭重写规则设置在不同工作模式下作用范围各异:

  • 系统代理:仅处理支持系统代理的应用(如Safari、Chrome),重写规则无法作用于独立Socket连接的应用
  • TUN模式:创建虚拟网卡接管所有流量(含UDP/游戏数据包),重写规则可拦截系统级请求,但会增加约5-10%的CPU占用

建议常规浏览使用系统代理配合重写,游戏或视频场景启用TUN模式并关闭非必要的重写规则以降低延迟。

分流规则优先级与匹配逻辑

当重写规则与分流规则共存时,Shadowrocket按以下优先级处理:

  1. DOMAIN(精确匹配,如api.twitter.com
  2. DOMAIN-SUFFIX(后缀匹配,如google.com匹配www.google.com
  3. DOMAIN-KEYWORD(关键词匹配,用于泛域名拦截)
  4. IP-CIDR(IP段匹配,适用于绕过CDN直接访问源站)
  5. 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视频与大型文件传输的流畅性,定期更新远程规则集可维持广告拦截与访问优化的持续有效。

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

暂无相关文章