常规订阅是“节点 + 规则”打包下发,你没法只换规则不换节点。proxy-providers 把节点来源抽出来独立更新:主配置写你自己的规则,节点从一个或多个 provider 拉取——这是“多机场用户自建配置”的核心机制。

基本写法

proxy-providers:
  airport-a:
    type: http
    url: "https://a.example.com/sub?clash=1"
    path: ./providers/airport-a.yaml
    interval: 3600
    health-check:
      enable: true
      url: http://www.gstatic.com/generate_204
      interval: 300
  airport-b:
    type: http
    url: "https://b.example.com/clash"
    path: ./providers/airport-b.yaml
    interval: 3600
    health-check:
      enable: true
      url: http://www.gstatic.com/generate_204
      interval: 300

在代理组中使用 provider

proxy-groups:
  - name: "节点选择"
    type: select
    use:               # 引用 provider(注意是 use 不是 proxies)
      - airport-a
      - airport-b
    proxies:           # 也可以同时混用手写节点
      - DIRECT
  - name: "自动选择"
    type: url-test
    use: [airport-a, airport-b]
    url: http://www.gstatic.com/generate_204
    interval: 300

useproxies 可以并存,provider 里的全部节点会自动展开进组。

要点与坑

  • url 必须返回 Clash 格式(含 proxies 段的 YAML)。只支持节点列表,provider 文件里的规则会被忽略。
  • path 各 provider 必须不同,且建议放在 ./providers/ 子目录,避免与主配置互相覆盖。
  • health-check 强烈建议开启:url-test/fallback 组依赖它的延迟数据。
  • provider 更新失败不影响已缓存的节点(继续用旧文件),Logs 中会有 provider ... update failed 提示。
  • 过滤节点:filter: "香港|HK" 可以只保留名称匹配正则的节点,用于按地区建组。

典型架构

“自建规则 + 多 provider”的完整思路:主配置里写 分流规则和按地区过滤的代理组,节点全部来自 providers。机场换订阅地址时只改一行 url,规则体系纹丝不动。

提示:CFW 的 Proxies 页面会在下方单独展示各 provider 的节点与健康状态,也可以手动触发 provider 更新。