"小火箭"(Shadowrocket)是 iOS 上常用的网络代理工具,其广告屏蔽主要通过规则匹配(Rule)和脚本(Script)实现,以下是详细的配置方法和常用规则:
基础规则配置方法
规则订阅(推荐)
在 Shadowrocket 中:
- 点击底部「配置」→ 选择当前使用的配置文件 →「编辑纯文本」
- 或点击「添加规则」→ 选择类型为「Rule Subscribe」
常用去广告规则订阅链接:
# blackmatrix7 维护(全面,推荐)
https://raw.githubusercontent.com/blackmatrix7/ios_rule_script/master/rule/Shadowrocket/Advertising/Advertising.list
# anti-AD 规则(专注去广告)
https://raw.githubusercontent.com/privacy-protection-tools/anti-AD/master/anti-ad-surge2.txt
# AdGuard DNS 过滤
https://raw.githubusercontent.com/AdguardTeam/AdguardFilters/master/BaseFilter/sections/adservers.txt
手动添加规则
在配置文件中添加以下格式:
# 精确域名屏蔽 DOMAIN,ads.example.com,REJECT # 后缀匹配(屏蔽整个域名及其子域名) DOMAIN-SUFFIX,googleadservices.com,REJECT DOMAIN-SUFFIX,doubleclick.net,REJECT DOMAIN-SUFFIX,google-analytics.com,REJECT # 关键词匹配(慎用,可能误杀) DOMAIN-KEYWORD,admarvel,REJECT DOMAIN-KEYWORD,admaster,REJECT # IP 段屏蔽 IP-CIDR,127.0.0.1/8,REJECT IP-CIDR,0.0.0.0/32,REJECT # 用户代理匹配(针对特定 SDK) USER-AGENT,*AdSDK*,REJECT
进阶:HTTPS 广告过滤(MITM)
对于加密的 HTTPS 广告,需要开启中间人解密(MITM):
-
安装证书:
- Shadowrocket →「配置」→ 点击当前配置 →「HTTPS 解密」→「生成证书」→「安装证书」
- iOS 设置 → 通用 → 关于本机 → 证书信任设置 → 开启 Shadowrocket 证书
-
配置 MITM 主机名(在配置文件中添加):
[MITM] hostname = *.googlevideo.com, *.googleadservices.com, *.googlesyndication.com enable = true
脚本去广告(针对特定 App)
部分 App 广告需要 JavaScript 脚本处理:
常用脚本订阅:
# 墨鱼去广告(多功能) https://raw.githubusercontent.com/ddgksf2013/Modules/main/Adblock.sgmodule # 知乎去广告 https://raw.githubusercontent.com/blackmatrix7/ios_rule_script/master/script/zheye/zheye.snippet # Bilibili 去广告 https://raw.githubusercontent.com/blackmatrix7/ios_rule_script/master/script/bilibili/bilibili_plus.snippet
使用方法:
- 配置 →「模块」→ 安装上述链接
- 或直接在配置文件的
[Script]段落添加
推荐配置示例
一个平衡性能与效果的配置:
[Rule] # 去广告规则集 RULE-SET,https://raw.githubusercontent.com/blackmatrix7/ios_rule_script/master/rule/Shadowrocket/Advertising/Advertising.list,REJECT RULE-SET,https://raw.githubusercontent.com/blackmatrix7/ios_rule_script/master/rule/Shadowrocket/Privacy/Privacy.list,REJECT # 手动补充常见广告域名 DOMAIN-SUFFIX,googleadservices.com,REJECT DOMAIN-SUFFIX,doubleclick.net,REJECT DOMAIN-SUFFIX,app-measurement.com,REJECT DOMAIN-SUFFIX,firebase-settings.crashlytics.com,REJECT # 最后放行 GEOIP,CN,DIRECT FINAL,PROXY [MITM] enable = true hostname = *.googleadservices.com, *.googlesyndication.com, *.doubleclick.net
注意事项
-
REJECT 与 REJECT-DROP 区别:
REJECT:返回拒绝响应(部分 App 会重试,耗电)REJECT-DROP:直接丢弃连接(更省电,但可能导致部分 App 等待超时)REJECT-NO-DROP:仅对 TCP 返回 RST,UDP 丢弃
-
无法屏蔽的广告类型:
- 原生广告:如微信朋友圈、微博信息流(与内容同源)
- DNS 污染型:部分视频 App 广告与视频流同域名
- TLS 1.3 指纹校验:部分银行 App 无法 MITM
-
性能优化:
- 规则数量超过 1 万条可能影响连接速度
- 建议定期更新规则,删除失效域名
-
与其他去广告工具配合:
- 可配合 DNS 过滤(如 AdGuard DNS:
https://dns.adguard-dns.com/dns-query) - 在「DNS over HTTPS」中设置
- 可配合 DNS 过滤(如 AdGuard DNS:
提示:规则订阅建议每周更新一次,广告域名变化较快,如遇 App 功能异常,可在「最近请求」中查看被拦截的域名,将其加入 DIRECT 规则白名单。