# 负载均衡 2
在前面的章节当中有提到过利用 V2Ray 的一个特性来实现负载均衡。但是由于这种负载均衡是投机取巧利用配置实现的,最终的效果不尽如人意,也就在特殊情况下用一用而已,也有人认为这种轮询的机制压根算不上负载均衡。不过经过漫长的等待,V2Ray 终于可均衡负载了,但是可能 V2Ray 认为时机还不成熟,官方文档上并没有负载均衡方面的描述。我研究了一番源代码,粗略测试了几分钟,V2Ray v4.3 版本可以均衡负载了,于是放出本篇教程给大伙尝尝鲜。
# 配置
负载均衡的配置位于 routing 字段,仅需在客户端上配置即可。在 routing 当中,配置一个 balancers 数组,代表这负载均衡的规则,每一个对象包含负载均衡唯一的标签,均衡策略(目前的策略好像只有随机选择)以及可选择的出站代理。然后在路由规则中根据需要配置特定的流量进行负载均衡。在本例中,最后一个路由规则为负载均衡。根据示例可以知道目的地址是私有 IP 或中国大陆的流量直连,其余的所有流量是负载均衡 b1(即 在 jp1 和 jp2 两者之间选择)。本例中没有使用到 b2 的负载均衡。
{
"inbounds": [
...
],
"outbounds": [
{
"tag": "us1",
...
},
{
"tag": "jp1",
...
},
{
"tag": "jp2",
...
},
{
"tag": "hk1",
...
},
{
"tag": "direct",
...
}
],
"routing": {
"domainStrategy": "IPOnDemand",
"balancers": [
{
"tag": "b1",
"selector": [
"jp1",
"jp2"
]
},
{
"tag": "b2",
"selector": [
"us1",
"hk1"
]
}
],
"rules": [
{
"type": "field",
"outboundTag": "direct",
"ip": [
"geoip:private",
"geoip:cn"
]
},
{
"type": "field",
"outboundTag": "direct",
"domain": [
"geosite:cn"
]
},
{
"type": "field",
"network": "tcp,udp",
"balancerTag": "b1"
}
]
}
}
从配置中可以看出,V2Ray 的负载均衡同样有着高度灵活的优点,可以针对指定的流量进行负载均衡,也可以按需配置多个负载均衡,不同底层传输配置的出站协议也可以负载均衡,可以说 V2Ray 的路由有多灵活那么它的负载均衡就有多灵活。
可能是刚刚推出的原因,现在的均衡策略只有随机选择,随着时间的推进应该会陆续有其他的策略。
# 更新历史
- 2018-11-09 初版
- 2019-11-01 修正某些情况下 IP 规则无法匹配
← 禁用 BT