本地策略
此功能在 V2Ray 3.1 中加入。
本地策略可以配置一些用户相关的权限,比如连接超时设置。V2Ray 处理的每一个连接,都对应到一个用户,按照这个用户的等级(level)应用不同的策略。本地策略可按照等级的不同而变化。
示例配置:
{
"levels": {
"0": {
"handshake": 4,
"connIdle": 300,
"uplinkOnly": 2,
"downlinkOnly": 5,
"statsUserUplink": false,
"statsUserDownlink": false,
"bufferSize": 10240
}
},
"system": {
"statsInboundUplink": false,
"statsInboundDownlink": false
}
}
其中:
level
: 一组键值对,每个键是一个字符串形式的数字(JSON 的要求),比如"0"
、"1"
等,双引号不能省略,这个数字对应用户等级。每一个值如下:handshake
: 连接建立时的握手时间限制。单位为秒。默认值为4
。connIdle
: 连接空闲的时间限制。单位为秒。默认值为300
。uplinkOnly
: 当连接下行线路关闭后的时间限制。单位为秒。默认值为2
。downlinkOnly
: 当连接上行线路关闭后的时间限制。单位为秒。默认值为5
。statsUserUplink
: 当值为true
时,开启当前等级的所有用户的上行流量统计。statsUserDownlink
: 当值为true
时,开启当前等级的所有用户的下行流量统计。bufferSize
(V2Ray 3.24+): 每个连接的内部缓存大小。单位为 kB。默认值为10240
。当值为0
时,内部缓存被禁用。
system
(V2Ray 3.18+): V2Ray 系统的策略。statsInboundUplink
(V2Ray 3.18+): 当值为true
时,开启所有传入代理的上行流量统计。statsInboundDownlink
(V2Ray 3.18+): 当值为true
时,开启所有传入代理的下行流量统计。
本地策略在连接处理时的具体细节:
- 在传入代理处理一个新连接时,在握手阶段(比如 VMess 读取头部数据,判断目标服务器地址),如果使用的时间超过
handshake
时间,则中断该连接。 - 在传入传出代理处理一个连接时,如果在
connIdle
时间内,没有任何数据被传输(包括上行和下行数据),则中断该连接。 - 当客户端(如浏览器)关闭上行连接时,传入代理会在等待
downlinkOnly
时间后中断连接。 - 当服务器(如远端网站)关闭下行连接时,传出代理会在等待
uplinkOnly
时间后中断连接。
小贴士 {#tip}
- 每个传入传出代理现在都可以设置用户等级,V2Ray 会根据实际的用户等级应用不同的本地策略。
bufferSize
选项会覆盖环境变量中v2ray.ray.buffer.size
的设定。