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

This file contains ambiguous Unicode characters!

This file contains ambiguous Unicode characters that may be confused with others in your current locale. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to highlight these characters.

# Локальные политики
Локальные политики позволяют настраивать различные уровни пользователей и соответствующие им политики, например, настройки тайм-аута подключения.
Каждое соединение, обрабатываемое 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`, включить учет входящего трафика для всех исходящих подключений.