代理组
[[proxy-group]] 给多个代理起一个共同的名字,并决定每条连接用哪一个。规则和 global-proxy 可以像引用代理一样引用代理组。
toml
[[proxy-group]]
name = "work"
type = "fallback"
proxies = ["office", "office-backup", "DIRECT"]
url = "https://www.gstatic.com/generate_204"
interval = 300类型
type | 选择方式 |
|---|---|
select | 在 UI 中手动选择的成员;未选择时使用第一个 |
url-test | 健康检查延迟最低的成员 |
fallback | 按列表顺序第一个通过健康检查的成员 |
load-balance | 按 strategy 为每条连接选一个成员 |
字段
| 字段 | 类型 | 适用 | 说明 |
|---|---|---|---|
name | 字符串 | 全部 | 必填;在代理和代理组中唯一;不能含逗号 |
type | 字符串 | 全部 | 必填;四种类型之一 |
proxies | 数组 | 全部 | 必填;[[proxy]] 名称、DIRECT 或 REJECT |
url | 字符串 | url-test、fallback、load-balance | 健康检查地址,应快速返回,例如 https://www.gstatic.com/generate_204 |
interval | 整数 | 同上 | 健康检查间隔(秒),必须为正。不写就不会做健康检查,url-test 和 fallback 永远不会切换 |
tolerance | 整数 | url-test | 毫秒;其他成员快出这么多时才切换 |
strategy | 字符串 | load-balance | consistent-hashing(同一目标固定同一成员)或 round-robin |
dialer-proxy | 字符串 | 全部 | 所有成员都经由这个代理连接,见代理链 |
icon | 字符串 | 全部 | UI 中显示的图标 |
出现其他字段会报错 unknown field。
示例
手动选择:
toml
[[proxy-group]]
name = "exit"
type = "select"
proxies = ["office", "home", "DIRECT"]自动选最快:
toml
[[proxy-group]]
name = "auto"
type = "url-test"
proxies = ["office", "home"]
url = "https://www.gstatic.com/generate_204"
interval = 300
tolerance = 50分散连接:
toml
[[proxy-group]]
name = "spread"
type = "load-balance"
proxies = ["office", "home"]
strategy = "consistent-hashing"
url = "https://www.gstatic.com/generate_204"
interval = 300校验器强制的规则
- 代理组不能嵌套。 成员只能是代理、
DIRECT或REJECT。想合并两个组的成员,直接列出代理。 - 每个成员都必须存在。 拼错会报
Proxy group '<组名>' references unknown proxy: <名称>。 - 至少一个成员。
proxies为空会被拒绝。 - 使用
dialer-proxy时, 成员必须是具体代理(不能是DIRECT或REJECT),且 dialer 代理 本身不能同时是成员。 - 代理组字段
use(按过滤条件引用 provider 成员)在当前版本不可用。
说明
- 健康检查只能证明检查地址经由该成员可达。请选一个与你关心的流量走同一路径的地址。
load-balance分配的是整条连接,不会把多个成员的带宽叠加到一次下载上。- 在
fallback组最后放一个DIRECT,所有代理都挂掉时流量仍能通。如果这部分流量绝不能直连, 就不要加。