策略组
策略组用于组织和管理多个代理节点,根据不同的选择策略决定使用哪个节点。策略组可包含代理服务器、其他策略组或内置策略。
支持的策略组类型:select(手动选择)、auto_test(自动测速)、fallback(故障转移)、load_balance(负载均衡)、external(外部资源)、conditional(条件选择)。
内置策略:DIRECT(直连)、REJECT(拒绝连接)。
通用字段
以下字段在所有策略组类型(conditional 除外)中通用:
-
name (string), 必填
策略组名称,必须全局唯一。
-
policies (string 数组), 必填
子策略列表。可以是代理服务器名称、其他策略组名称或内置策略(
DIRECT、REJECT)。 -
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 指定。flatten 和 filter 字段同样不适用。
-
name (string), 必填
策略组名称,必须全局唯一。
-
type (string), 必填
加载节点后的选择策略。可选值:
select、auto_test、fallback、load_balance。 -
urls (string 数组), 必填
订阅 URL 列 表,支持 HTTP/HTTPS URL 或本地文件路径。多个订阅的节点会合并显示。
-
filter (string), 可选
正则表达式过滤器,筛选订阅中的节点,仅保留名称匹配的节点(如
(?i)香港|HK)。 -
interval (integer), 可选
测速/健康检查间隔(秒),仅
auto_test和fallback类型有效,默认 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)、WCDMA、HSDPA、HSUPA、CDMA、eHRPD、EDGE、GPRS
每条规则包含
match(glob 匹配模式)和policy(匹配时使用的策略)两个字段。 - ssid - Wi-Fi 名称匹配,支持 glob 通配符(如
-
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: 香港节点