策略组

策略组

Egern 支持几种自定义策略:select(手动选择)、auto_test(延迟测试)、fallback(可用测试)、load_balance(负载均衡)、和external(外部资源)。此外,Egern 也支持两种默认策略:DIRECT(直连) 和 REJECT(拒绝)。

在 Egern 中,策略是决定如何处理网络流量的规则。您可以创建多个策略,每个策略都可以有多个代理服务器。当流量符合特定的规则时,Egern 将选择相应策略的代理服务器来处理流量。

手动选择策略

这种策略允许用户手动选择一个子策略或代理。这对于经常需要切换代理服务器的用户来说非常有用。

字段名类型是否必填描述
namestring策略名称
policiesstring 数组子策略名称或代理服务器名称

延迟测试策略

此策略会自动选择延迟最低的子策略或代理。这对于希望自动选择最快的代理服务器的用户来说非常有用。

字段名类型是否必填描述
namestring策略名称
policiesstring 数组子策略名称或代理服务器名称
intervalinteger延迟测试的间隔,默认为10分钟
toleranceinteger延迟测试的差值变更范围,默认为100毫秒
timeoutinteger延迟测试超时时间,默认为5秒

可用测试策略

此策略会自动选择能够访问的第一个子策略或代理。这对于希望自动选择可用的代理服务器的用户来说非常有用。

字段名类型是否必填描述
namestring策略名称
policiesstring 数组子策略名称或代理服务器名称
intervalinteger可用性测试的间隔,默认为10分钟
timeoutinteger可用性测试超时时间,默认为5秒

负载均衡策略

此策略尽可能将流量平均分配给所有子策略或代理。这对于希望分散流量,防止单一代理服务器过载的用户来说非常有用。

字段名类型是否必填描述
namestring策略名称
policiesstring 数组子策略名称或代理服务器名称

外部资源策略

此策略使用本地或远程的策略组。这对于希望复用或共享策略的用户来说非常有用。

字段名类型是否必填描述
namestring策略名称
typestring代理集合的类型,可选值为 select,auto_test,fallback,load_balance
urlsstring 数组代理集合的地址,可以是本地路径或远程代理链接
intervalinteger延迟测试的间隔,默认为10分钟
toleranceinteger延迟测试的差值变更范围,默认为100毫秒
timeoutinteger延迟测试超时时间,默认为5秒
update_intervalinteger更新间隔,默认为一天

本地或远程内容应为一组代理。

proxies:
  - socks5:
      name: Socks5
      server: 127.0.0.1
      port: 1080
      username: ""
      password: ""
      tfo: true
      udp_relay: true
  - trojan:
      name: Trojan
      server: 127.0.0.1
      port: 443
      sni: bing.com
      password: password
      tfo: false
      udp_relay: true

配置示例

policy_groups:
  - select:
      name: "手动选择"
      policies:
        - US
        - JP
  - auto_test:
      name: "延迟测试"
      policies:
        - US
        - JP
  - fallback:
      name: "可用测试"
      policies:
        - US
        - JP
  - load_balance:
      name: "负载均衡"
      policies:
        - US
        - JP
  - external:
      name: "远程代理"
      type: select
      urls:
        - "https://raw.githubusercontent.com/proxies.yaml"

在此配置中,我们设置了几种策略,包括手动选择、延迟测试、可用测试、负载均衡以及外部资源。每个策略都有自己的名称,并且列出了可以用于该策略的代理服务器(US 和 JP)。在外部资源策略中,我们设置了一个远程代理的 URL。