Browse Source

Sync RU branch (#592)

pull/594/head
Nikita Korotaev 2 months ago committed by GitHub
parent
commit
a3800c7a73
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
  1. 4
      docs/.vuepress/config/sidebar/ru.ts
  2. 3
      docs/ru/config/outbounds/freedom.md
  3. 7
      docs/ru/config/transport.md
  4. 86
      docs/ru/config/transports/h2.md
  5. 88
      docs/ru/config/transports/http.md
  6. 4
      docs/ru/config/transports/splithttp.md
  7. 18
      docs/ru/development/intro/guide.md

4
docs/.vuepress/config/sidebar/ru.ts

@ -64,9 +64,9 @@ export const sidebarRu: SidebarConfig = {
text: 'Транспортный уровень', text: 'Транспортный уровень',
children: [ children: [
'/ru/config/transports/grpc.md', '/ru/config/transports/grpc.md',
'/ru/config/transports/h2.md', '/ru/config/transports/http.md',
'/ru/config/transports/mkcp.md', '/ru/config/transports/mkcp.md',
'/ru/config/transports/tcp.md', '/ru/config/transports/raw.md',
'/ru/config/transports/websocket.md', '/ru/config/transports/websocket.md',
'/ru/config/transports/httpupgrade.md', '/ru/config/transports/httpupgrade.md',
'/ru/config/transports/splithttp.md' '/ru/config/transports/splithttp.md'

3
docs/ru/config/outbounds/freedom.md

@ -62,6 +62,7 @@ Freedom будет принудительно отправлять все дан
> `fragment`: map > `fragment`: map
Несколько пар «ключ-значение», используемых для управления исходящей фрагментацией TCP. В некоторых случаях это может обмануть системы цензуры, например, обойти черные списки SNI. Несколько пар «ключ-значение», используемых для управления исходящей фрагментацией TCP. В некоторых случаях это может обмануть системы цензуры, например, обойти черные списки SNI.
`"length"` и `"interval"` относятся к типу [Int32Range](../../development/intro/guide.md#int32range)
`"packets"`: поддерживаются два режима фрагментации: "1-3" — фрагментация потока TCP, применяется к первым трем операциям записи данных на стороне клиента; "tlshello" — фрагментация пакета TLS-рукопожатия. `"packets"`: поддерживаются два режима фрагментации: "1-3" — фрагментация потока TCP, применяется к первым трем операциям записи данных на стороне клиента; "tlshello" — фрагментация пакета TLS-рукопожатия.
@ -85,7 +86,7 @@ UDP-шум, используемый для отправки случайных
- Если `type` равен `str`, здесь указывается строка для отправки. - Если `type` равен `str`, здесь указывается строка для отправки.
- Если `type` равен `base64`, здесь указываются двоичные данные, закодированные в Base64. - Если `type` равен `base64`, здесь указываются двоичные данные, закодированные в Base64.
`"delay"`: задержка в миллисекундах. После отправки этого пакета шума ядро будет ожидать указанное время, прежде чем отправить следующий пакет шума или реальные данные. По умолчанию ожидание отсутствует. Можно установить целое число, например `100`, или строку с диапазоном значений, например `"50-150"`. `"delay"`: **задержка**, в миллисекундах. После отправки этого пакета шума ядро будет ждать указанное время, прежде чем отправить следующий пакет шума или реальные данные. По умолчанию ожидание отсутствует. Тип: [Int32Range](../../development/intro/guide.md#int32range)
> `proxyProtocol`: number > `proxyProtocol`: number

7
docs/ru/config/transport.md

@ -46,6 +46,9 @@
> `network`: "raw" | "ws" | "h2" | "grpc" | "kcp" | "httpupgrade" | "splithttp" > `network`: "raw" | "ws" | "h2" | "grpc" | "kcp" | "httpupgrade" | "splithttp"
Тип способа передачи, используемого потоком данных соединения, по умолчанию `"raw"` Тип способа передачи, используемого потоком данных соединения, по умолчанию `"raw"`
::: tip
**Начиная с версии v24.9.30**, для более точного отражения фактического поведения, тип передачи `tcp` был переименован в `raw`. Для обеспечения совместимости `"network": "raw"` и `"network": "tcp"`, `rawSettings` и `tcpSettings` являются синонимами.
:::
::: tip ::: tip
"h2" можно записать как "http", "grpc" можно записать как "gun", "kcp" можно записать как "mkcp". "h2" можно записать как "http", "grpc" можно записать как "gun", "kcp" можно записать как "mkcp".
@ -83,9 +86,9 @@ Reality — это самое безопасное на данный момен
Конфигурация WebSocket для текущего соединения, действительна только если это соединение использует WebSocket. Конфигурация WebSocket для текущего соединения, действительна только если это соединение использует WebSocket.
> `httpSettings`: [HttpObject](./transports/h2.md) > `httpSettings`: [HttpObject](./transports/http.md)
Конфигурация HTTP/2 для текущего соединения, действительна только если это соединение использует HTTP/2. Конфигурация HTTP для текущего соединения, действительна только если это соединение использует HTTP.
> `grpcSettings`: [GRPCObject](./transports/grpc.md) > `grpcSettings`: [GRPCObject](./transports/grpc.md)

86
docs/ru/config/transports/h2.md

@ -1,86 +0,0 @@
# HTTP/2
Способ передачи данных на основе HTTP/2.
Он полностью реализован в соответствии со стандартом HTTP/2 и может быть перенаправлен через другие HTTP-серверы (например, Nginx).
В соответствии с рекомендациями HTTP/2, клиент и сервер должны одновременно включать TLS для нормальной работы этого способа передачи.
HTTP/2 имеет встроенное мультиплексирование, не рекомендуется включать mux.cool при использовании HTTP/2.
::: tip
Текущая версия способа передачи HTTP/2 **не требует**, чтобы **входящее соединение** (**сервер**) имело конфигурацию TLS.
Это позволяет в среде развертывания с разделением трафика для специальных целей использовать внешний шлюз для обработки TLS-соединения, в то время как Xray будет использоваться в качестве серверного приложения, а связь между шлюзом и Xray будет осуществляться по незашифрованному протоколу http/2, который называется `h2c`.
:::
::: warning
Если вы используете fallback, обратите внимание на следующие моменты:
- Убедитесь, что (x)tlsSettings.alpn содержит h2, иначе HTTP/2 не сможет завершить TLS-рукопожатие.
- HTTP/2 не может быть разделен по пути, рекомендуется использовать SNI-разделение.
:::
## 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-заголовка, а значение представляет собой массив.

88
docs/ru/config/transports/http.md

@ -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
docs/ru/config/transports/splithttp.md

@ -87,7 +87,7 @@
> `xPaddingBytes`: int | string > `xPaddingBytes`: int | string
Задает размер заполнения для запросов (исходящих) и ответов (входящих), чтобы уменьшить цифровой след запроса. Единица измерения — байты. Значение по умолчанию — `"100-1000"`, каждый раз будет выбираться случайное число из этого диапазона. Также может быть одним числом, например `"200"` или `200`. Задает размер заполнения для запросов (исходящих) и ответов (входящих), используемый для уменьшения отпечатка запроса. Единица измерения: байты. Значение по умолчанию: `"100-1000"`. При каждом запросе случайным образом выбирается число из этого диапазона. Тип: [Int32Range](../../development/intro/guide.md#int32range)
Значение `-1` полностью отключает заполнение. Значение `-1` полностью отключает заполнение.
@ -112,7 +112,7 @@
Объяснение терминов: Объяснение терминов:
- Потоки будут мультиплексироваться в физические соединения, например: Соединение 1 (Поток 1, Поток 2, Поток 3) Соединение 2 (Поток 4, Поток 5, Поток 6) ... и так далее. В других источниках вы можете встретить описание "соединение-подключение", это то же самое. - Потоки будут мультиплексироваться в физические соединения, например: Соединение 1 (Поток 1, Поток 2, Поток 3) Соединение 2 (Поток 4, Поток 5, Поток 6) ... и так далее. В других источниках вы можете встретить описание "соединение-подключение", это то же самое.
- Все поля, описанные ниже, имеют тип int/string и поддерживают как фиксированные значения (например, `16`), так и диапазоны значений (например, `"8-32"`). - Все следующие поля имеют тип [Int32Range](../../development/intro/guide.md#int32range):
> `maxConcurrency`: int/string > `maxConcurrency`: int/string

18
docs/ru/development/intro/guide.md

@ -130,6 +130,24 @@ Xray-core
- Один файл должен содержать один основной тип и связанные с ним приватные функции. - Один файл должен содержать один основной тип и связанные с ним приватные функции.
- Тестовые файлы, такие как Mock и другие утилиты, помещайте в подкаталог testing. - Тестовые файлы, такие как Mock и другие утилиты, помещайте в подкаталог testing.
#### Int32Range
**Для конечного пользователя**
Значение, представляющее собой необязательный диапазон. Возможные варианты записи:
- Отдельное число или диапазон, заключенные в кавычки:
- `""` (считается как 0). Обратите внимание, что полное отсутствие настройки поля и установка пустого значения могут иметь разное значение.
- `"114"`
- `"114-514"`
- Отдельное целое число (int). В этом случае возможно указать только одно число:
- `114`
**Для разработчика**
Если вам нужно использовать диапазон в файле конфигурации, используйте тип `Int32Range`. Для получения значений используйте `.From` и `.To` вместо использования строкового типа (`string`) и последующего ручного разбора.
Метод `.EnsureOrder()` можно использовать для обмена значений From и To, если From больше, чем To (при необходимости).

Loading…
Cancel
Save