6.4 KiB
Локальные политики
Локальные политики позволяют настраивать различные уровни пользователей и соответствующие им политики, например, настройки тайм-аута подключения.
Каждое соединение, обрабатываемое Xray, соответствует определенному пользователю, и к нему применяются политики в соответствии с уровнем пользователя (level).
PolicyObject
PolicyObject соответствует полю policy в конфигурационном файле.
{
"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}
Набор пар ключ-значение, где каждый ключ - это число в виде строки (требование JSON), например "0", "1" и т.д. (кавычки обязательны).
Это число соответствует уровню пользователя.
Каждое значение - это LevelPolicyObject.
::: tip
Теперь можно настроить уровень пользователя для каждого входящего и исходящего подключения.
Xray будет применять различные локальные политики в соответствии с фактическим уровнем пользователя.
:::
system: SystemPolicyObject
Политики уровня системы Xray.
LevelPolicyObject
{
"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
{
"statsInboundUplink": false,
"statsInboundDownlink": false,
"statsOutboundUplink": false,
"statsOutboundDownlink": false
}
statsInboundUplink: true | false
Если значение равно true, включить учет исходящего трафика для всех входящих подключений.
statsInboundDownlink: true | false
Если значение равно true, включить учет входящего трафика для всех входящих подключений.
statsOutboundUplink: true | false
Если значение равно true, включить учет исходящего трафика для всех исходящих подключений.
statsOutboundDownlink: true | false
Если значение равно true, включить учет входящего трафика для всех исходящих подключений.