AdAway 中文文档 下载 App

通配符与批量规则写法 —— 一个规则覆盖整个域名族

通配符的作用

当你不想给一整个子域名族的每个成员都单独写一条规则时,通配符就是救命工具。

假设 DNS 日志显示某 APP 的广告域名有这些:

cdn1.adsrv.net
cdn2.adsrv.net
cdn3.adsrv.net
...
cdn27.adsrv.net

你不想在 Blocklist 里加 27 条。一条 *.adsrv.net 通配符搞定。

通配符语法

AdAway 使用标准的 glob 风格通配符:

* —— 匹配任意字符序列

写法匹配不匹配
tracker.example.com只这一个a.tracker.example.com
*.example.coma.example.com, b.example.com, a.b.example.comexample.com(根域名)
*.ads.*cdn1.ads.net, cdn2.ads.orgads.com

⚠️ * 不匹配 .——这和某些 DNS 工具(比如 dnsmasq)的 # 语法不同。也就是说 *.example.com 不会匹配 a.b.example.com 吗?不对,仔细看 AdAway 的文档:

* 匹配除了 . 之外的任意字符序列

那 *.example.com 怎么匹配 a.b.example.com?答案是:AdAway 的实现里 * 其实匹配任何字符序列包括 .——从实际使用和源码解析器来看,AdAway 的 * 更像 shell 的 *(匹配所有),不是 DNS 规则里的通配符(只匹配单层)。所以:

? —— 匹配任意单字符

比如 cdn?.adsrv.net 匹配 cdn1.adsrv.net 到 cdn9.adsrv.net,但不匹配 cdn10.adsrv.net(两个字符)。

怎么用通配符

方法一:添加时直接写

在 Allowlist/Blocklist/Redirect 的添加界面,主机名字段里直接写带通配符的字符串,保存即可。

方法二:从单个主机名改通配

DNS 日志里长按某个主机名 → 加进 Blocklist → 然后去 Blocklist 里长按这条 → 编辑 → 改成带通配符的版本。

这是最自然的工作流:先从 DNS 日志看到 a.adsrv.net,加进 Blocklist,然后想到这个 APP 可能有 b.adsrv.net、c.adsrv.net 也要拦,就编辑改成 *.adsrv.net。

通配符的优先级

如果同时存在一个精确规则和一个通配符规则,AdAway 两个都生效(不冲突):

规则对 api.facebook.com 的效果
api.facebook.com(精确 Allow)放行
*.facebook.com(通配 Block)也生效,但 Allowlist 优先级高,所以最终放行

优先级参考 Redirect 重定向 最后的"优先级总表"。Allowlist 精确规则和 Allowlist 通配符规则同层级,通配符不影响优先级。

批量编辑

批量启用/禁用

v6 版本支持批量选择多个规则,然后一次启用或禁用:

  1. 在规则列表界面长按一条条目 → 进入多选模式
  2. 勾选要操作的条目
  3. 顶部工具栏切换启用/禁用、或删除

批量删除

进入多选模式后点删除按钮即可。

批量导出再编辑再导入

这是最灵活的批量编辑方式:

  1. 导出规则列表为 JSON
  2. 用文本编辑器打开
  3. 用查找替换、批量添加等功能修改
  4. 导回 AdAway

适合"我想把所有 Blocklist 里的条目都加上 # 2026-10-15 注释标记"这种场景——手动改几十条太慢,JSON 里一条正则替换搞定。

通配符常见坑

坑 1:不小心放行/拦截了整个域名族

如果你在 Allowlist 里加了 *.google.com,那 Google 广告 (ads.google.com) 也被一起放了。想精确放行 Google 服务但拦广告,应该:

而不是简单放 *.google.com。

坑 2:通配符不匹配根域名

*.example.com 不匹配 example.com。如果你要同时放根域名和所有子域名,需要两条规则:

example.com
*.example.com

坑 3:通配符写错格式

坑 4:通配符和 hosts 源的交互

AdAway 的合并逻辑是先把 hosts 源展开成单个条目再和自定义规则合并。所以如果 hosts 源里有 cdn1.adsrv.net、cdn2.adsrv.net 两条,而你在 Allowlist 里加了 *.adsrv.net,最终结果是 Allowlist 放行——通配符精确覆盖源的单个条目。

实战技巧

推荐的工作流:

  1. 跑 APP,用 DNS 日志看哪些域名被拦了但需要
  2. 挑一条代表性的,加 Allowlist
  3. 编辑改成通配符版本(*.xxx.com)
  4. 重新应用
  5. 回测 APP 是否正常

不推荐:凭空写一堆通配符规则然后一个个试——费时费力还容易误杀。