REJECT 是与 DIRECT、代理组并列的一种出口:命中的连接被直接拒绝。把广告与跟踪域名的规则指向 REJECT,就实现了系统级去广告——对所有走 Clash 的应用生效,不限于浏览器。

接入拦截规则集

rule-providers:
  reject:
    type: http
    behavior: domain
    url: "https://cdn.example.com/reject-list.txt"   # 换成所选规则源
    path: ./ruleset/reject.yaml
    interval: 86400

rules:
  - RULE-SET,reject,REJECT
  # ……其余规则

中文环境常用的拦截源有 anti-AD、Loyalsoldier reject 等。拦截规则应放在直连/代理规则之前,否则广告域名会先被“国内直连”之类的宽规则放走。

网络层拦截的边界

  • 能拦:独立域名投放的广告、App 内嵌广告 SDK 的请求、跟踪统计上报。
  • 不能拦:与正文同域名同链接下发的广告(如部分视频平台的贴片)——网络层无法区分,需要浏览器插件做元素级处理。
  • 因此实践中“Clash REJECT + 浏览器插件”双层组合效果最好,两者互不冲突。

误杀排查与放行

某网站功能异常、图片加载不出来时,怀疑误杀的排查步骤:

  1. Connections 页面按域名过滤,看是否有连接 Chains 列显示 REJECT
  2. 确认误杀后,在拦截规则之前插入放行规则:DOMAIN-SUFFIX,被误杀的域名.com,DIRECT
  3. 不确定时可临时把整条 RULE-SET 注释掉对比验证。
提示:拦截列表越激进误杀越多。首次启用建议选择口碑良好的保守列表,稳定使用一段时间再考虑加强。