Skip to content

clash订阅聚合和配置托管方案 #58

@javanli

Description

@javanli

背景

clash是目前(2023)最强大的网络代理客户端,基于它可以让我们的网络代理高度自动化。

分流规则这里不做过多讨论,通常机场会提供一套,也可以参考ACL4SSR等开源规则,基本上能做到绝大部分请求自动分流,并自动检测最佳节点(urltest)。

这里主要讨论两个问题

  1. 单个机场会有各种意外导致的不可用,如何通过聚合一主一备两个机场提高网络代理可用性
  2. 如何托管配置使得更新代理配置时可以自动同步到个人的所有设备

订阅聚合

订阅聚合,可以使用一主一备两个机场,把两个机场的代理聚合到一起,当主机场故障时,自动切换到备用机场,提高网络代理的稳定性。
备用机场选用按流量付费,只要主机场不长期挂,备用机场就不会增加很多成本。
这里我采用基于clash原生支持的proxy-providers能力进行订阅聚合,proxy-groups的嵌套能力进行优先级管理。
参考配置如下:

proxy-providers:
  mainproxy:
    type: http
    path: ./mainproxy-provider.yaml
    url: https://xxxx
    interval: 86400
    health-check:
      enable: true
      url: http://www.gstatic.com/generate_204
      interval: 3600
  subproxy:
    type: http
    path: ./subproxy-provider.yaml
    url: https://xxxx
    interval: 86400
    health-check:
      enable: true
      url: http://www.gstatic.com/generate_204
      interval: 3600
proxy-groups:
    - { name: 'auto-mainproxy', type: url-test, use: [mainproxy], url: 'http://www.gstatic.com/generate_204', interval: 86400, lazy: false }
    - { name: 'auto-subproxy', type: url-test, use: [subproxy], url: 'http://www.gstatic.com/generate_204', interval: 86400, lazy: false }
    - { name: '自动选择', type: fallback, proxies: [auto-mainproxy,auto-subproxy], url: 'http://www.gstatic.com/generate_204', interval: 86400 }

注意这里的proxy-groups嵌套,使用两个group分别从主备机场urltest挑选最佳节点,自动选择group从这两个group中顺序选择。这样只有当主机场所有节点都失败时,才会切到备用机场。备用机场只要开一个按量付费的小流量套餐就可以用很久。

配置托管

使用gist托管配置

  1. 创建一个secret的gist,把配置粘贴进去
  2. 复制raw链接,形如https://gist.github.com/javanli/{gist-id}/raw/{file-hash}/clash-config.yaml,去掉file-hash的部分,最终托管链接如:https://gist.github.com/javanli/{gist-id}/raw/clash-config.yaml

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions