gRPC

Google 2015 · HTTP/2 · Protocol Buffers

Что это

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.

Почему это хороший транспорт для обхода

Конфиг в 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

gRPCWebSocket
ОсноваHTTP/2HTTP/1.1 Upgrade
Мультиплексированиеданет
CDN Cloudflareограниченнополноценно
Overheadминимальныйминимальный
При потеряхлучшехуже (HoL blocking)
Возраст20152011

Когда выбирать gRPC

См. также

← на главную
← на главную