Сеть
gRPC transport — VLESS / Trojan over gRPC
Транспорт V2Ray / Xray, оборачивающий VPN-трафик в gRPC-вызовы поверх HTTP/2 + TLS. Альтернатива WebSocket, лучше детектирует ТСПУ из-за нативного использования multiplexing.
Определение
gRPC transport — это способ передачи VLESS / VMess / Trojan-payload’а внутри gRPC-вызовов поверх HTTP/2 и TLS на порту 443. gRPC (gRPC Remote Procedure Calls) — open-source RPC-фреймворк от Google, повсеместно используется в микросервисной инфраструктуре. VPN over gRPC снаружи выглядит как обычный API-сервис.
Стандартный режим: bidirectional streaming RPC на пути /<servicename>/Tun. Внутри — VLESS-payload.
Как работает
gRPC использует HTTP/2 как транспорт. Это даёт несколько архитектурных свойств, которые VPN-сценарий наследует:
- Multiplexing из коробки. Несколько параллельных VPN-стримов идут как разные HTTP/2 streams в одном TCP-connection. ТСПУ не может различить количество подключений.
- Длинные потоки. gRPC bidirectional streaming — это легитимный долгоживущий поток (так работают gRPC pub-sub, server-sent events, streaming APIs). Это маскирует длинные VPN-сессии.
- Бинарный фрейминг. HTTP/2 фреймы шифруются TLS, но размеры фреймов остаются — это потенциальная утечка, но менее очевидная, чем у WebSocket.
Типовая клиент-сторона xray-core:
"streamSettings": {
"network": "grpc",
"security": "tls",
"tlsSettings": {
"serverName": "yourdomain.com",
"fingerprint": "chrome"
},
"grpcSettings": {
"serviceName": "GunService",
"multiMode": true
}
}
serviceName определяет URL-path: /GunService/Tun. Если на том же VPS живёт настоящий gRPC-сервис (даже dummy), посторонний посетитель видит обычный gRPC API.
Почему это важно для пользователя VPN
gRPC-транспорт держится в РФ устойчивее WebSocket по нескольким причинам. Сравнение 2026:
| Свойство | WS+TLS | gRPC+TLS |
|---|---|---|
| Длинные сессии — норма | да | да |
| Multiplexing | нет | да |
| Поведенческая сигнатура | характерная | менее очевидная |
| CDN-проходимость | большинство CDN | только CDN с HTTP/2 gRPC (Cloudflare ok) |
| Поддержка в клиентах | все | большинство (xray, sing-box, V2Box, Hiddify) |
| TLS-in-TLS уязвимость | да | да |
Главное преимущество — мультиплексирование. Один TCP-connection несёт сотни параллельных стримов — это типично для gRPC-микросервисов, но нетипично для VPN. ТСПУ-эвристики, считающие количество новых TCP-connection в минуту, gRPC недосчитывают.
Главный минус остаётся тот же, что у WS — пользовательский TLS внутри туннеля даёт TLS-in-TLS паттерн. Защита та же — XTLS Vision поверх (но Vision хуже работает с gRPC, чем с прямым TCP).
Практический вывод 2026: gRPC — рабочий fallback, если VLESS Reality по каким-то причинам не работает (старый клиент, кастомное окружение). Для нового self-host’а первая ставка — Reality, вторая — gRPC, третья — WS.
Связанные термины
VLESS — основная нагрузка. WebSocket transport — альтернатива в той же нише. TLS 1.3 — нижний слой. xray-core — реализация. TLS-in-TLS — общая уязвимость WS и gRPC.
Источники
- gRPC.io — официальный сайт фреймворка.
- Xray-core gRPC transport docs.
- v2fly gRPC docs.
- RFC 9113 — HTTP/2 — транспортный слой gRPC.