Перейти к содержанию

VLESS Transport Support

Статус: полностью реализован (декабрь 2025)


Поддерживаемые транспорты

Транспорт Backend iOS (V2) Android Desktop
tcp/raw
ws
grpc
xhttp/splithttp
http/h2 ⚠️ deprecated
kcp/mkcp
httpupgrade

Режимы безопасности: reality, tls, none

Android: HTTP/H2 заблокирован на уровне валидации в V2rayConfigUtil.kt — "Use XHTTP instead".


transport_params в MySQL

Колонка server.transport_params (JSON) хранит параметры для построения VLESS-ссылки.

Reality (типовой)

{
  "vless": {
    "port": 443,
    "network": "tcp",
    "security": "reality",
    "reality": {
      "publicKey": "...",
      "shortId": "...",
      "serverName": "google.com",
      "fingerprint": "chrome"
    }
  }
}

WL-серверы (упрощённый формат)

{
  "sni": "example.com",
  "fingerprint": "chrome",
  "public_key": "...",
  "short_id": "a1b2c3d4"
}

Если transport_params отсутствует — backend автоматически извлекает настройки из X-UI API (VpnConfigBuilder.java:394-436).


Форматы параметров по транспортам

Транспорт JSON-ключ Параметры URL
ws ws path, host
grpc grpc serviceName, mode (multi/gun)
xhttp xhttp path, host, mode
http/h2 http path, host
kcp kcp seed, headerType
httpupgrade httpupgrade path, host

Возможные headerType для KCP: none, srtp, utp, wechat-video, dtls, wireguard


Ключевые файлы (Java backend)

Файл Назначение
StreamSettings.java DTO всех транспортных настроек
ConfigConverter.java:82-290 Конвертация ответа X-UI → DTO
VlessUriBuilder.java:142-194 Генерация VLESS URL
VpnConfigBuilder.java:247-313 Построение конфига из transport_params

Поддержка на клиентах

Desktop (Rust)

StreamSettings использует #[serde(flatten)] — все поля транспорта сохраняются как произвольный JSON. Все транспорты работают автоматически.

iOS (Swift)

V2 API: поля baseConfig / splitConfig — тип RawJSON, сохраняет JSON как raw bytes. LibXray v1.250803.0 (Aug 2025) поддерживает все транспорты нативно.

Legacy API (ServerConfigResponseModel.swift) — только tcp, не используется в текущем V2 flow.

Android (Kotlin)

CountriesWithConfigsV2Dto.kt содержит явные DTO для всех транспортных настроек. Маппер MapperCountriesWithConfigsV2ToServerConfigList.kt поддерживает все типы.