Warning

This translation was modified on 10 April 2025 and an updated version (25 April 2025) is available on the source page. View the original page

Локальные политики

Локальные политики позволяют настраивать различные уровни пользователей и соответствующие им политики, например, настройки тайм-аута подключения.
Каждое соединение, обрабатываемое Xray, соответствует определенному пользователю, и к нему применяются политики в соответствии с уровнем пользователя (level).

PolicyObject

PolicyObject соответствует полю policy в конфигурационном файле.

{
  "policy": {
    "levels": {
      "0": {
        "handshake": 4,
        "connIdle": 300,
        "uplinkOnly": 2,
        "downlinkOnly": 5,
        "statsUserUplink": false,
        "statsUserDownlink": false,
        "statsUserOnline": 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, включить учет входящего трафика для всех пользователей текущего уровня.

statsUserOnline: 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, включить учет входящего трафика для всех исходящих подключений.