Xray-docs-next/docs/ru/config/features/browser_dialer.md
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

47 lines
4.6 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# Браузерный Dialer
<Badge text="BETA" type="warning"/> <Badge text="v1.4.1+" type="warning"/>
## Предыстория
Основываясь на [идее, возникшей год назад](https://github.com/v2ray/discussion/issues/754#issuecomment-647934994), с помощью нативного JavaScript был реализован простой WSS-браузерный Dialer, который эмулирует TLS-отпечаток и поведенческие характеристики реального браузера.
Однако WSS все еще имеет очевидные проблемы с ALPN, поэтому следующим шагом будет пересылка `HTTP/2` и `QUIC` через браузер.
## Xray и JS
Был создан очень простой и элегантный механизм связи:
- Xray прослушивает адрес и порт A в качестве HTTP-сервера.
Браузер обращается к A и загружает JavaScript-код с веб-страницы.
- JavaScript-код устанавливает WebSocket-соединение с A.
После успешного установления соединения Xray передает соединение в канал.
- При необходимости установить соединение Xray получает доступное соединение из канала и отправляет целевой URL-адрес и необязательные ранние данные (early data).
- JavaScript-код сообщает Xray об успешном подключении к цели и продолжает использовать это соединение для двунаправленной передачи данных.
Соединение закрывается синхронно.
- Соединение закрывается после использования, но JavaScript-код гарантирует, что всегда есть доступные новые соединения.
## Ранние данные (Early data)
Механизм ранних данных был скорректирован в соответствии с потребностями браузера:
- Заголовок ответа сервера содержит заголовок `Sec-WebSocket-Protocol` запроса, что также частично скрывает характеристики длины ответа рукопожатия WSS.
- Для кодирования ранних данных, отправляемых браузеру, используется `base64.RawURLEncoding`, а не `StdEncoding`.
Сервер обеспечивает совместимость.
- Кроме того, из-за [Xray-core#375](https://github.com/XTLS/Xray-core/pull/375) рекомендуется использовать `?ed=2048`.
В этом PR также увеличен `MaxHeaderBytes` на сервере до 4096.
~~(Хотя, кажется, это не обязательно)~~
## Конфигурация <Badge text="v1.4.1" type="warning"/>
Это экспериментальный процесс.
В настоящее время конфигурация выглядит следующим образом (Xray-core v1.4.1):
- Подготовьте рабочую конфигурацию WSS.
Обратите внимание, что в поле `address` нужно указать доменное имя.
Если нужно указать IP-адрес, настройте DNS или добавьте запись в файл hosts.
- Если трафик браузера также проходит через Xray-core, обязательно настройте прямое подключение для этого домена, чтобы избежать зацикливания трафика.
- Установите переменную окружения, указывающую адрес и порт, который нужно прослушивать, например, `XRAY_BROWSER_DIALER = 127.0.0.1:8080`.
- Сначала запустите Xray-core, а затем откройте указанный адрес и порт в любом браузере.
Вы также можете открыть инструменты разработчика (F12) и посмотреть консоль и вкладку "Сеть".
- Браузеры ограничивают количество WebSocket-соединений, поэтому рекомендуется включить `Mux.Cool`.