跳到主要内容

策略组

策略组用于组织和管理多个代理节点,根据不同的选择策略决定使用哪个节点。策略组可包含代理服务器、其他策略组或内置策略。

支持的策略组类型:select(手动选择)、auto_test(自动测速)、fallback(故障转移)、load_balance(负载均衡)、external(外部资源)、conditional(条件选择)。

内置策略:DIRECT(直连)、REJECT(拒绝连接)。

通用字段

以下字段在所有策略组类型(conditional 除外)中通用:

  • name (string), 必填

    策略组名称,必须全局唯一。

  • policies (string 数组), 必填

    子策略列表。可以是代理服务器名称、其他策略组名称或内置策略(DIRECTREJECT)。

  • flatten (bool), 可选

    展开嵌套策略组中的所有代理节点。设置为 true 时,子策略组中的节点会全部展开显示,而不是只显示策略组名称。常配合 filter 使用。

  • filter (string), 可选

    正则表达式过滤器,仅保留名称匹配的节点。常用于配合 flatten 从订阅中筛选特定节点,如 (?i)香港|HK

  • block_quic (bool), 可选

    阻止 QUIC 协议。设置为 true 时,使用此策略组的连接将不会使用 QUIC/HTTP3 协议。

  • icon (string), 可选

    图标,支持 SF Symbols 名称或图标 URL。

  • hidden (bool), 可选

    是否在 UI 中隐藏此策略组。

  • prev_hop (string), 可选

    前置代理,用于构建代理链。流量路径:本机 → 前置代理 → 当前节点 → 目标。

手动选择

用户手动选择使用哪个子策略。

仅使用通用字段,无额外字段。

- select:
name: "手动选择"
policies:
- 香港节点
- 日本节点
- 自动选择
icon: globe

自动测速

定期测试所有子策略的延迟,自动选择延迟最低的节点。当检测到更低延迟的节点时,会根据 tolerance 决定是否切换。

通用字段外,额外支持:

  • interval (integer), 可选

    测速间隔(秒),默认 600。设置为 0 或负数时禁用自动测速。

  • tolerance (integer), 可选

    切换容差(毫秒),默认 100。只有当新节点延迟比当前节点快超过此值时才会切换,避免延迟相近时频繁切换。

  • timeout (integer), 可选

    单个节点测速超时(秒),默认 5,最大 60。

- auto_test:
name: "自动选择"
policies:
- 香港节点
- 日本节点
interval: 600
tolerance: 100
timeout: 5

故障转移

按子策略的顺序依次尝试,选择第一个可用的节点。当前节点不可用时自动切换到下一个;高优先级节点恢复可用时自动切回。

通用字段外,额外支持:

  • interval (integer), 可选

    健康检查间隔(秒),默认 600。设置为 0 或负数时禁用自动检查。

  • timeout (integer), 可选

    单个节点健康检查超时(秒),默认 5,最大 60。

- fallback:
name: "故障转移"
policies:
- 主节点
- 备用节点1
- 备用节点2
interval: 600

负载均衡

在多个子策略之间分配流量。相同域名或 IP 的连接会分配到同一个节点,不同域名/IP 会分散到不同节点。

仅使用通用字段,无额外字段。

- load_balance:
name: "负载均衡"
policies:
- 节点1
- 节点2
- 节点3

外部资源

从远程 URL 加载代理节点列表,支持机场订阅链接。可配置多个订阅 URL,节点会合并显示。

信息

External 不使用 policies 字段,节点来源由 urls 指定。flattenfilter 字段同样不适用。

  • name (string), 必填

    策略组名称,必须全局唯一。

  • type (string), 必填

    加载节点后的选择策略。可选值:selectauto_testfallbackload_balance

  • urls (string 数组), 必填

    订阅 URL 列表,支持 HTTP/HTTPS URL 或本地文件路径。多个订阅的节点会合并显示。

  • filter (string), 可选

    正则表达式过滤器,筛选订阅中的节点,仅保留名称匹配的节点(如 (?i)香港|HK)。

  • interval (integer), 可选

    测速/健康检查间隔(秒),仅 auto_testfallback 类型有效,默认 600。

  • tolerance (integer), 可选

    切换容差(毫秒),仅 auto_test 类型有效,默认 100。

  • timeout (integer), 可选

    测速/健康检查超时(秒),默认 5,最大 60。

  • update_interval (integer), 可选

    订阅更新间隔(秒),默认 86400(24 小时)。设置为 0 或负数时禁用自动更新。

  • block_quic (bool), 可选

    阻止 QUIC 协议。

  • icon (string), 可选

    图标,支持 SF Symbols 名称或图标 URL。

  • hidden (bool), 可选

    是否在 UI 中隐藏此策略组。

  • prev_hop (string), 可选

    前置代理。

- external:
name: "机场订阅"
type: auto_test
urls:
- "https://example.com/subscribe"
filter: "(?i)香港|HK"
interval: 600
tolerance: 100
update_interval: 86400

订阅文件格式

本地或远程订阅文件应返回一组代理服务器配置:

proxies:
- trojan:
name: 香港节点
server: hk.example.com
port: 443
password: password
udp_relay: true
- shadowsocks:
name: 日本节点
server: jp.example.com
port: 8388
method: aes-256-gcm
password: password

条件选择

根据当前网络环境(Wi-Fi SSID、BSSID、蜂窝网络类型)自动选择子策略。规则按顺序匹配,使用第一个匹配成功的策略;若均不匹配则使用默认策略。

  • name (string), 必填

    策略组名称,必须全局唯一。

  • rules (array), 必填

    匹配规则列表,按顺序匹配。支持三种规则类型:

    • ssid - Wi-Fi 名称匹配,支持 glob 通配符(如 Home-*Office*
    • bssid - Wi-Fi 路由器 MAC 地址匹配,支持 glob 通配符(如 aa:bb:cc:*
    • cellular - 蜂窝网络制式匹配,支持 glob 通配符。可用值:NR(5G)、NRNSA(5G NSA)、LTE(4G)、WCDMAHSDPAHSUPACDMAeHRPDEDGEGPRS

    每条规则包含 match(glob 匹配模式)和 policy(匹配时使用的策略)两个字段。

  • default_policy (string), 必填

    默认策略,当所有规则都不匹配时使用。

  • block_quic (bool), 可选

    阻止 QUIC 协议。

  • icon (string), 可选

    图标,支持 SF Symbols 名称或图标 URL。

  • hidden (bool), 可选

    是否在 UI 中隐藏此策略组。

  • prev_hop (string), 可选

    前置代理。

- conditional:
name: "网络环境"
rules:
- ssid:
match: "Home-*"
policy: DIRECT
- bssid:
match: "aa:bb:cc:*"
policy: 香港节点
- cellular:
match: "LTE"
policy: 自动选择
default_policy: 手动选择

配置示例

policy_groups:
# 手动选择:从订阅中筛选香港节点
- select:
name: "香港节点"
policies:
- 机场订阅
flatten: true
filter: "(?i)香港|HK|Hong Kong"
icon: globe

# 自动测速
- auto_test:
name: "自动选择"
policies:
- 香港节点
- 日本节点
interval: 600
tolerance: 100

# 故障转移
- fallback:
name: "故障转移"
policies:
- 主节点
- 备用节点
interval: 600

# 负载均衡
- load_balance:
name: "负载均衡"
policies:
- 节点1
- 节点2

# 外部资源:多订阅合并
- external:
name: "机场订阅"
type: auto_test
urls:
- "https://provider1.com/subscribe"
- "https://provider2.com/subscribe"
filter: "(?i)香港|日本|HK|JP"
update_interval: 86400

# 条件策略组:根据网络环境切换
- conditional:
name: "网络环境"
rules:
- ssid:
match: "Home-*"
policy: DIRECT
- cellular:
match: "NR*"
policy: 自动选择
default_policy: 香港节点