忙的好一段时间没写东西了,科学上网的节点也基本稳定很长一段时间了,节点数量也从原来的几个增加到了二十多个。使用过程中会遇到各类细节问题,但是并不影响使用,但是会影响体验。

我们都知道,上网的网速实际上跟很多东西有关,有跟访问的网站服务有关,有跟你当前访问链路的出口带宽拥挤程度有关,也有跟你本地网络带宽有关系。整个过程中任何一个地方有瓶颈均会影响访问的速度。

大多数人目前本地网络的带宽都已经很高了,有的300M,有的500M甚至许多城市千兆也不少。但是我们用来科学上网的免费vps或者其他自行购买的机器的带宽都不能跑满实际速度。那么是否有办法可以把本地带宽给充分利用起来呢?当然是有的!今天我就来教大家一个小技巧。通过v2ray的配置负载均衡策略,充分利用好多个节点出站,把本地网络带宽用好的方式。

前置准备

  1. 多个vps已经搭好科学上网v2ray节点
  2. 本地带宽充足,但是跑不满。

配置步骤

加深对v2ray的理解,少用一键ui配置,多理解一下各项配置的作用。其中最关键的是负载均衡策略,以及入站出站的配置。

以下两种选择一种即可

配置本地客户端,将多个节点负载均衡作为出站网络

配置文件如下:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
{
"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": [ //出站节点列表
{
"tag": "vc", //节点1标签(可以理解为名字)
"protocol": "vmess", //节点类型
"settings": {
"vnext": [
{
"address": "vc.starpipi.eu.org", //节点访问域名/ip
"port": 443, //节点入站端口
"users": [
{
"id": "61f43534d-746b-437a-bc82-6268234b72ab", //节点UUID
"alterId": 0,
"security": "auto"
}
]
}
]
},
"streamSettings": {
"network": "ws", //节点类型,根据节点搭建的配置设置
"security": "tls", //是否启用tls,若单个节点之前配置走tls则需要设置,下方配置同理
"tlsSettings": {
"allowInsecure": false,
"serverName": "vc.starpipi.eu.org"
},
"wsSettings": { //若节点类型是走的websocket,则需要配置以下参数
"path": "/",
"headers": {
"Host": "vc.starpipi.eu.org"
}
}
},
"mux": {
"enabled": false,
"concurrency": -1
}
},
{
"tag": "euserv", //同理第二个阶段
"protocol": "vmess",
"settings": {
"vnext": [
{
"address": "euserv.starpipi.eu.org",
"port": 443,
"users": [
{
"id":"b3084537-c9bd-43ee-c219-7f06658a97c",
"alterId": 0,
"security": "auto"
}
]
}
]
},
"streamSettings": {
"network": "ws",
"security": "tls",
"tlsSettings": {
"allowInsecure": false,
"serverName": "euserv.starpipi.eu.org"
},
"wsSettings": {
"path": "/",
"headers": {
"Host": "euserv.starpipi.eu.org"
}
}
},
"mux": {
"enabled": false,
"concurrency": -1
}
},
{
"tag": "hax", //同理第三个阶段
"protocol": "vmess",
"settings": {
"vnext": [
{
"address": "hax.starpipi.eu.org",
"port": 443,
"users": [
{
"id":"d32c836e-534f-46a0-8273-594e325eeca",
"alterId": 0,
"security": "auto"
}
]
}
]
},
"streamSettings": {
"network": "ws",
"security": "tls",
"tlsSettings": {
"allowInsecure": false,
"serverName": "hax.starpipi.eu.org"
},
"wsSettings": {
"path": "/",
"headers": {
"Host": "hax.starpipi.eu.org"
}
}
},
"mux": {
"enabled": false,
"concurrency": -1
}
},
{
"tag": "direct",
"protocol": "freedom",
"settings": {}
},
{
"tag": "block",
"protocol": "blackhole",
"settings": {
"response": {
"type": "http"
}
}
}
],
"observatory": { //如果负载均衡策略是,则需要配置此项,每10分钟探针检测一次速度
"subjectSelector":[
"vc",
"hax",
"euserv"
],
"probeInterval":"10m"
},
"stats": {},
"api": {
"tag": "api",
"services": [
"StatsService"
]
},
"routing": {
"domainStrategy": "IPIfNonMatch",
"balancers": [
{
"tag": "balancer",
"selector": [ //节点tag的列表,用于负载均衡的节点
"vc",
"hax",
"euserv"
],
"strategy": {
"type": "random" //策略如果是random则是用于多节点负载均衡叠加带宽,如果设置为leastPing则不会叠加,但是会取延迟最低的节点来使用
}
}
],
"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"
}
]
}
}

将以上配置保存成json文件。打开v2rayN,新增一个自定义服务器,点击浏览引入配置即可使用。

image-20230730172928075

从下方的日志中则可以看到,出战的网络是通过多个节点出去的。

image-20230730173049602

由于当前是直接在本地的客户端负载多个出站策略,所以并不需要配置入站策略,直接使用即可。

配置本地客户端,将一个节点作为入站网络,将其他节点作为出站网络

如果是希望将一个节点作为入站,其他节点负载作为出站,我们则跟普通节点配置的方式一样,先配置一个可用的节点,无论是手动还是通过x-ui都可以。然后到服务器上找到v2ray的安装路径,打开配置文件config.json,将其中的inbound部分拷贝覆盖到上面配置文件的inbound部分即可,其他均可以不变。

重启节点后,使用之前的节点配置访问节点时则在服务器上通过你配置的负载节点出站了(相当于是中转了一道)

其他事项

这时候理解原理的小伙伴们就懂了,实际上这就是通过v2ray的负载均衡策略,做了多节点的聚合,其实并没有增加网速。只是通过负载以后,将本地带宽利用率提高了。在进行多请求的时候,效果会比较明细,看视频的时候也有少许效果,但是不会特别明显。

如果你本地的带宽本身就不高,同时节点也能跑满速度,那么则一样会遇到瓶颈,不会有特别的提升。

对于普通上网来说,效果还是很明显的,特别是有多个机器节点的小伙伴们。具体的测速图我就不放了,小伙伴们如果感兴趣的可以自行尝试一下。