Files
XTLS_Xray-docs-next/docs/ru/config/transports/websocket.md
T
2026-06-02 00:33:44 +08:00

5.1 KiB
Raw Blame History

WebSocket

Использует стандартный WebSocket для передачи данных.

Подключение WebSocket может быть проксировано другими HTTP-серверами (например, Nginx) и VLESS fallbacks path.

::: danger Рекомендуется переключиться на XHTTP, чтобы избежать значительных характеристик трафика, таких как WebSocket «ALPN is http/1.1». :::

::: tip WebSocket распознает заголовок X-Forwarded-For в HTTP-запросе для перезаписи исходного адреса трафика, приоритет выше, чем у PROXY protocol. :::

WebSocketObject

WebSocketObject соответствует элементу wsSettings в StreamSettingsObject.

{
  // outbound example; also applies to inbound
  "outbounds": [
    {
      // ...
      "streamSettings": {
        "network": "websocket",
        // [!code focus:9]
        "wsSettings": {
          "acceptProxyProtocol": false,
          "path": "/",
          "host": "xray.com",
          "headers": {
            "key": "value"
          },
          "heartbeatPeriod": 10
        }
      }
    }
  ]
}

acceptProxyProtocol: true | false

Только для входящих подключений, указывает, следует ли принимать PROXY protocol.

PROXY protocol используется для передачи реального исходного IP-адреса и порта запроса, если вы не знаете, что это такое, проигнорируйте этот параметр.

Распространенные программы-обработчики обратного прокси (например, HAProxy, Nginx) можно настроить на его отправку, VLESS fallbacks xver также может его отправлять.

Если установлено значение true, то после установления TCP-соединения на самом нижнем уровне запрашивающая сторона должна сначала отправить PROXY protocol v1 или v2, иначе соединение будет закрыто.

path: string

Путь, используемый WebSocket в HTTP-протоколе, значение по умолчанию — "/".

Если в пути клиента есть параметр ed (например, /mypath?ed=2560), будет активирован Early Data для уменьшения задержки. При этом во время апгрейда данные первого пакета передаются через заголовок Sec-WebSocket-Protocol, а значение параметра задает пороговое значение длины первого пакета. Если длина первого пакета превышает это значение, Early Data не активируется. Рекомендуемое значение — 2560, максимальное — 8192. Слишком большие значения могут привести к проблемам совместимости; если вы столкнулись с такими проблемами, попробуйте уменьшить порог.

host: string

Хост, отправляемый в HTTP-запросе WebSocket, значение по умолчанию — пустое. Если значение на стороне сервера пустое, значение хоста, отправленное клиентом, не проверяется.

Если это значение указано на стороне сервера или host указан в headers, то проверяется соответствие хоста запроса клиента.

Приоритет выбора хоста для отправки клиентом: host > headers > address.

headers: map {string: string}

Только для клиента. Пользовательские HTTP-заголовки, пары ключ-значение, где каждый ключ представляет имя HTTP-заголовка, а соответствующее значение является строкой.

Значение по умолчанию: пустое.

heartbeatPeriod: int

Задает интервал времени для отправки Ping-сообщений с целью поддержания соединения. Если не указано или указано значение 0, Ping-сообщения не отправляются (по умолчанию используется текущее поведение).

Browser Dialer

Использует браузер для обработки TLS, подробнее см. в Browser Dialer.