Nikita Korotaev 3b23ce3ea2
add Russian lang (#529)
* add Russian lang support
---------

Co-authored-by: 风扇滑翔翼 <Fangliding.fshxy@outlook.com>
2024-07-16 22:42:05 +08:00

7.9 KiB
Raw Blame History

gRPC

Режим передачи данных, основанный на HTTP/2, полностью соответствует стандарту HTTP/2 и может быть ретранслирован другими HTTP-серверами (такими как Nginx).

gRPC (HTTP/2) имеет встроенное мультиплексирование, не рекомендуется включать mux.cool при использовании gRPC и HTTP/2.

::: warning ⚠⚠⚠

  • gRPC не поддерживает указание Host. Пожалуйста, укажите правильное доменное имя в адресе исходящего прокси или укажите ServerName в (x)tlsSettings, иначе подключение не будет установлено.
  • gRPC не поддерживает fallback на другие сервисы.
  • Существует риск активного сканирования сервисов gRPC. Рекомендуется использовать обратный прокси-сервер, такой как Caddy или Nginx, для предварительного разделения трафика по пути. :::

::: tip Если вы используете обратный прокси-сервер, такой как Caddy или Nginx, обратите внимание на следующие моменты:

  • Убедитесь, что на обратном прокси-сервере включен HTTP/2.
  • Используйте HTTP/2 или h2c (Caddy), grpc_pass (Nginx) для подключения к Xray.
  • Путь в обычном режиме: /${serviceName}/Tun, в режиме Multi: /${serviceName}/TunMulti.
  • Если необходимо получать IP-адрес клиента, его можно передать через заголовок X-Real-IP, отправленный Caddy / Nginx. :::

::: tip Если вы используете fallback, обратите внимание на следующие моменты:

  • Не рекомендуется использовать fallback на gRPC, так как существует риск активного сканирования.
  • Убедитесь, что h2 находится на первом месте в (x)tlsSettings.alpn, иначе gRPC (HTTP/2) может не завершить TLS-рукопожатие.
  • gRPC не поддерживает маршрутизацию на основе path с помощью Xray. :::

GRPCObject

GRPCObject соответствует элементу grpcSettings конфигурации передачи.

{
  "authority": "grpc.example.com",
  "serviceName": "name",
  "multiMode": false,
  "user_agent": "custom user agent",
  "idle_timeout": 60,
  "health_check_timeout": 20,
  "permit_without_stream": false,
  "initial_windows_size": 0
}

authority: string

Строка, которая может использоваться как Host для реализации некоторых других целей.

serviceName: string

Строка, указывающая имя сервиса, аналогично пути в HTTP/2. Клиент будет использовать это имя для связи, а сервер будет проверять, совпадает ли имя сервиса.

::: tip Когда serviceName начинается с косой черты, можно настроить собственный путь, используя как минимум две косые черты.
Например, если на сервере указано "serviceName": "/my/sample/path1|path2", то на клиенте можно указать "serviceName": "/my/sample/path1" или "/my/sample/path2". :::

user_agent: string

::: tip Необходимо настроить только в outbound (клиент). :::

Установка пользовательского агента gRPC, может предотвратить блокировку трафика gRPC некоторыми CDN.

multiMode: true | false

true включает multiMode, значение по умолчанию: false.

Это экспериментальная опция, которая может быть удалена в будущем, и ее совместимость между версиями не гарантируется. Этот режим может обеспечить прирост производительности примерно на 20% в тестовой среде, фактическая производительность зависит от скорости передачи.

::: tip Необходимо настроить только в outbound (клиент). :::

idle_timeout: number

Проверка работоспособности выполняется, если в течение определенного периода времени, измеряемого в секундах, не происходит передача данных. Если это значение меньше 10, то в качестве минимального значения будет использоваться 10.

::: tip Если не используется обратный прокси-сервер, такой как Caddy или Nginx (обычно не используется), и это значение установлено меньше 60, сервер может отправить непредвиденный кадр h2 GOAWAY, чтобы закрыть существующее соединение. :::

По умолчанию проверка работоспособности отключена.

::: tip Необходимо настроить только в outbound (клиент). :::

::: tip Может решить некоторые проблемы с "обрывом" соединения. :::

health_check_timeout: number

Время ожидания ответа проверки работоспособности в секундах. Если в течение этого времени проверка работоспособности не будет завершена и по-прежнему не будет передачи данных, проверка работоспособности будет считаться неудачной. Значение по умолчанию: 20.

::: tip Настройка требуется только на стороне исходящего соединения (клиента). :::

permit_without_stream: true | false

true разрешает проверку работоспособности, если нет дочерних подключений. Значение по умолчанию: false.

::: tip Необходимо настроить только в outbound (клиент). :::

initial_windows_size: number

Начальный размер окна h2 Stream. Если значение меньше или равно 0, эта функция не действует. Если значение больше 65535, механизм динамического окна будет отключен. Значение по умолчанию: 0, то есть не действует.

::: tip Необходимо настроить только в outbound (клиент). :::

::: tip При использовании CDN Cloudflare можно установить значение 65536 или выше, чтобы отключить механизм динамического окна, что предотвратит отправку непредвиденных кадров h2 GOAWAY CDN Cloudflare для закрытия существующего соединения. :::