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-серверы (упрощённый формат)¶
Если 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 поддерживает все типы.