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许可协议。转载请注明出处!
<< 上一篇
下一篇 >>