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