6 KiB
V2Ray Transport -- справочник полей
Целевая версия: sing-box 1.14.x
Доступные типы транспорта: HTTP, WebSocket, gRPC, HTTPUpgrade, QUIC. xhttp (Xray-специфичный) НЕ поддерживается sing-box -- при его обнаружении XrayFluent переключается в hybrid mode.
WebSocket (ws)
Структура
{
"type": "ws",
"path": "/ws-path",
"headers": {},
"max_early_data": 0,
"early_data_header_name": ""
}
Поля
path
| Тип | string |
HTTP-путь запроса. Сервер проверяет точное совпадение.
headers
| Тип | object |
Дополнительные HTTP-заголовки запроса. Сервер вернёт их в ответе, если указаны.
max_early_data
| Тип | number |
| По умолчанию | 0 |
Размер полезной нагрузки, отправляемой в запросе (early data). Включается, если значение не равно нулю.
early_data_header_name
| Тип | string |
По умолчанию early data отправляется в path. Для совместимости с Xray-core установите значение "Sec-WebSocket-Protocol". Должно совпадать с сервером.
HTTP
Структура
{
"type": "http",
"host": [],
"path": "/",
"method": "",
"headers": {},
"idle_timeout": "0s",
"ping_timeout": "15s"
}
Примечание: TLS не обязателен. Без настроенного TLS используется HTTP 1.1 в открытом виде.
Поля
host
| Тип | string[] |
Список доменов хоста. Клиент выбирает случайный, сервер проверяет при непустом списке.
path
| Тип | string |
HTTP-путь запроса. Сервер проверяет соответствие. V2Ray позволяет клиенту добавлять произвольный суффикс к path -- sing-box воспроизводит это поведение (только для HTTP, не для WebSocket/HTTPUpgrade).
method
| Тип | string |
HTTP-метод запроса. Сервер проверяет, если значение указано.
headers
| Тип | object |
Дополнительные HTTP-заголовки запроса.
idle_timeout
| Тип | string (duration) |
| По умолчанию | "0s" (проверка не выполняется) |
Период бездействия, после которого клиент отправляет PING-кадр для проверки соединения. При нулевом значении проверка не выполняется.
ping_timeout
| Тип | string (duration) |
| По умолчанию | "15s" |
Тайм-аут ожидания ответа на HTTP/2 PING. Если ответ не получен, соединение закрывается.
gRPC
Структура
{
"type": "grpc",
"service_name": "TunService",
"idle_timeout": "15s",
"ping_timeout": "15s",
"permit_without_stream": false
}
Примечание: стандартный gRPC не включён в сборку sing-box по умолчанию. См. документацию по build-тегам.
Поля
service_name
| Тип | string |
Имя gRPC-сервиса.
idle_timeout
| Тип | string (duration) |
| По умолчанию | "15s" |
Интервал keepalive. Если нет активности в течение указанного времени, отправляется проверочный пинг.
ping_timeout
| Тип | string (duration) |
| По умолчанию | "15s" |
Тайм-аут ожидания ответа на keepalive-пинг. Если ответ не получен, соединение закрывается.
permit_without_stream
| Тип | bool |
| По умолчанию | false |
Отправлять keepalive-пинги даже без активных соединений. Если выключено, idle_timeout и ping_timeout игнорируются при отсутствии потоков.
HTTPUpgrade
Структура
{
"type": "httpupgrade",
"host": "",
"path": "/upgrade-path",
"headers": {}
}
Поля
host
| Тип | string |
Домен хоста. Сервер проверяет, если значение указано.
path
| Тип | string |
HTTP-путь запроса. Сервер проверяет соответствие.
headers
| Тип | object |
Дополнительные HTTP-заголовки запроса.
QUIC
Структура
{
"type": "quic"
}
Заметки
Дополнительные поля отсутствуют -- указывается только тип. Шифрование QUIC дублирует TLS-шифрование протокола -- фактически трафик шифруется дважды.
Не поддерживается
| Транспорт | Причина |
|---|---|
| xhttp | Специфичен для Xray-core. При обнаружении XrayFluent переключается в hybrid mode (sing-box TUN + xray SOCKS). |
| TCP transport | В sing-box нет отдельного TCP-транспорта; plain HTTP объединён с HTTP-транспортом. |
| mKCP | Не реализован в sing-box. |
| DomainSocket | Не реализован в sing-box. |