动态端口
通常情况下,V2Ray 的服务器端使用一个固定的端口来接收客户端的数据。这个端口由配置文件中的 port 属性指定。如果同一端口通信时间过长,或流量过大,则有可能被服务商限速。于是 V2Ray 提供了一个功能来动态调整通信端口。
在新的配置中,V2Ray 服务器端依然使用一个主端口(即上文的 port)接收请求,但可以配置一个绕路(detour)的特性。配置之后,服务器会主动告诉客户端,使用一个新的端口 X 来通信,X 是一个范围(可配置)内随机选取的值。此端口的有效期为 Y 分钟,客户端和服务器都会遵守这个时间,到期之后,客户端会继续向服务器请求新的端口来通信。以此循环。
要启用动态端口,需要在现有的服务器配置文件中进行一些修改,主要有以下两项。客户端配置不用更改,客户端会自动接收服务器的配置。
一、开启一个动态监听的 inboundDetour:
{
"protocol": "vmess",
"port": "10000-20000", // 端口范围
"tag": "detour", // 此传入协议的标签,在第二部分中会用到
"settings": {
"default": {
"level": 1,
"alterId": 32
}
},
"allocate": { // 分配模式
"strategy": "random", // 随机开启
"concurrency": 2, // 同时开放两个端口
"refresh": 5 // 每五分钟刷新一次
}
}
上述配置的具体细节可以在配置文件中找到,需要注意的是,1) 如果 VPS 有防火墙的话,整个端口范围要在防火墙中被允许,V2Ray 没有能力操作 VPS 的防火墙;2) 同时开放的端口数最大值是端口范围的一半。
二、在主传入协议中指定绕路到上述的 inboundDetour:
"inbound": {
"protocol": "vmess",
"settings": {
"clients": [ // clients 部分和原有配置一样
{
"id": "d17a1af7-efa5-42ca-b7e9-6a35282d737f",
"level": 1,
"alterId": 10,
"email": "love@v2ray.com"
}
],
"features": { // 特性设置
"detour": { // 绕路设置
"to": "detour" // 指定绕路协议的标签,要和“一”中的标签一样
}
}
}
},
配置的具体细节参见协议列表。
在约定绕路的端口时,服务器会根据当前用户的 Email 地址,在绕路协议中以同一个 Email 地址创建新的用户,以便区分不同用户的流量。若绕路协议中已经配置了同一个 Email 的用户,则使用该用户;否则自动创建一个新用户。