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