VUPEN

Транспорты: RAW TCP, WebSocket, gRPC, xHTTP

Транспорт — это то, во что упаковано соединение. Протокол определяет, как вас узнают, транспорт — как данные выглядят в сети и через что могут пройти. Выбор влияет на задержку, скорость и на то, переживёт ли соединение промежуточное оборудование.

Короткое сравнение

Транспорт Накладные расходы Через CDN Когда брать
raw (TCP) минимальные нет прямое подключение к серверу, нужна максимальная скорость
ws (WebSocket) небольшие да нужен CDN или обычный веб-сервер перед туннелем
grpc средние да, если поддерживается HTTP/2 сети, где длинные соединения рвут по таймауту
httpupgrade небольшие да облегчённая замена WebSocket без его накладных расходов
xhttp выше остальных да жёсткая фильтрация, где остальные транспорты не проходят

RAW TCP

Раньше назывался просто tcp, в новых версиях Xray — raw. Данные идут прямо в TCP-соединении, без дополнительной упаковки. Это самый быстрый вариант: нет лишних заголовков, нет промежуточных слоёв, минимальная задержка.

Только этот транспорт работает вместе с flow=xtls-rprx-vision, поэтому сочетание RAW + Reality + Vision считается основным для прямого подключения. Минус один: соединение идёт напрямую к вашему серверу, спрятать его за CDN нельзя.

WebSocket

Соединение начинается как обычный HTTP-запрос с заголовком Upgrade, а затем превращается в двусторонний канал. Главное достоинство — совместимость: WebSocket понимают почти все обратные прокси и CDN, поэтому туннель можно спрятать за чужой инфраструктурой.

Плата — задержка. Трафик идёт не по прямой, а через узел CDN, и к каждому пакету добавляется обрамление WebSocket. На тяжёлых загрузках разница с RAW заметна.

gRPC

Использует HTTP/2 и мультиплексирование: несколько логических потоков живут в одном соединении. Это помогает в сетях, где оборудование обрывает долгие соединения, — восстановление проходит быстрее.

Требует поддержки HTTP/2 на всём пути. Не каждый обратный прокси настроен пропускать gRPC корректно, и это самая частая причина, по которой конфигурация «вроде правильная», но не соединяется.

HTTPUpgrade

Тот же приём, что у WebSocket, — переключение соединения через HTTP-заголовок Upgrade, — но без самого протокола WebSocket и его обрамления кадров. Проходит везде, где проходит WebSocket, а накладных расходов меньше. Разумный выбор, когда CDN нужен, а возможности WebSocket не нужны.

xHTTP

Ранее назывался SplitHTTP. Устроен принципиально иначе: вместо одного долго живущего соединения он раскладывает поток на обычные HTTP-запросы, причём отправка и получение могут идти разными путями. Со стороны это выглядит как череда ничем не примечательных обращений к веб-серверу.

Именно поэтому xHTTP проходит там, где остальное режется: оборудованию не за что зацепиться — нет долгого соединения с характерным рисунком. Расплата — накладные расходы: заголовки повторяются в каждом запросе, и на скорости это сказывается.

Практический вывод: xHTTP берут не за скорость, а за проходимость. Если работает RAW — брать RAW.

Транспорт на клиенте и на сервере должен совпадать. Если в ссылке подписки указан type=xhttp, а клиент старый и такого значения не знает, соединение не установится вовсе — обновите приложение.

Как выбирать

  1. Начните с raw — он быстрее всех.
  2. Не проходит или рвётся — попробуйте ws либо httpupgrade.
  3. Рвутся длинные соединения — grpc.
  4. Не проходит ничего — xhttp.

Что дальше

Как устроен VLESS · Маскировка через Reality · Клиенты и импорт подписки