1 ACL4SSR 是什么,Rule Provider 解决什么问题
ACL4SSR 是社区长期维护的一套「规则碎片」集合,面向 Clash 系客户端,把常见站点按用途拆成多个 YAML 文件,例如国外媒体、国内直连、广告关键字、Telegram、局域网绕过等。你在配置里并不需要把整份清单复制进 rules,而是使用内核的 Rule Provider 能力:声明一个远程 url、本地 path 缓存路径与 interval 更新周期,内核会按行为类型(常见为 classical)加载规则,并在 rules 里用 RULE-SET 一次性引用整包域名。
对普通用户而言,收益非常直观:流媒体域名与广告联盟域名由社区跟进清单更新,你只需维护「这条规则集走哪个策略组」这一层逻辑。本文示例基于上游仓库中的 Clash/Providers/ProxyMedia.yaml 与 Clash/Providers/BanAD.yaml,二者分别覆盖 Netflix、Disney+、YouTube 等ProxyMedia段落,以及常见广告关键字与联盟域名。
下文以 Clash.Meta(Mihomo) 语法为准(rule-providers 支持 format: yaml)。若你使用图形客户端,只需把等价字段填进「规则订阅」界面即可,底层仍是同一套拉取与缓存机制。
2 为什么流媒体与去广告特别适合 Rule Provider
Netflix、Disney+ 这类服务的边缘域名与 CDN会随时间增减;手工维护不仅费时,还容易出现「应用已更新域名、你的规则仍指向旧后缀」的错位。把 ProxyMedia 作为远程规则集,本质上是把「域名清单的演进」外包给社区仓库,你只决定命中后走代理还是直连。
广告拦截同理:BanAD 通过大量 DOMAIN-SUFFIX 与 DOMAIN-KEYWORD 覆盖常见追踪与联盟域名,比浏览器插件更靠近网络栈,能在系统级应用里减少广告请求的发起。需要强调的是:规则集拦截的是已知广告域名,并不是魔法;对加密流量中的第一方广告或同域嵌入内容,仍可能无能为力(后文详述)。
3 策略组怎么命名:示例与自定义
ACL4SSR 的在线全量模板里,常见写法会把流媒体归到一个名为 🎥 国外媒体 或 ProxyMedia 的策略组,把去广告指向 REJECT。你在自己配置中可以保留 Emoji 名称,也可以改成纯英文,只要rules 与 proxy-groups 中的名字完全一致即可。若你已有「自动选择」「香港节点」等分组,也可以让 RULE-SET,…,你的分组名 指向其中任意一个。
实务上推荐单独准备流媒体专用组:与「全局负载均衡」解耦,避免视频流量把低延迟节点挤满;当某平台提示异常时,也便于在 UI 里快速切换到指定地区节点做 A/B 测试。若你尚未让游戏主机或电视盒子走网关代理,可先通读《Clash Verge Rev TUN 模式完全指南》,把局域网设备的流量先纳入隧道,再叠加本文规则集。
4 规则顺序:广告、媒体、直连与最后的 MATCH
Clash 规则按自上而下匹配,命中即停止。常见安全顺序是:局域网与本地绕过 → 广告规则 REJECT → 明确的直连/国内集合 → 流媒体 RULE-SET 走代理组 → GEOIP 或其余广域规则 → 最后 MATCH。若把 BanAD 放在太靠后,部分广告请求可能已被更宽泛的代理规则提前带走,拦截效果会打折扣。
流媒体集合通常应位于「会把国外流量一把丢给代理」的粗规则之前,否则看似也能播放,但排查日志时很难看出究竟是专用规则命中,还是被后面的 GEOIP,!cn 之类兜底。清晰的顺序让连接日志与策略组切换更可读,也方便你在出问题时对照上游仓库的更新说明。
RULE-SET,再考虑临时注释该集合或改为 DIRECT 做验证。
5 rule-providers:拉取 ACL4SSR 远程规则
下列片段声明两个 Provider,分别指向官方仓库 raw 地址。请确保运行目录对 path 所指文件夹可写,以便首次下载与定时更新缓存。interval 可按需调整,常用为 86400 秒(一天)。若你所在网络访问 GitHub 不稳定,可换用可信镜像前缀,但务必核对文件内容与校验习惯,避免供应链风险。
rule-providers:
acl4ssr_proxy_media:
type: http
behavior: classical
format: yaml
url: "https://raw.githubusercontent.com/ACL4SSR/ACL4SSR/master/Clash/Providers/ProxyMedia.yaml"
path: ./ruleset/acl4ssr_proxy_media.yaml
interval: 86400
acl4ssr_ban_ad:
type: http
behavior: classical
format: yaml
url: "https://raw.githubusercontent.com/ACL4SSR/ACL4SSR/master/Clash/Providers/BanAD.yaml"
path: ./ruleset/acl4ssr_ban_ad.yaml
interval: 86400
如需更强力的应用级广告过滤,可额外订阅 BanProgramAD.yaml 等文件,但误杀概率也会上升,建议逐条加回并观察日志。内核版本较旧时若不支持 format: yaml,请升级 Meta 内核或改用客户端内置的规则订阅格式说明。
6 rules:流媒体进代理组,广告走 REJECT
在已有 proxy-groups 的前提下,把下面两行插入到你规划好的位置(示例组名为 🎥 国外媒体,请替换为你的实际策略组名)。注意 RULE-SET 左侧的 key 必须与 rule-providers 下的名称一致。
rules:
# ... LAN / DIRECT / other RULE-SET entries above ...
- RULE-SET,acl4ssr_ban_ad,REJECT
- RULE-SET,acl4ssr_proxy_media,🎥 国外媒体
# ... GEOIP, MATCH, etc. below ...
若你希望 Netflix 与 Disney+ 走不同地区的节点,需要把 ProxyMedia 拆成更细的 Provider(或配合 rules 中的单域名规则)并指向不同策略组;单一 ProxyMedia 集合默认是「整包命中同一出口」。这与节点订阅中的「解锁流媒体」标签是两件独立的事:前者管域名走向,后者管出口是否被平台认可。
DIRECT,优先检查规则顺序与策略组名称拼写,其次检查 Provider 是否成功下载到本地缓存文件。
7 Netflix、Disney+「解锁」在工程上意味着什么
规则能做的,是保证客户端访问 netflix.com、disneyplus.com 及其 CDN 域名时,流量进入你指定的代理隧道,而不是走本地直连。平台是否判定「可观看」,还取决于出口 IP 是否位于服务可用区域、是否被标记为数据中心或代理、以及你的订阅档位是否支持该内容。若出现「仅能看自制剧」或错误代码,请在同一策略组内更换节点地区,并配合《彻底防止 DNS 泄漏:Meta 内核 DoH + FakeIP》核对 DNS 是否仍在明文泄露,避免规则显示代理而解析却在本地完成。
Disney+ 与 Netflix 的检测机制都会周期性调整,社区规则也会跟进新增后缀;因此 interval 不宜过长,且在重大节假日平台活动前后,可手动触发一次规则更新。若你使用分流路由器或旁路网关,请确认电视、盒子终端的默认网关与 DNS确实指向运行 Clash 的设备,否则规则在 PC 上正确、大屏端仍可能直连。
8 广告拦截的边界:HTTPS、第一方与日志隐私
BanAD 针对的是已知的第三方广告与统计域名;对嵌在正文里的推广、与主站同域的资源,或需要完整加载才能识别的脚本链,域名级规则往往够不着。与此同时,过度拦截可能导致某些 SaaS 后台、广告联盟依赖的统计接口无法加载,表现为白屏或按钮无响应。建议把去广告当作体验增强而非安全银弹,遇到业务站点异常时,优先临时关闭对应 RULE-SET 验证。
从隐私角度,拦截广告域名能减少明显的跨站追踪;但若同时未处理好 DNS 与 SNI 等链路,仍可能暴露访问轮廓。对高敏感场景,应把规则与 DNS、TUN 策略一并设计,而不是只订阅一份广告列表。
9 更新失败、缓存损坏与镜像切换
- 首次启动拉取失败:检查能否访问 raw.githubusercontent.com,必要时换时段或使用可信镜像;同时确认本机时钟正确,避免 TLS 握手失败。
- 本地缓存校验:打开
path指向的 YAML,确认非空且含payload:头;若文件半截,删除后重启客户端强制重拉。 - 规则未生效:核对
mode: rule、规则顺序、策略组名称与日志中的命中结果是否一致。 - 性能顾虑:超大型 RULE-SET 会占用内存;若设备性能有限,可改用更小的子集或提高命中精度,而不是无限堆叠 Provider。
10 总结
通过 Rule Provider 订阅 ACL4SSR,你可以用少量 YAML 把 ProxyMedia 中的 Netflix、Disney+、YouTube 等域名稳定导向流媒体策略组,同时用 BanAD 在域名层拦截大量广告与追踪请求。关键是顺序正确、命名一致、缓存可更新,并清醒区分「规则分流」与「节点解锁」的边界。
与手工堆规则相比,远程规则集让配置更短、更可维护;与单纯换节点相比,补齐 DNS 与 TUN 协同才能减少「看似走了代理却仍被平台拒绝」的隐性问题。若你希望在图形界面里完成订阅导入、规则更新与一键 TUN,可从站内 下载页 选择适合的客户端,把同一套 Meta 内核逻辑用在桌面与移动端;相比分散修改系统设置,一体化工具在长期迭代与回滚上通常更省力。
落地后建议保留一份最小可运行配置备份,再逐步叠加 ProgramAD 等更强规则,遇到异常即可快速对比回退。这样流媒体、去广告与默认兜底才能各司其职,而不是互相抢命中。