Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Sync RU branch #592

Merged
merged 2 commits into from
Oct 3, 2024
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 2 additions & 2 deletions docs/.vuepress/config/sidebar/ru.ts
Original file line number Diff line number Diff line change
Expand Up @@ -64,9 +64,9 @@ export const sidebarRu: SidebarConfig = {
text: 'Транспортный уровень',
children: [
'/ru/config/transports/grpc.md',
'/ru/config/transports/h2.md',
'/ru/config/transports/http.md',
'/ru/config/transports/mkcp.md',
'/ru/config/transports/tcp.md',
'/ru/config/transports/raw.md',
'/ru/config/transports/websocket.md',
'/ru/config/transports/httpupgrade.md',
'/ru/config/transports/splithttp.md'
Expand Down
3 changes: 2 additions & 1 deletion docs/ru/config/outbounds/freedom.md
Original file line number Diff line number Diff line change
Expand Up @@ -62,6 +62,7 @@ Freedom будет принудительно отправлять все дан
> `fragment`: map

Несколько пар «ключ-значение», используемых для управления исходящей фрагментацией TCP. В некоторых случаях это может обмануть системы цензуры, например, обойти черные списки SNI.
`"length"` и `"interval"` относятся к типу [Int32Range](../../development/intro/guide.md#int32range)

`"packets"`: поддерживаются два режима фрагментации: "1-3" — фрагментация потока TCP, применяется к первым трем операциям записи данных на стороне клиента; "tlshello" — фрагментация пакета TLS-рукопожатия.

Expand All @@ -85,7 +86,7 @@ UDP-шум, используемый для отправки случайных
- Если `type` равен `str`, здесь указывается строка для отправки.
- Если `type` равен `base64`, здесь указываются двоичные данные, закодированные в Base64.

`"delay"`: задержка в миллисекундах. После отправки этого пакета шума ядро будет ожидать указанное время, прежде чем отправить следующий пакет шума или реальные данные. По умолчанию ожидание отсутствует. Можно установить целое число, например `100`, или строку с диапазоном значений, например `"50-150"`.
`"delay"`: **задержка**, в миллисекундах. После отправки этого пакета шума ядро будет ждать указанное время, прежде чем отправить следующий пакет шума или реальные данные. По умолчанию ожидание отсутствует. Тип: [Int32Range](../../development/intro/guide.md#int32range)

> `proxyProtocol`: number

Expand Down
7 changes: 5 additions & 2 deletions docs/ru/config/transport.md
Original file line number Diff line number Diff line change
Expand Up @@ -46,6 +46,9 @@
> `network`: "raw" | "ws" | "h2" | "grpc" | "kcp" | "httpupgrade" | "splithttp"

Тип способа передачи, используемого потоком данных соединения, по умолчанию `"raw"`
::: tip
**Начиная с версии v24.9.30**, для более точного отражения фактического поведения, тип передачи `tcp` был переименован в `raw`. Для обеспечения совместимости `"network": "raw"` и `"network": "tcp"`, `rawSettings` и `tcpSettings` являются синонимами.
:::

::: tip
"h2" можно записать как "http", "grpc" можно записать как "gun", "kcp" можно записать как "mkcp".
Expand Down Expand Up @@ -83,9 +86,9 @@ Reality — это самое безопасное на данный момен

Конфигурация WebSocket для текущего соединения, действительна только если это соединение использует WebSocket.

> `httpSettings`: [HttpObject](./transports/h2.md)
> `httpSettings`: [HttpObject](./transports/http.md)

Конфигурация HTTP/2 для текущего соединения, действительна только если это соединение использует HTTP/2.
Конфигурация HTTP для текущего соединения, действительна только если это соединение использует HTTP.

> `grpcSettings`: [GRPCObject](./transports/grpc.md)

Expand Down
86 changes: 0 additions & 86 deletions docs/ru/config/transports/h2.md

This file was deleted.

88 changes: 88 additions & 0 deletions docs/ru/config/transports/http.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,88 @@
# HTTP

Тип транспорта, основанный на HTTP/2 или HTTP/3.

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

Клиент должен включить TLS для корректной работы этого типа транспорта.

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

::: tip
**В текущей версии для транспорта HTTP/2 не требуется обязательная настройка TLS на стороне сервера.**

Это позволяет использовать Xray в качестве бэкенд-приложения в специальных сценариях развертывания с разделением трафика, где внешний шлюз обрабатывает TLS-соединение, а связь между шлюзом и Xray осуществляется по протоколу HTTP без шифрования.
:::

::: tip
Этот транспорт будет работать в режиме h3, только если alpn содержит только `h3`.
:::

::: warning
- HTTP/2 и HTTP/3 не могут быть разделены по путям отката Xray. Использование разделения по путям отката не рекомендуется.
:::

## HttpObject

`HttpObject` соответствует элементу `httpSettings` в конфигурации транспорта.

```json
{
"host": ["xray.com"],
"path": "/random/path",
"read_idle_timeout": 10,
"health_check_timeout": 15,
"method": "PUT",
"headers": {
"Header": ["value"]
}
}
```

> `host`: \[string\]

Массив строк, каждый элемент которого является доменным именем.

Клиент случайным образом выбирает доменное имя из списка для связи, а сервер проверяет, находится ли доменное имя в списке.

::: tip
Если не указывать `"httpSettings"` или оставить `"host": []` пустым, будет использоваться значение по умолчанию `"www.example.com"`. Для успешного подключения необходимо, чтобы значения `"host"` на обеих сторонах совпадали. `"host": [""]` не является пустым значением.
:::

> `path`: string

Путь HTTP, начинающийся с `/`. Должен совпадать на клиенте и сервере.

Значение по умолчанию: `"/"`.

> `read_idle_timeout`: number

Время ожидания чтения в секундах. Если в течение этого времени не получено никаких данных, будет выполнена проверка работоспособности.

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

::: tip
Настраивается **только** на стороне **клиента**.
:::

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

> `health_check_timeout`: number

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

::: tip
Настраивается **только** на стороне **клиента**.
:::

> `method`: string

HTTP-метод. Значение по умолчанию: `"PUT"`.

При настройке следует руководствоваться значениями, перечисленными [здесь](https://developer.mozilla.org/en-US/docs/Web/HTTP/Methods).

> `headers`: map{ string: \[string\] }

**Только для клиента.** Пользовательские HTTP-заголовки. Представляет собой пару ключ-значение, где каждый ключ является именем HTTP-заголовка, а значением является массив.
4 changes: 2 additions & 2 deletions docs/ru/config/transports/splithttp.md
Original file line number Diff line number Diff line change
Expand Up @@ -87,7 +87,7 @@

> `xPaddingBytes`: int | string

Задает размер заполнения для запросов (исходящих) и ответов (входящих), чтобы уменьшить цифровой след запроса. Единица измерениябайты. Значение по умолчанию`"100-1000"`, каждый раз будет выбираться случайное число из этого диапазона. Также может быть одним числом, например `"200"` или `200`.
Задает размер заполнения для запросов (исходящих) и ответов (входящих), используемый для уменьшения отпечатка запроса. Единица измерения: байты. Значение по умолчанию: `"100-1000"`. При каждом запросе случайным образом выбирается число из этого диапазона. Тип: [Int32Range](../../development/intro/guide.md#int32range)

Значение `-1` полностью отключает заполнение.

Expand All @@ -112,7 +112,7 @@

Объяснение терминов:
- Потоки будут мультиплексироваться в физические соединения, например: Соединение 1 (Поток 1, Поток 2, Поток 3) Соединение 2 (Поток 4, Поток 5, Поток 6) ... и так далее. В других источниках вы можете встретить описание "соединение-подключение", это то же самое.
- Все поля, описанные ниже, имеют тип int/string и поддерживают как фиксированные значения (например, `16`), так и диапазоны значений (например, `"8-32"`).
- Все следующие поля имеют тип [Int32Range](../../development/intro/guide.md#int32range):

> `maxConcurrency`: int/string

Expand Down
18 changes: 18 additions & 0 deletions docs/ru/development/intro/guide.md
Original file line number Diff line number Diff line change
Expand Up @@ -130,6 +130,24 @@ Xray-core
- Один файл должен содержать один основной тип и связанные с ним приватные функции.
- Тестовые файлы, такие как Mock и другие утилиты, помещайте в подкаталог testing.

#### Int32Range

**Для конечного пользователя**

Значение, представляющее собой необязательный диапазон. Возможные варианты записи:

- Отдельное число или диапазон, заключенные в кавычки:
- `""` (считается как 0). Обратите внимание, что полное отсутствие настройки поля и установка пустого значения могут иметь разное значение.
- `"114"`
- `"114-514"`
- Отдельное целое число (int). В этом случае возможно указать только одно число:
- `114`

**Для разработчика**

Если вам нужно использовать диапазон в файле конфигурации, используйте тип `Int32Range`. Для получения значений используйте `.From` и `.To` вместо использования строкового типа (`string`) и последующего ручного разбора.

Метод `.EnsureOrder()` можно использовать для обмена значений From и To, если From больше, чем To (при необходимости).



Loading