zapret-kvn/docs/sing-box/reference/transport.md
2026-03-27 14:15:12 +03:00

241 lines
6 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# V2Ray Transport -- справочник полей
Целевая версия: sing-box 1.14.x
Доступные типы транспорта: HTTP, WebSocket, gRPC, HTTPUpgrade, QUIC.
xhttp (Xray-специфичный) НЕ поддерживается sing-box -- при его
обнаружении XrayFluent переключается в hybrid mode.
## WebSocket (ws)
### Структура
```json
{
"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
### Структура
```json
{
"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
### Структура
```json
{
"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
### Структура
```json
{
"type": "httpupgrade",
"host": "",
"path": "/upgrade-path",
"headers": {}
}
```
### Поля
#### host
| | |
|---|---|
| Тип | `string` |
Домен хоста. Сервер проверяет, если значение указано.
#### path
| | |
|---|---|
| Тип | `string` |
HTTP-путь запроса. Сервер проверяет соответствие.
#### headers
| | |
|---|---|
| Тип | `object` |
Дополнительные HTTP-заголовки запроса.
## QUIC
### Структура
```json
{
"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. |