[Proxy Group] 服务器调度组
本节用于配置代理服务器调度组,聚合多个目标服务器并支持手动选择、延迟测速、故障转移、负载均衡及网络环境匹配等调度策略。
语法声明块
调度组通过标准的 INI 配置行进行声明:
ini
name = type, member1, member2, ..., [options...]各组成部分解析如下:
name:调度组的唯一命名标识,供[Rule]分流策略或上级调度组引用。type:调度类型(大小写不敏感),支持select、url-test、fallback、load-balance、subnet。member1, member2, ...:候选成员列表。成员支持填写:[Proxy]中声明的命名代理服务器;- 内置动作策略(如
DIRECT、REJECT、REJECT-DROP); - 其他调度组名称(实现多级嵌套与级联调度)。
[options...]:键值选项(格式为key=value),用于配置外部节点资源挂载(includes)、健康检查频率(check-interval)、延迟切换容差(tolerance)、负载均衡算法(algorithm)等参数。
subnet 类型语法
对于 subnet 类型调度组,候选出口由网络匹配条件决定,不使用位置参数成员列表:
ini
name = subnet, default=outbound_name, condition1=outbound1, condition2=outbound2, ...调度组类型总览
| 声明类型 | 调度模式 | 备注 |
|---|---|---|
select | 手动选择 | |
url-test | 自动测速 | |
fallback | 故障转移 | |
load-balance | 负载均衡 | |
subnet | 网络环境匹配 |
通用选项
除 subnet 外,其余所有调度组均支持以下通用控制选项:
includes(资源名称列表,默认空列表) 适用类型:全部(除 subnet)。引入外部节点资源,引用 Proxy Resource 定义的资源;多个名称以逗号分隔并整体使用双引号包裹。check-interval(正整数,单位:秒,默认值300) 适用类型:url-test、fallback、load-balance。健康检查与延迟探测的执行周期。
调度组类型与特定选项
select 手动选择
select 类型由外部显式选择生效成员:
ini
name = select, member1, member2, ..., [includes="Resource1,Resource2"]除了位置参数中显式列出的节点外,还可通过 includes 引入外部节点资源中的所有节点作为候选成员。
ini
[Proxy Group]
Proxy = select, AutoTest, DirectOut, Node-A, Node-B, includes=RemoteNodesurl-test 自动测速
并发探测候选节点的延迟,自动选择延迟最低的可用节点:
tolerance(无符号整数,单位:秒,默认值0) 延迟切换容差;新最优节点的延迟若未低于当前活动节点超过该容差值,则保持当前节点不变。
测速探测与切换机制
- 探测目标解析:测试 URL 优先使用候选节点自身的
override-test-url;若节点未单独设置,则继承[General]全局配置的proxy-test-url。 - 容差机制:配置
tolerance(秒)后,仅当候选节点的延迟比当前活动节点低出该数值以上时才执行切换。
ini
[Proxy Group]
AutoTest = url-test, NodeA, NodeB, NodeC, check-interval=180, tolerance=1fallback 故障转移
fallback 类型按配置顺序选择可用成员:
max-preferred-latency(正整数,单位:毫秒,未设置) 候选成员健康判定门限;探测延迟高于此门限的成员被判定为不可用。
fallback 调度组从首个成员开始依次检测健康状态。只要排在前面的成员保持健康,流量经由该成员转发;当前驱成员探测超时或延迟超出 max-preferred-latency 时,顺延使用下一顺位成员;当所有成员均不可用时,回退至第一个初始成员。
ini
[Proxy Group]
HighAvailability = fallback, PrimaryNode, BackupNode, DIRECT, check-interval=60, max-preferred-latency=800load-balance 负载均衡
load-balance 类型在健康成员之间分发连接:
algorithm(枚举值,默认值pcc) 连接分配调度算法,可选pcc/0/consistent-hash、random/1、round-robin/2,详见下文。max-preferred-latency(正整数,单位:毫秒,未设置) 候选成员健康判定门限;超出此延迟的成员暂时移出负载分配池。
调度算法机制
pcc(consistent-hash):一致性哈希算法。基于目标主机名或目标 IP 计算哈希值,相同目标的请求分配至同一成员。random:随机分发。为每个新建立的连接随机选取一个可用成员。round-robin:轮询分发。在健康成员列表上按顺序循环分配新建连接。
ini
[Proxy Group]
LoadBalanced = load-balance, NodeA, NodeB, NodeC, algorithm=pcc, check-interval=120, max-preferred-latency=600subnet 网络环境匹配
根据当前网络属性(Wi-Fi SSID、BSSID、接口类型或网关地址)匹配网络出口:
default(代理名称或调度组名称,必填) 当当前网络未命中任何匹配条件时的默认出口。- 条件映射键(格式为
前缀:匹配值 = 目标名称,未设置) 网络环境与出口目标的映射规则,支持声明多条。
网络匹配前缀
前缀大小写不敏感,支持以下匹配维度:
SSID:名称:匹配当前连接的 Wi-Fi 名称(SSID)。未带前缀的键值默认按 SSID 规则处理。BSSID:MAC地址:匹配当前连接的无线热点 AP 物理 MAC 地址。TYPE:网络类型:匹配当前系统网络介质类型(例如WIFI、CELLULAR)。GATEWAY:网关IP:匹配当前网卡的默认网关 IP 地址。
ini
[Proxy Group]
AutoNetwork = subnet, default=ProxyGroup, SSID:HomeWiFi=DIRECT, SSID:OfficeCorp=OfficeGateway, TYPE:CELLULAR=DIRECT配置示例
基础配置
ini
[Proxy Group]
# 1. 手动选择组
FinalProxy = select, AutoTest, FallbackGroup, LoadBalancedGroup, DIRECT
# 2. 自动测速组
AutoTest = url-test, includes=RemoteNodes, check-interval=300, tolerance=1
# 3. 故障转移组
FallbackGroup = fallback, PrimaryNode, BackupNode, DIRECT, check-interval=60, max-preferred-latency=500
# 4. 负载均衡组
LoadBalancedGroup = load-balance, NodeA, NodeB, NodeC, algorithm=consistent-hash, check-interval=180
# 5. 子网环境匹配组
OfficeAware = subnet, default=FinalProxy, SSID:OfficeWiFi=DIRECT, TYPE:CELLULAR=FinalProxy