代理协议
策略组

策略组

策略组(proxy-groups)是一系列代理(或策略组)的组合。策略组可以像单个代理一样被分流规则引用,并可以指定特殊的策略提高可用性。

  • 分流规则可以直接引用代理或策略组,但不能引用远程代理集
  • 策略组可以包含多个代理,或者多个远程代理集
  • 策略组可以包含另一个策略组

💡

在 Stash 2.0 以及后面的版本中:

  • 不包含任何代理的策略组,会被当作为 DIRECT 策略处理
  • 支持 filter 字段,通过正则表达式过滤节点
  • 所有类型的策略组都可以包含 url 字段,用于指定策略组的测速 URL,默认的测速 URL 为 http://cp.cloudflare.com/generate_204

集合类型

url-test

url-test 可以定时与指定 URL 测速后,自动选择延迟最短的服务器。

- name: auto
  type: url-test
  proxies:
    - ss1
    - ss2
    - vmess
  url: http://cp.cloudflare.com/generate_204
  interval: 300

fallback

fallback 可以尽量按照用户书写的服务器顺序,在确保服务器可用的情况下,由上至下自动选择服务器。

- name: fallback-auto
  type: fallback
  proxies:
    - ss1
    - ss2
    - vmess

load-balance

load-balance 能充分利用多个代理的带宽。

- name: load-balance
  type: load-balance
  strategy: # consistent-hashing / round-robin
  proxies:
    - ss1
    - ss2
    - vmess

一般建议将 strategy 设置为 consistent-hashing,避免频繁改变 IP 触发服务端的安全策略。

select

select 用来允许用户手动选择。

- name: select
  type: select
  proxies:
    - ss1
    - ss2
    - vmess
    - auto

ssid-group

ssid-groupselect 的特例,可以根据设备的 SSID 自动切换。

需要注意的是,defaultcellular 是两个可选的保留策略:

  • 当在 Wi-Fi 环境下,没有匹配到任何 SSID 时,会自动切换到 default 对应的代理;
  • 在蜂窝数据下,会自动切换到 cellular 对应的代理;
  • 当没有 defaultcellular 时候,不会触发任何操作。
- name: ssid-group
  type: select # 类型必须为 select,兼容原版 clash 配置
  proxies:
    - ss1
    - ss2
    - DIRECT
  ssid-policy:
    # 在 SSID 为 office 的 Wi-Fi 中自动切换为 ss1 策略
    # 在 SSID 为 home 的 Wi-Fi 中自动切换为 ss2 策略
    # 在蜂窝数据中自动切换为 ss3 策略
    # 其他的 SSID 默认为 DIRECT
    office: ss1
    home: ss2
    cellular: ss3
    default: DIRECT

relay

代理的转发链, 流量将通过一系列的代理转发到达目的地。暂时不支持 UDP。

- name: relay
  type: relay
  # 流量: stash <-> http <-> vmess <-> ss1 <-> ss2 <-> 互联网
  proxies:
    - http
    - vmess
    - ss1
    - ss2

连通性检查

Stash 支持多种方式对代理进行连通性检查,包括:

  • ICMP:使用 ICMP 报文进行连通性检查
  • TCP:使用 TCP 握手进行连通性检查
  • HTTP HEAD:默认方式,通过代理发送 HTTP HEAD 进行连通性检查

在 Stash 2.0 以及后面的版本中,支持所有类型的策略组通过 url 字段指定 HTTP HEAD 测速 URL。可以通过填入 interval 字段指定自动测速间隔。

proxy-groups:
  - name: my-fallback
    type: fallback
    url: http://cp.cloudflare.com/generate_204
    interval: 300
    lazy: true # 在策略组没有被使用时候,不进行连通性检查
    use:
      - provider-a # reference to provider-a
      - provider-b # reference to provider-b
 
  - name: my-select
    type: select
    url: http://cp.cloudflare.com/generate_204
    interval: 600
    lazy: true
    use:
      - provider-a # reference to provider-a
      - provider-b # reference to provider-b
💡

策略组内代理的排序方式默认为配置文件顺序,可以在「网络设置」页面改为按连通性检查结果排序。