Shadowrocket的重写规则可实现请求头修改、广告屏蔽及API重定向,本文详解DOMAIN、REGEX等匹配模式写法,对比TUN模式与系统代理下的规则优先级,并提供跨境办公场景下的配置方案与故障排查方法。
重写规则的核心机制与Clash差异
Shadowrocket(俗称小火箭)的重写规则(Rewrite)作用于HTTP/HTTPS层,通过正则或域名匹配修改请求URL、Header或响应体,与Clash的rewrite不同,小火箭规则基于文本配置,无需YAML缩进结构,但逻辑优先级遵循"自上而下匹配"原则,在跨境办公需求中,小火箭重写规则设置常用于强制特定API走指定节点,或去除学术资源访问中的跟踪参数。
小火箭重写规则设置四步流程
配置入口与基础语法
进入Shadowrocket的"配置"→"编辑纯文本",在[URL Rewrite]字段下添加规则:
[URL Rewrite] # 正则匹配模式 ^https?://api\.example\.com/v1/(.*)$ https://new.api.com/$1 302 # 域名匹配模式 hostname = api.example.com, *.tracker.com
匹配模式类型选择
- REGEX:适用于URL参数动态变化的场景,如
^https?://.*/ad/\d+ - DOMAIN-SUFFIX:匹配特定域名及其子域,常用于广告屏蔽
- DOMAIN:精确匹配单域名,优先级高于SUFFIX
重写动作定义
支持四种动作:
302:临时重定向,保留原始请求方法307:临时重定向(HTTP标准)reject:阻断连接,适用于广告过滤header-add:添加请求头(需配合Header Rewrite)
代理组联动配置
在Shadowrocket中对应Clash的select手动选择、url-test自动测速和fallback故障转移机制:
[Proxy Group] Auto-Test = url-test, Node1, Node2, Node3, url = http://www.gstatic.com/generate_204, interval = 300 Fallback = fallback, Node1, Node2, url = http://www.gstatic.com/generate_204, interval = 300
将重写规则与特定代理组绑定,实现"特定API请求自动走最快节点"的效果。
TUN模式与系统代理下的规则优先级
TUN模式(VPN模式)接管设备所有流量(含UDP/ICMP),重写规则在虚拟网卡层生效,适用于游戏加速或强制全局代理场景。系统代理模式仅处理HTTP/HTTPS流量,重写规则在应用层生效,延迟更低但无法处理TCP直连流量。
优先级建议:跨境办公场景建议开启TUN模式,确保重写规则对邮件客户端、云同步工具等系统级应用生效。
分流规则语法实战示例
# 学术资源访问优化 [Rule] DOMAIN-SUFFIX,sciencedirect.com,Proxy DOMAIN,dl.acm.org,Auto-Test IP-CIDR,203.0.113.0/24,Direct,no-resolve [URL Rewrite] # 去除Google Analytics跟踪参数 ^https?://(.*)\?.*utm_.*$ $1 302 # 强制HTTPS升级 ^http://(www\.example\.com)/(.*)$ https://$1/$2 302
FAQ:现象、原因与解决方法
现象:重写规则在Safari生效,但在Chrome无效
原因:Chrome使用QUIC协议(UDP 443端口),绕过系统代理
解决:开启TUN模式强制接管UDP流量,或在Chrome设置中禁用QUIC
现象:配置后特定App无法加载图片
原因:重写规则误匹配了图片CDN域名,导致reject动作阻断资源
解决:使用更精确的正则表达式,或添加exclude-simple-hostnames排除局域网IP
现象:国际网络加速时延迟增加50ms以上
原因:重写规则过多导致正则匹配计算开销
解决:将高频访问域名改用DOMAIN精确匹配,减少正则回溯
对于需要稳定国际网络加速的用户,建议选择支持Clash YAML格式订阅的服务商,通过SubConverter工具转换为小火箭兼容格式,确保重写规则与节点策略无缝衔接,配置完成后,建议通过curl -I命令验证重写后的响应头是否符合预期。