拦截广告域名

导读:

  1. 进入重写设置
  2. 重写规则语法
  3. 配置示例
  4. 使用模块(Module)管理规则
  5. 关键注意事项
  6. 常用规则源(远程导入)

Shadowrocket 的重写(Rewrite)功能允许你修改 HTTP/HTTPS 请求和响应,常用于广告拦截、请求重定向、修改请求头/响应体等,以下是详细设置指南:

进入重写设置

  1. 打开 Shadowrocket → 配置(Config)
  2. 选择当前使用的配置文件 → 点击 编辑(Edit)
  3. 选择 重写(Rewrite)选项卡
  4. 点击右上角 添加规则,或从 URL 导入规则集

重写规则语法

基本格式:

[类型] [正则表达式] [替换内容/操作] [标志]

常见重写类型

类型 说明 示例
url URL 重写/重定向 ^http://(.*) https://$1
302/307 临时重定向 ^http://old.com http://new.com 302
header 修改请求头 ^https?://api.x.com header-add X-Auth token123
header-del 删除请求头 ^https?://api.x.com header-del User-Agent
reject 拦截请求(用于去广告) ^https?://ad.x.com reject
reject-img 拦截并返回 1x1 像素图 ^https?://banner.x.com reject-img
body 修改响应体(需 MITM) ^https?://api.x.com body-replace "old":"new"

配置示例

URL 重定向(HTTP 转 HTTPS)

^http://(.*\.google\.com) https://$1 302

修改 User-Agent

^https?://www.example.com header-replace User-Agent Mozilla/5.0 (iPhone; CPU iPhone OS 16_0 like Mac OS X)

删除特定请求头(防追踪)

^https?://api.example.com header-del X-Forwarded-For
^https?://api.example.com header-del X-Real-IP

广告拦截

^https?://googleads\.g\.doubleclick\.net reject
# 拦截特定路径
^https?://www\.youtube\.com/api/stats/ads reject

响应体修改(需开启 MITM)

^https?://api\.weibo\.cn/2/statuses/extend body-replace "ad":\[\{"id"[^{]*\}\] "ad":[]

使用模块(Module)管理规则

对于复杂规则,建议创建模块文件(.sgmodule):

#!name=我的重写规则
#!desc=自定义广告拦截和优化
#!author=YourName
#!icon=https://example.com/icon.png
[URL Rewrite]
# 强制 HTTPS
^http://(www\.)?example\.com https://$1 302
[Header Rewrite]
# 修改 Accept-Language
^https?://www\.google\.com header-replace Accept-Language en-US
[MITM]
hostname = %APPEND% api.example.com, www.google.com

导入方式:在 Shadowrocket 中通过 URL 安装模块,或保存为 .sgmodule 文件通过 AirDrop/文件共享导入。

关键注意事项

HTTPS 解密(MITM)

修改 HTTPS 请求/响应体必须开启 MITM:

  • 设置证书生成新的 CA 证书安装
  • 在 iOS 设置通用关于本机证书信任设置 中启用完全信任
  • 在重写规则中指定 hostname(域名)

正则表达式转义

  • 特殊字符需要转义:\. \/ \? \+ \*
  • 使用 或 捕获组,用 $1 $2 引用

性能优化

  • 避免过于宽泛的正则(如 ^https?://.*
  • 将最常用规则放在前面
  • 使用 reject 而非 302 到无效地址来拦截广告

调试技巧

  • 开启 设置高级日志记录
  • 使用 最近请求(Recent Requests)查看实际请求的 URL 和 Header
  • 规则冲突时,列表上方的规则优先

常用规则源(远程导入)

你可以直接订阅现成的规则集:

  • 广告拦截:https://raw.githubusercontent.com/blackmatrix7/ios_rule_script/master/rewrite/Shadowrocket/AllInOne/AllInOne.sgmodule
  • 去重定向:https://raw.githubusercontent.com/DivineEngine/Profiles/master/Shadowrocket/Module/General.sgmodule

导入方法:Shadowrocket 首页 → 右上角 → 类型选择 Module → 粘贴 URL → 下载安装。


提示:修改响应体(body)功能强大但可能影响 App 正常运行,建议先测试再长期使用,遇到问题时可通过 Shadowrocket 的 日志 功能排查规则是否匹配成功。

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