v2ray进阶篇:负载均衡实现多线程下载带宽叠加,油管8K视频秒开
经常有人问我v2ray可以实现负载均衡吗?答案是肯定的。v2ray的负载均衡能实现什么功能?第一,自动切换节点,会根据观测记录选择 HTTPS GET 请求完成时间最快的一个出站连接。这个功能和Clash提供的功能很类似。第二,会从出站节点数组中随机选出一个作为最终的出站连接。实现宽带叠加,同时降低节点负载。例如我有两只免费的小笨鸡hax.co.id/woiden.id,不管使用哪一个,速度都不是很好,油管上看1080P都不流畅,更不要提8K秒开了。今天我就带领大家使用v2ray负载均衡实现多线程下载带宽叠加。
一、远程服务器端
v2ray负载均衡对于远程服务器端使用什么协议,没有过多要求,常用的vmess,vless,shadowsocks,trojan均支持。但是我更习惯使用本站提供的V2ray多合一脚本安装VMESS+websocket+TLS+Nginx。
bash <(curl -sL https://raw.githubusercontent.com/hiifeng/v2ray/main/install_v2ray.sh)
二、客户端配置
1、windows客户端软件使用v2rayN,可以在github上下载目前的最新版本。
https://github.com/2dust/v2rayN/releases/download/5.38/v2rayN-Core.zip
2、配置config.json文件,建议使用Notepad++或UltraEdit等文本编辑器。配置文件内容参考如下:
{
"policy": {
"system": {
"statsOutboundUplink": true,
"statsOutboundDownlink": true
}
},
"log": {
"access": "",
"error": "",
"loglevel": "warning"
},
//入站规则
"inbounds": [
{
"tag": "socks",
"port": 10808,
"listen": "127.0.0.1",
"protocol": "socks",
"sniffing": {
"enabled": true,
"destOverride": [
"http",
"tls"
]
},
"settings": {
"auth": "noauth",
"udp": true,
"allowTransparent": false
}
},
{
"tag": "http",
"port": 10809,
"listen": "127.0.0.1",
"protocol": "http",
"sniffing": {
"enabled": true,
"destOverride": [
"http",
"tls"
]
},
"settings": {
"auth": "noauth",
"udp": true,
"allowTransparent": false
}
},
{
"tag": "api",
"port": 53284,
"listen": "127.0.0.1",
"protocol": "dokodemo-door",
"settings": {
"udp": false,
"address": "127.0.0.1",
"allowTransparent": false
}
}
],
//出站规则
"outbounds": [
{//小鸡woiden.id节点的配置
"tag": "woiden", //需要给节点配置tag,名称任意
"protocol": "vmess",
"settings": {
"vnext": [
{
"address": "woiden.ifeng.ml",
"port": 443,
"users": [
{
"id": "948a4c79-ef2a-46f0-a781-810db9efc4a1",
"alterId": 0,
"email": "[email protected]",
"security": "auto"
}
]
}
]
},
"streamSettings": {
"network": "ws",
"security": "tls",
"tlsSettings": {
"allowInsecure": false,
"serverName": "woiden.ifeng.ml"
},
"wsSettings": {
"path": "/woiden",
"headers": {
"Host": "woiden.ifeng.ml"
}
}
},
"mux": {
"enabled": false,
"concurrency": -1
}
},
{//小鸡hax.co.id节点的配置
"tag": "hax", //需要给节点配置tag,名称任意
"protocol": "vmess",
"settings": {
"vnext": [
{
"address": "haxid.ifeng.ml",
"port": 443,
"users": [
{
"id": "5bc4ab2e-63fe-11ed-81ce-0242ac120002",
"alterId": 0,
"email": "[email protected]",
"security": "auto"
}
]
}
]
},
"streamSettings": {
"network": "ws",
"security": "tls",
"tlsSettings": {
"allowInsecure": false,
"serverName": "haxid.ifeng.ml"
},
"wsSettings": {
"path": "/haxid",
"headers": {
"Host": "haxid.ifeng.ml"
}
}
},
"mux": {
"enabled": false,
"concurrency": -1
}
},
{
"tag": "direct",
"protocol": "freedom",
"settings": {}
},
{
"tag": "block",
"protocol": "blackhole",
"settings": {
"response": {
"type": "http"
}
}
}
],
//探针,每隔10分钟测试一次数组中节点的连接速度,负载均衡策略对象为leastPing会调用。
"observatory": {
"subjectSelector":[
"woiden",
"hax"
],
"probeInterval":"10m"
},
"stats": {},
"api": {
"tag": "api",
"services": [
"StatsService"
]
},
"routing": {
"domainStrategy": "IPIfNonMatch",
"balancers": [//负载均衡策略
{
"tag": "balancer",
"selector": [//一个字符串数组,其中每一个字符串将用于和出站协议标识的前缀匹配。
"woiden",
"hax"
],
"strategy": {//负载均衡策略对象
//type可填 random 或 leastPing ;random 会从出站中随机选出一个作为最终的出站连接;
//leastPing 会根据观测记录选择 HTTPS GET 请求完成时间最快的一个出站连接。
"type": "random"
}
}
],
"rules": [
{
"type": "field",
"inboundTag": [
"api"
],
"outboundTag": "api",
"enabled": true
},
{
"type": "field",
"outboundTag": "direct",
"domain": [
"domain:example-example.com",
"domain:example-example2.com"
],
"enabled": true
},
{
"type": "field",
"outboundTag": "block",
"domain": [
"geosite:category-ads-all"
],
"enabled": true
},
{
"type": "field",
"outboundTag": "direct",
"domain": [
"geosite:cn"
],
"enabled": true
},
{
"type": "field",
"outboundTag": "direct",
"ip": [
"geoip:private",
"geoip:cn"
],
"enabled": true
},
{//将流量转发给负载均衡策略
"type": "field",
"network": "tcp,udp",
"balancerTag": "balancer"
}
]
}
}相关说明:
①以上示例,我在outbounds中放了两个节点。节点数量没有限制,根据自己情况添加即可。
②leastPing需要v2ray v4.38.0以上版本才能支持,建议v2ray使用最新版本。
③183行,type值为random宽带叠加,type值为leastPing自动选择速度最快的节点出站。
④使用v2ray实现的透明代理同样支持宽带叠加,明白原理后,简单修改一下config.json文件即可。
⑤使用v2ray负载均衡宽带叠加,如果节点套cdn时,可以实现单线复用。
3、v2rayN客户端配置,点击菜单上“服务器”中的“添加自定义服务器”,
然后选择上一步配置好的config.json文件,导入即可。从下面图片中你可以看到,随机与节点hax或woiden建立连接。
三、测速情况
1、本例中只使用hax.cd.id节点的测速情况
2、本例中只使用woiden.id节点的测速情况
3、使用v2ray负载均衡实现带宽叠加后的测速情况

参考文献:
https://toutyrater.github.io/app/balance.html
https://guide.v2fly.org/routing/balance2.html
https://www.v2fly.org/config/routing.html#balancerobject
https://www.v2fly.org/config/observatory.html#observatoryobject
本文出处:HiFeng'Blog
本文链接:https://hicairo.com/post/41.html
版权声明:本博客所有文章除特别声明外,均采用CC BY-NC-SA许可协议。转载请注明出处!
<< 上一篇
下一篇 >>