diff --git a/docs/.vuepress/theme.ts b/docs/.vuepress/theme.ts index a7f9a789e..74d0b5e85 100755 --- a/docs/.vuepress/theme.ts +++ b/docs/.vuepress/theme.ts @@ -71,7 +71,7 @@ export default defaultTheme({ warning: 'Внимание', danger: 'Предупреждение', lastUpdatedText: 'Последние изменения', - selectLanguageName: 'Русский (WIP)', + selectLanguageName: 'Русский', selectLanguageText: '🌍 Русский / Change language', selectLanguageAriaLabel: 'Русский / Change language', docsDir: 'docs', diff --git a/docs/ru/config/inbounds/wireguard.md b/docs/ru/config/inbounds/wireguard.md index 699b97698..e1a52cbee 100644 --- a/docs/ru/config/inbounds/wireguard.md +++ b/docs/ru/config/inbounds/wireguard.md @@ -1,9 +1,9 @@ # Wireguard -User-space implementation of the Wireguard protocol. +Реализация протокола Wireguard в пользовательском пространстве. ::: danger -**The Wireguard protocol is not specifically designed for circumvention purposes. If used as the outer layer for circumvention, its characteristics may lead to server blocking.** +**Протокол Wireguard не предназначен для обхода блокировок. Использование его на внешнем уровне может привести к блокировке сервера из-за характерных признаков.** ::: ## InboundConfigurationObject @@ -17,55 +17,53 @@ User-space implementation of the Wireguard protocol. "allowedIPs":[""] } ], - "kernelMode": true, // optional, default true if it's supported and permission is sufficient - "mtu": 1420, // optional, default 1420 + "mtu": 1420 // необязательно, по умолчанию 1420 } ``` > `secretKey`: string -Private key. Required. +Приватный ключ. Обязательное поле. > `mtu`: int -Fragmentation size of the underlying Wireguard tun. +Размер фрагментации уровня tun в Wireguard.
-MTU Calculation Method +Метод расчета MTU -The structure of a Wireguard packet is as follows: +Структура пакета Wireguard выглядит следующим образом: ``` -- 20-byte IPv4 header or 40 byte IPv6 header -- 8-byte UDP header -- 4-byte type -- 4-byte key index -- 8-byte nonce -- N-byte encrypted data -- 16-byte authentication tag +- 20-байтный IPv4-заголовок или 40-байтный IPv6-заголовок +- 8-байтный UDP-заголовок +- 4 байта — тип +- 4 байта — индекс ключа +- 8 байт — nonce +- N байт — зашифрованные данные +- 16 байт — аутентификационный тег ``` -`N-byte encrypted data` is the MTU value we need. Depending on whether the endpoint is IPv4 or IPv6, the specific values can be 1440 (IPv4) or 1420 (IPv6). If in a special environment, subtract additional bytes accordingly (e.g., subtract 8 more bytes for PPPoE over home broadband). - +```N байт — зашифрованные данные``` — это и есть значение MTU, которое зависит от того, используется ли IPv4 или IPv6. Значение может быть 1440 (IPv4) или 1420 (IPv6). В особых условиях значение может быть дополнительно уменьшено (например, для PPPoE — минус 8 байт).
> `peers`: \[ [Peers](#peers) \] -List of peer servers, where each entry is a server configuration. +Список серверов peers, каждая запись представляет конфигурацию одного сервера. ### Peers ```json { "publicKey": "PUBLIC_KEY", - "allowedIPs": ["0.0.0.0/0"] // optional, default ["0.0.0.0/0", "::/0"] + "allowedIPs": ["0.0.0.0/0"] // необязательно, по умолчанию ["0.0.0.0/0", "::/0"] } ``` > `publicKey`: string -Public key, used for verification. +Публичный ключ для верификации. > `allowedIPs`: string array -Allowed source IPs. +Разрешенные исходные IP-адреса. diff --git a/docs/ru/config/outbounds/wireguard.md b/docs/ru/config/outbounds/wireguard.md index a06fe8fe6..d6318c724 100644 --- a/docs/ru/config/outbounds/wireguard.md +++ b/docs/ru/config/outbounds/wireguard.md @@ -1,9 +1,9 @@ -# WireGuard +# Wireguard -Стандартная реализация протокола WireGuard. +Стандартная реализация протокола Wireguard. ::: danger -**Протокол WireGuard не предназначен для обхода блокировок, и его использование может привести к блокировке сервера из-за наличия характерных признаков.** +**Протокол Wireguard не предназначен для обхода блокировок. Использование его на внешнем уровне может привести к блокировке сервера из-за характерных признаков.** ::: ## OutboundConfigurationObject @@ -15,7 +15,7 @@ // необязательно, по умолчанию ["10.0.0.1", "fd59:7153:2388:b5fd:0000:0000:0000:0001"] "IPv4_CIDR", "IPv6_CIDR", - "и так далее..." + "and more..." ], "peers": [ { @@ -23,7 +23,7 @@ "publicKey": "PUBLIC_KEY" } ], - "kernelMode": true, // необязательно, по умолчанию true, если поддерживается и есть достаточные права + "noKernelTun": false, "mtu": 1420, // необязательно, по умолчанию 1420 "reserved": [1, 2, 3], "workers": 2, // необязательно, по умолчанию runtime.NumCPU() @@ -32,73 +32,66 @@ ``` ::: tip -В настоящее время в исходящем протоколе WireGuard не поддерживается настройка `streamSettings`. +На данный момент протокол Wireguard в режиме outbound не поддерживает настройку `streamSettings`. ::: > `secretKey`: string -Приватный ключ пользователя. Обязательный параметр. +Личный ключ пользователя. Обязательное поле. > `address`: string array -WireGuard создаст виртуальный сетевой интерфейс TUN на локальном компьютере. Используйте один или несколько IP-адресов, IPv6 поддерживается. +Wireguard запускает локальный виртуальный сетевой интерфейс tun. Поддерживается использование одного или нескольких IP-адресов, включая IPv6. -> `kernelMode`: true | false +> `noKernelTun`: true | false -Использовать ли TUN виртуального сетевого интерфейса ядра Linux.
-Для использования TUN виртуального сетевого интерфейса ядра Linux требуется поддержка системы и права root, после использования будет занята 1023-я таблица маршрутизации IPv6.
+По умолчанию система проверяет, работает ли она на Linux и имеет ли пользователь права NET_CAP_ADMIN, чтобы решить, использовать ли системный виртуальный интерфейс. Если он не используется, применяется gvisor. Системный виртуальный интерфейс обеспечивает более высокую производительность. Обратите внимание, что это относится только к обработке IP-пакетов и не связано с ядром Wireguard. -::: tip -Если в 1023-й таблице маршрутизации IPv6 уже есть записи маршрутов и значение `kernelMode` равно `true`, нормальная работа будет невозможна. -::: +Эта проверка может быть неточной. Например, некоторые виртуализации lxc могут изначально не иметь прав на TUN, что приведет к невозможности работы outbound. В таких случаях можно вручную отключить использование системного интерфейса. + +При использовании системного интерфейса IPv6 резервирует таблицу маршрутов с номером 10230. Для каждого нового Wireguard outbound таблица увеличивается на 1 (10231, 10232 и т.д.). + +Если на одной машине запускается второй экземпляр Xray, он попытается использовать таблицу 10230, что вызовет конфликт с первым экземпляром. В таких случаях необходимо отключить использование системного интерфейса. > `mtu`: int -Размер фрагментации TUN нижнего уровня WireGuard. +MTU нижнего уровня tun в Wireguard.
-Как рассчитать MTU +Метод расчета MTU -Структура пакета WireGuard выглядит следующим образом: +Структура пакета Wireguard: ``` -- 20-байтовый заголовок IPv4 или 40-байтовый заголовок IPv6 -- 8-байтовый заголовок UDP -- 4 байта типа -- 4 байта индекса ключа -- 8 байтов nonce -- N байтов зашифрованных данных -- 16-байтовый тег аутентификации +- 20-байтный заголовок IPv4 или 40-байтный заголовок IPv6 +- 8-байтный заголовок UDP +- 4 байта — тип +- 4 байта — индекс ключа +- 8 байт — nonce +- N байт — зашифрованные данные +- 16 байт — аутентификационный тег ``` -`N байтов зашифрованных данных` - это значение MTU, которое нам нужно. В зависимости от того, использует ли конечная точка IPv4 или IPv6, конкретное значение может быть 1440 (IPv4) или 1420 (IPv6), и его можно дополнительно уменьшить, если это необходимо в особых условиях (например, PPPoE для домашнего интернета требует дополнительного вычитания 8). +```N байт — зашифрованные данные``` — это значение MTU. Для IPv4 оно равно 1440, для IPv6 — 1420. В особых условиях значение может быть уменьшено (например, для PPPoE — минус 8 байт).
> `reserved` \[ number \] -Зарезервированные байты WireGuard. - -Новый параметр в Xray-core v1.8.0.
-При подключении к Warp через WireGuard из-за ограничений Cloudflare для некоторых IP-адресов в Гонконге и Лос-Анджелесе требуется значение `reserved` для успешного подключения.
-Значение `reserved` можно получить с помощью сторонних инструментов, таких как: [warp-reg](https://github.com/badafans/warp-reg), [warp-reg.sh](https://github.com/chise0713/warp-reg.sh). +Зарезервированные байты Wireguard, заполняются при необходимости. > `workers`: int -Количество потоков, используемых WireGuard. +Количество потоков Wireguard. По умолчанию равно количеству ядер процессора. > `peers`: \[ [Peers](#peers) \] -Список серверов WireGuard, где каждый элемент является конфигурацией сервера. +Список серверов Wireguard. Каждая запись представляет конфигурацию одного сервера. > `domainStrategy`: "ForceIPv6v4" | "ForceIPv6" | "ForceIPv4v6" | "ForceIPv4" | "ForceIP" -Новый параметр в Xray-core v1.8.6.
-Если этот параметр не указан или оставлен пустым, используется значение по умолчанию `"ForceIP"`.
-Если целевой адрес является доменным именем, для получения IP-адреса используется [встроенный DNS-сервер](../dns.md) Xray-core (если конфигурация `"dns"` не указана, используется системный DNS), и этот IP-адрес отправляется через WireGuard для установления соединения.
+В отличие от большинства прокси-протоколов, Wireguard не позволяет передавать доменные имена в качестве целей. Если в качестве цели передается доменное имя, оно разрешается в IP-адрес через встроенный DNS Xray. Подробнее см. поле `domainStrategy` для outbound `Freedom`. По умолчанию используется `ForceIP`. -::: tip -Если значение `domainStrategy` конфликтует со значением `"queryStrategy"` в конфигурации `"dns"`, это может привести к ошибкам при открытии веб-сайтов. -::: +Примечание: В настройках `Freedom` доступны опции, такие как `UseIP`, которые здесь отсутствуют, так как Wireguard требует наличия действительного IP-адреса. ```json "dns": { @@ -110,21 +103,13 @@ WireGuard создаст виртуальный сетевой интерфей "geosite:openai" ], "skipFallback": true, - "queryStrategy": "UseIPv6" // Запрашивать только записи AAAA + "queryStrategy": "UseIPv6" // Запрос только AAAA-записей } ], - "queryStrategy": "UseIP" // Запрашивать записи A и AAAA одновременно, если этот параметр не указан, значение по умолчанию - UseIP + "queryStrategy": "UseIP" // Запрос A и AAAA одновременно. Если не указано, используется значение по умолчанию UseIP. }, ``` -Если `domainStrategy: "ForceIPv4"`, а в поле DNS, управляющем запросами домена geosite:openai, используется `"queryStrategy": "UseIPv6"`, это приведет к ошибкам при открытии веб-сайтов geosite:openai. - -::: tip -В Xray-core v1.8.0 - v1.8.4 нет `"domainStrategy"`.
-Если целевой адрес является доменным именем, для получения IP-адреса используется встроенный DNS-сервер Xray-core. Значение `"queryStrategy"` в конфигурации `"dns"` используется для управления приоритетом IPv4 или IPv6.
-Если конфигурация `"dns"` не указана, для получения IP-адреса используется системный DNS, а приоритет IPv4 или IPv6 определяется системой. -::: - ### Peers ```json @@ -139,31 +124,23 @@ WireGuard создаст виртуальный сетевой интерфей > `endpoint`: address -Адрес сервера, обязательный параметр. +Адрес сервера. Обязательное поле. -Формат URL:порт, например, `engage.cloudflareclient.com:2408`
-Формат IP:порт, например, `162.159.192.1:2408` или `[2606:4700:d0::a29f:c001]:2408`. - -::: tip -Если целевой адрес имеет тип URL, для получения IP-адреса будет использоваться встроенный DNS-сервер Xray-core, приоритет IPv4 или IPv6 определяется значением `domainStrategy`.
-Если конфигурация `"dns"` не указана, для получения IP-адреса будет использоваться системный DNS, а приоритет IPv4 или IPv6 будет определяться системой. -::: +Формат URL:порт, например, `engage.cloudflareclient.com:2408`.
+Формат IP:порт, например, `162.159.192.1:2408` или `[2606:4700:d0::a29f:c001]:2408`. > `publicKey`: string -Публичный ключ сервера, используемый для аутентификации, обязательный параметр. +Публичный ключ сервера для проверки. Обязательное поле. > `preSharedKey`: string -Дополнительный ключ симметричного шифрования. +Дополнительный симметричный ключ шифрования. > `keepAlive`: int -Интервал отправки keep-alive пакетов в секундах, значение по умолчанию - 0, что означает отсутствие keep-alive. +Интервал отправки пакетов heartbeat, в секундах. Значение по умолчанию — 0 (отсутствие heartbeat). > `allowedIPs`: string array -WireGuard разрешает трафик только от определенных исходных IP-адресов. - - - +Wireguard пропускает только трафик с определенных IP-адресов.