gRPC
Что это
gRPC — фреймворк RPC (Remote Procedure Call) от Google, представлен в 2015 году. Работает поверх HTTP/2, использует Protocol Buffers для сериализации. Основа микросервисной архитектуры многих крупных компаний (Netflix, Uber, Cloudflare, Google, Square).
gRPC в контексте прокси
В мире обхода блокировок gRPC используется как транспорт для VLESS, VMess, Trojan. Прокси-данные упаковываются в gRPC-stream, а тот идёт поверх HTTP/2 + TLS.
Почему это хороший транспорт для обхода
- Настоящий HTTP/2 — трафик неотличим от обычного gRPC-приложения (а таких приложений — половина интернета)
- Мультиплексирование — множество параллельных запросов в одном TCP-соединении. HoL blocking меньше
- Устойчивость — HTTP/2 обрабатывает потери пакетов лучше, чем сырой TCP
- CDN-friendly — работает через Cloudflare (в отличие от Reality)
- Keep-alive — сервер может держать соединение долго, без переподключений
Конфиг в Xray
"streamSettings": {
"network": "grpc",
"security": "tls",
"tlsSettings": {
"serverName": "your.domain.com"
},
"grpcSettings": {
"serviceName": "TunService",
"multiMode": false,
"idle_timeout": 60,
"health_check_timeout": 20
}
}
serviceName
Параметр serviceName — это gRPC-service path. По сути URL-путь внутри HTTP/2:
POST /TunService/Tun HTTP/2
ТСПУ / DPI видит нормальный HTTP/2 запрос на /TunService/Tun. Название можно взять любое реалистичное — UserService, MetricsService, google.protobuf.Struct. Главное — совпадение на клиенте и сервере.
multiMode
Флаг multiMode: true открывает несколько параллельных потоков gRPC, что ускоряет передачу, но увеличивает подозрительность профиля трафика. По умолчанию false.
gRPC vs WebSocket
| gRPC | WebSocket | |
|---|---|---|
| Основа | HTTP/2 | HTTP/1.1 Upgrade |
| Мультиплексирование | да | нет |
| CDN Cloudflare | ограниченно | полноценно |
| Overhead | минимальный | минимальный |
| При потерях | лучше | хуже (HoL blocking) |
| Возраст | 2015 | 2011 |
Когда выбирать gRPC
- Нестабильный / мобильный канал
- Нужен CDN (но не Cloudflare — там лучше WS)
- Свой домен с TLS-сертификатом
- Нет возможности использовать Reality
См. также
- xHTTP — новый транспорт от Project X, преемник gRPC
- WebSocket, HTTPUpgrade