You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

145 lines
6.4 KiB

# Локальные политики
Локальные политики позволяют настраивать различные уровни пользователей и соответствующие им политики, например, настройки тайм-аута подключения.
Каждое соединение, обрабатываемое Xray, соответствует определенному пользователю, и к нему применяются политики в соответствии с уровнем пользователя (level).
## PolicyObject
`PolicyObject` соответствует полю `policy` в конфигурационном файле.
```json
{
"policy": {
"levels": {
"0": {
"handshake": 4,
"connIdle": 300,
"uplinkOnly": 2,
"downlinkOnly": 5,
"statsUserUplink": false,
"statsUserDownlink": false,
"bufferSize": 4
}
},
"system": {
"statsInboundUplink": false,
"statsInboundDownlink": false,
"statsOutboundUplink": false,
"statsOutboundDownlink": false
}
}
}
```
> `level`: map{string: [LevelPolicyObject](#levelpolicyobject)}
Набор пар ключ-значение, где каждый ключ - это число в виде строки (требование JSON), например `"0"`, `"1"` и т.д. (кавычки обязательны).
Это число соответствует уровню пользователя.
Каждое значение - это [LevelPolicyObject](#levelpolicyobject).
::: tip
Теперь можно настроить уровень пользователя для каждого входящего и исходящего подключения.
Xray будет применять различные локальные политики в соответствии с фактическим уровнем пользователя.
:::
> `system`: [SystemPolicyObject](#systempolicyobject)
Политики уровня системы Xray.
### LevelPolicyObject
```json
{
"handshake": 4,
"connIdle": 300,
"uplinkOnly": 2,
"downlinkOnly": 5,
"statsUserUplink": false,
"statsUserDownlink": false,
"bufferSize": 10240
}
```
> `handshake`: number
Ограничение времени на установление соединения (рукопожатие).
Измеряется в секундах.
Значение по умолчанию - `4`.
При обработке нового соединения входящим прокси, если время, затраченное на рукопожатие, превышает это значение, соединение разрывается.
> `connIdle`: number
Ограничение времени простоя соединения.
Измеряется в секундах.
Значение по умолчанию - `300`.
При обработке соединения входящим или исходящим прокси, если в течение времени `connIdle` не было передано никаких данных (включая исходящие и входящие данные), соединение разрывается.
> `uplinkOnly`: number
Ограничение времени ожидания после закрытия исходящего канала соединения.
Измеряется в секундах.
Значение по умолчанию - `2`.
Когда сервер (например, удаленный веб-сайт) закрывает исходящее соединение, исходящий прокси разрывает соединение через `uplinkOnly` секунд.
> `downlinkOnly`: number
Ограничение времени ожидания после закрытия входящего канала соединения.
Измеряется в секундах.
Значение по умолчанию - `5`.
Когда клиент (например, браузер) закрывает входящее соединение, входящий прокси разрывает соединение через `downlinkOnly` секунд.
::: tip
При просмотре веб-страниц можно установить `uplinkOnly` и `downlinkOnly` в `0`, чтобы ускорить закрытие соединений.
:::
> `statsUserUplink`: true | false
Если значение равно `true`, включить учет исходящего трафика для всех пользователей текущего уровня.
> `statsUserDownlink`: true | false
Если значение равно `true`, включить учет входящего трафика для всех пользователей текущего уровня.
> `bufferSize`: number
Размер внутреннего буфера для каждого соединения.
Измеряется в килобайтах.
Если значение равно `0`, внутренний буфер отключается.
Значение по умолчанию:
- На платформах ARM, MIPS, MIPSLE значение по умолчанию - `0`.
- На платформах ARM64, MIPS64, MIPS64LE значение по умолчанию - `4`.
- На других платформах значение по умолчанию - `512`.
### SystemPolicyObject
```json
{
"statsInboundUplink": false,
"statsInboundDownlink": false,
"statsOutboundUplink": false,
"statsOutboundDownlink": false
}
```
> `statsInboundUplink`: true | false
Если значение равно `true`, включить учет исходящего трафика для всех входящих подключений.
> `statsInboundDownlink`: true | false
Если значение равно `true`, включить учет входящего трафика для всех входящих подключений.
> `statsOutboundUplink`: true | false
Если значение равно `true`, включить учет исходящего трафика для всех исходящих подключений.
> `statsOutboundDownlink`: true | false
Если значение равно `true`, включить учет входящего трафика для всех исходящих подключений.