WebSocket (WS)
Что это
WebSocket (WS) — двунаправленный протокол связи, стандартизирован в RFC 6455 (2011). Позволяет открыть постоянное «живое» соединение между браузером и сервером поверх HTTP, куда данные могут литься в обе стороны без переспросов.
Как работает
WebSocket-соединение начинается как обычный HTTP-запрос с особым Upgrade-заголовком:
GET /ws HTTP/1.1
Host: example.com
Upgrade: websocket
Connection: Upgrade
Sec-WebSocket-Key: dGhlIHNhbXBsZSBub25jZQ==
Sec-WebSocket-Version: 13
Сервер отвечает 101 Switching Protocols, и с этого момента TCP-соединение перестаёт быть HTTP — это уже WebSocket-фреймы.
WebSocket в контексте прокси
WS используется как обёртка для прокси-протоколов (VLESS, VMess, Trojan, Shadowsocks). Прокси-данные упаковываются в WS-фреймы, которые идут поверх HTTPS.
Главное преимущество: CDN
WebSocket отлично работает через CDN — особенно Cloudflare. Это делает его популярным транспортом:
- Твой сервер прокси стоит за Cloudflare → все жалобы летят в Cloudflare, а не тебе
- Легко менять сервер, не меняя точку входа
- Настоящий IP сервера скрыт от посторонних
- Cloudflare бесплатный tier покрывает большинство личных нужд
Конфиг в Xray
"streamSettings": {
"network": "ws",
"security": "tls",
"tlsSettings": {
"serverName": "your.domain.com"
},
"wsSettings": {
"path": "/api/chat",
"host": "your.domain.com",
"headers": {
"User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64)..."
}
}
}
path — важнейший параметр
WebSocket идёт на конкретный HTTP-путь. Можно замаскировать как API реального сайта:
/api/v2/messages— похоже на чат/live/ws— стриминг/graphql— реалистичный API
Не используй банальное /ray или /v2 — это выдаёт прокси.
Минусы
- HTTP/1.1 — нет мультиплексирования (одно соединение = один поток данных). Head-of-line blocking
- WS-фрейминг добавляет несколько байт overhead на каждый фрейм
- Некоторые ТСПУ / DPI умеют детектить WS-паттерны через behavioral analysis (длительное keep-alive)
Классический сетап с CDN
- Купить домен (50-200 руб/год на .ru или .xyz)
- Добавить в Cloudflare (бесплатно), включить «оранжевое облако» (proxy)
- На сервере — Xray с VLESS+WS+TLS на 443, path=
/random-path - В клиенте — сервер =
твой-домен.com, path =/random-path - Cloudflare отдаёт свой сертификат, соединение идёт через их CDN
WebSocket vs альтернативы 2026
WS — проверенный временем классик, но:
- Против него у ТСПУ есть готовые эвристики (не такие точные как против Reality)
- xHTTP в целом лучше — новее, гибче, поддержка HTTP/2 и HTTP/3
- HTTPUpgrade — совсем без WS-фрейминга, чуть быстрее
WS всё ещё топ, если обязательно нужен Cloudflare — там он всё ещё вне конкуренции.
См. также
- xHTTP, gRPC, HTTPUpgrade
- TCP, TLS