本文详解Shadowrocket重写规则的工作原理,涵盖MITM证书安装、域名匹配语法及常见配置错误排查,帮助用户优化国际网络加速体验,提升跨境办公效率。
重写规则的核心机制
小火箭重写规则通过中间人攻击(MITM)技术解密HTTPS流量,实现请求修改与响应替换,与单纯的路由分流不同,重写规则直接操作HTTP/HTTPS数据包内容,适用于广告屏蔽、API调试及特定请求头修改。
配置前需确认已安装Shadowrocket最新版本,并在「设置」-「证书」中完成MITM证书的信任安装,未正确安装证书将导致重写规则对HTTPS链接完全失效。
配置流程详解
证书安装与信任
进入「配置」-「编辑配置」-「HTTPS解密」,生成CA证书后通过AirDrop或邮件发送至Mac/PC,导入系统钥匙串并设置为「始终信任」,iOS端需在「设置」-「通用」-「关于本机」-「证书信任设置」中手动开启。
规则语法编写
小火箭重写规则支持域名、URL正则、请求头修改三种匹配模式,标准语法结构如下:
[MITM]
hostname = *.example.com, api.target.com
[Rewrite]
^https?://api\.example\.com/v1/ads url reject
^https?://api\.target\.com/user/info url script-response-body https://raw.githubusercontent.com/.../modify.js
关键参数说明:
hostname:声明需要解密的域名,支持通配符url reject:直接阻断请求,返回空响应script-response-body:注入JavaScript修改响应体
规则生效测试
添加规则后点击右上角「完成」,返回主界面下拉刷新配置,使用Safari访问已配置域名,查看Shadowrocket日志中是否出现「Rewrite」标记,无标记表明hostname未正确匹配或证书未生效。
全局路由模式深度解析
小火箭提供四种全局路由模式,直接影响重写规则的执行范围:
配置模式(Config) 仅对配置文件中指定的域名执行重写规则,流量分流精准,适合跨境办公需求,需确保规则列表包含目标域名。
代理模式(Proxy) 所有流量强制走代理节点,重写规则全局生效,适用于测试阶段或需要全面抓包分析的场景,但会增加节点负载。
直连模式(Direct) 流量不走代理,重写规则仅对直连请求生效,适合国内API调试或本地网络加速优化。
场景模式(Scene) 根据网络环境自动切换上述模式,重写规则随场景变化动态生效,建议设置Wi-Fi环境下使用配置模式,蜂窝数据下切换代理模式。
常见问题排查
现象:规则已添加但HTTPS请求未被修改
原因:MITM证书未在系统层面信任,或hostname列表遗漏子域名。
解决方法:检查「关于本机」中的证书信任开关;将域名改为通配符格式如*.api.com;确保规则文件编码为UTF-8。
现象:开启重写后特定App无法联网 原因:部分应用启用SSL Pinning证书校验,检测到MITM攻击后主动断连。 解决方法:将该App相关域名加入「跳过代理」列表,或关闭该App对应的重写规则。
现象:脚本修改后的响应体出现乱码
原因:目标服务器启用Brotli压缩,Shadowrocket未正确解压即注入脚本。
解决方法:在请求头中移除Accept-Encoding: br,强制服务器返回gzip或未压缩数据。
性能优化建议
大量重写规则会显著增加CPU占用,建议将规则数量控制在50条以内,对于国际网络加速需求,优先使用url reject而非脚本注入,前者性能开销降低90%,定期清理失效规则,避免DNS查询超时。
选择低延迟节点可提升重写规则响应速度,特别是涉及脚本远程加载的场景,建议选用支持BGP线路的服务商,确保跨境数据传输稳定性,满足学术资源访问的高带宽需求。
掌握小火箭重写规则的核心在于理解MITM握手流程与正则匹配优先级,通过合理配置hostname范围与路由模式,可在保证安全性的前提下实现精细化的流量管理,持续优化规则集,配合高质量的代理节点,能显著提升跨境办公效率与网络访问体验。