Post

手动维护的 iOS Anywhere Rules 屏蔽规则 / 去开屏广告模块

小火箭免费替代品:Anywhere 屏蔽开屏广告规则

手动维护的 iOS Anywhere Rules 屏蔽规则 / 去开屏广告模块

SR_AppAd for Anywhere 使用说明

本规则由小火箭 sr_app_ad.conf 转换而来,适配 Anywhere。小火箭 Shadowrocket 的功能丰富,支持各种冷门协议;Anywhere ,完全由 Swift 从零编写,无 Electron、WebView 或第三方框架封装,仅支持基础功能和主流协议,路由规则、MITM、模块等可满足大部分人需求。


1. 文件说明

文件类型内容建议策略
SR_AppAd.amod模块内含两部分:
① MITM 重写规则(处理开屏、信息流等 URL 级广告)
② 广告域名 Reject 规则
MITM 部分自动生效;Reject 部分自动设为 REJECT
SR_AppAd_Direct.arrs路由规则集小火箭中标记为 DIRECT 的规则,用于避免误杀、保证国内服务直连DIRECT
SR_AppAd_Proxy.arrs路由规则集小火箭中标记为 PROXY 的规则选择你的代理策略

2. 导入步骤

  1. 导入模块 SR_AppAd.amod:复制链接在 Anywhere 的模块导入入口使用订阅模块导入。
  2. 导入路由规则集 SR_AppAd_Direct.arrs 和 SR_AppAd_Proxy.arrs:复制链接在路由页面选择使用订阅规则集导入。
  3. 导入秋风广告规则 AWAvenue:点击 Ads_AWAvenue,点击链接会先打开一个 HTTPS 跳转页,再通过 anywhere://add-rule-set deep link 唤起 Anywhere。
  4. 调整规则集顺序:把 Reject 放在 Direct/Proxy 上面。
  5. 其他可选规则集:访问 Anywhere Rules,这个仓库的规则集可按需导入。

3. 开启 MITM

MITM 是让 Anywhere 解密并改写 HTTPS 请求的功能,只有开启后,模块里的 URL 重写规则才会生效。仅靠域名 Reject 无法拦截这些广告,因为它们和正常内容在同一个域名下。

3.1 安装并信任根证书(HTTPS 必需)

  1. 在 Anywhere 的 MITM 设置里生成并导出根证书(CA),安装到系统;前往手机的设置,→ 看到已下载描述文件 → 安装 → 输入手机的解锁密码 → 安装
  2. 在 iPhone 上打开 设置 → 通用 → 关于本机 → 证书信任设置,打开 Anywhere 根证书的完全信任开关。

没有信任证书时,HTTPS 拦截会失败,对应 App 可能出现无法联网。纯 HTTP 请求不涉及证书,不需要信任。

3.2 开启开关

  1. 打开 MITM 总开关。
  2. 确认模块里的 MITM 规则集处于 启用 状态(每个规则集有单独开关,关闭的规则集不生效)。

3.3 已知限制

  • 做了证书固定的 App 无法被拦截,这是正常现象,没有解决办法。
  • 开启 MITM 后,被拦截主机的流量会经过解密再加密,会略增加耗电和延迟,请只对需要的规则集保持启用。
  • 请只在你有权检查的流量上使用 MITM。

4. 优先级说明

Anywhere 的匹配优先级是固定的,从高到低:

  1. ADBlock 内置规则
  2. 内置服务规则集
  3. 用户自定义规则集(本规则属于这一层)
  4. Default
  5. Country Bypass(绕过中国大陆)

要点:

  • Country Bypass 优先级最低,不会覆盖已设为 REJECT 的自定义规则集。
  • 如果你给某个内置服务(如Google、telegram、YouTube、TikTok)指定了明确的 DIRECT 或 PROXY,它会先于本规则命中,导致对应的广告域名没被拦截。解决办法是把这些内置服务改回 Default。
  • 同一层内,更长(更具体)的域名后缀优先;同样的后缀则列表靠上的优先。
  • CIDR(IP)规则主要用于直接用 IP 的连接。开启 Prevent DNS Leak 后,域名解析后再匹配 IP 的兜底会被关闭。
  • 使用 HTTPDNS 或自带 DoH 的 App 不经过 Anywhere 的 DNS,域名级拦截对它们可能失效。

6. 更新规则

上游 sr_app_ad.conf 会更新广告域名和 URL 重写。更新方式:

  • 如果是订阅导入的,刷新订阅即可(策略保持你本地设置不变)。
  • 如果发现某个 App 的开屏又出现了,通常是接口路径改了,在请求日志里找到对应的请求 URL,补充到 MITM 规则里。

7. 转换限制

以下内容没有转换,因为 Anywhere 路由规则集不支持:

  • 小火箭的 GEOIP、FINAL、URL-REGEX 路由规则,其中 5 条 URL-REGEX 已改写为 MITM 规则。
  • [Host] 段(只有 localhost = 127.0.0.1,对去广告无影响)。
  • [MITM] 段的 ca-p12(小火箭自己的证书,Anywhere 使用自己生成的根证书)。
  • 小火箭的 REJECT-DROP、REJECT-DICT、REJECT-IMG 在路由规则里统一成了 REJECT;在 MITM 里 REJECT 和 REJECT-DICT 统一返回 {},图片返回 1×1 透明 gif,视频返回默认二进制内容。
This post is licensed under CC BY 4.0 by the author.