教程

摆脱机场默认限制:利用 Rule-Providers 实现自定义精准分流

为什么机场自带的规则总是不够用?

大多数用户在使用 ClashX 等传统代理工具时,直接导入机场提供的订阅链接就完事了。但随着使用场景的复杂化,你肯定遇到过以下痛点:

  • 流媒体解锁失败:想看特定区域的 Netflix 或 Disney+,但机场默认的策略组把流量分发到了错误的节点。
  • 冷门网站加载慢:一些国内小众网站或学校内网被错误地判定为海外网站,导致绕远路。
  • 多机场订阅整合困难:手握两个机场订阅,想做到“A机场打游戏,B机场看视频”,但手动合并 config.yaml 简直是灾难,而且一旦更新订阅就全覆盖了。

这时候,你就需要告别静态的配置文件,开始使用 Rule-Providers(动态规则集)。

什么是 Rule-Providers?

在传统的 config.yaml 中,规则是一条条写死在文件里的,就像这样:

rules:
  - DOMAIN-SUFFIX,netflix.com,Streaming
  - DOMAIN-SUFFIX,google.com,PROXY

如果列表有上千条,配置文件会变得极其庞大且难以维护。

Rule-Providers 允许你将这些规则提取到一个独立的文件(或远程链接)中。主配置只需引用这个 Provider,ClashFX 就会在后台自动下载和定期更新它。比如使用 Loyalsoldier 等大佬维护的开源规则集,你甚至不需要自己去找规则。

实战:如何在 YAML 中配置 Rule-Providers

要在 ClashFX 中启用 Rule-Providers,你需要在配置文件中添加 rule-providers 字段,并在 rules 中引用它。

第一步:定义 Provider

rule-providers:
  apple:
    type: http
    behavior: domain
    url: "https://raw.githubusercontent.com/Loyalsoldier/clash-rules/release/apple.txt"
    path: ./ruleset/apple.yaml
    interval: 86400

  reject:
    type: http
    behavior: domain
    url: "https://raw.githubusercontent.com/Loyalsoldier/clash-rules/release/reject.txt"
    path: ./ruleset/reject.yaml
    interval: 86400

参数解析:

  • type: http 表示从网络下载。
  • behavior: domain 表示该规则集的内容是域名列表。
  • interval: 86400 表示每 24 小时(86400秒)在后台自动更新一次。

第二步:在 Rules 中引用

在最底部的 rules 数组中,使用 RULE-SET 语法来调用你刚才定义的 provider:

rules:
  # 优先拦截广告
  - RULE-SET,reject,REJECT
  # 苹果服务直连
  - RULE-SET,apple,DIRECT
  # 其他流量走代理
  - MATCH,PROXY

现在,每当 apple.txt 的维护者更新了苹果的服务器域名,ClashFX 就会自动拉取更新,你的本地规则永远是最新的!


关于 Pro 可视化编辑器

ClashFX Pro 正在筹备中,尚未开放购买或激活。可视化配置编辑器是待讨论的概念方向,并非当前可用功能;最终功能与价格待公布。现在请使用 ClashFX 当前提供的 YAML 编辑器配置 Rule-Providers。

👉 查看 Pro 概念预览

开始使用 ClashFX

免费下载并使用 ClashFX 当前的核心功能。Pro 正在筹备中,价格与最终功能待公布。

常见问题

不会。ClashFX 会在后台异步更新 Rule-Providers,并且规则集缓存在本地,不会影响核心代理进程的启动。

如果 YAML 语法错误,ClashFX 会拒绝加载新配置。检查错误提示和行号,修正 YAML 后再重新加载。