mirror of
https://github.com/XTLS/Xray-docs-next.git
synced 2025-02-12 04:29:25 +03:00
RU WG inbound/outbound (#616)
* upd wg inbound * upd wg outbound * change WIP badge
This commit is contained in:
parent
deaa02e56c
commit
19006b7cd7
@ -71,7 +71,7 @@ export default defaultTheme({
|
|||||||
warning: 'Внимание',
|
warning: 'Внимание',
|
||||||
danger: 'Предупреждение',
|
danger: 'Предупреждение',
|
||||||
lastUpdatedText: 'Последние изменения',
|
lastUpdatedText: 'Последние изменения',
|
||||||
selectLanguageName: 'Русский (WIP)',
|
selectLanguageName: 'Русский',
|
||||||
selectLanguageText: '🌍 Русский / Change language',
|
selectLanguageText: '🌍 Русский / Change language',
|
||||||
selectLanguageAriaLabel: 'Русский / Change language',
|
selectLanguageAriaLabel: 'Русский / Change language',
|
||||||
docsDir: 'docs',
|
docsDir: 'docs',
|
||||||
|
@ -1,9 +1,9 @@
|
|||||||
# Wireguard
|
# Wireguard
|
||||||
|
|
||||||
User-space implementation of the Wireguard protocol.
|
Реализация протокола Wireguard в пользовательском пространстве.
|
||||||
|
|
||||||
::: danger
|
::: 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
|
## InboundConfigurationObject
|
||||||
@ -17,55 +17,53 @@ User-space implementation of the Wireguard protocol.
|
|||||||
"allowedIPs":[""]
|
"allowedIPs":[""]
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
"kernelMode": true, // optional, default true if it's supported and permission is sufficient
|
"mtu": 1420 // необязательно, по умолчанию 1420
|
||||||
"mtu": 1420, // optional, default 1420
|
|
||||||
}
|
}
|
||||||
```
|
```
|
||||||
|
|
||||||
> `secretKey`: string
|
> `secretKey`: string
|
||||||
|
|
||||||
Private key. Required.
|
Приватный ключ. Обязательное поле.
|
||||||
|
|
||||||
> `mtu`: int
|
> `mtu`: int
|
||||||
|
|
||||||
Fragmentation size of the underlying Wireguard tun.
|
Размер фрагментации уровня tun в Wireguard.
|
||||||
|
|
||||||
<details>
|
<details>
|
||||||
<summary>MTU Calculation Method</summary>
|
<summary>Метод расчета MTU</summary>
|
||||||
|
|
||||||
The structure of a Wireguard packet is as follows:
|
Структура пакета Wireguard выглядит следующим образом:
|
||||||
|
|
||||||
```
|
```
|
||||||
- 20-byte IPv4 header or 40 byte IPv6 header
|
- 20-байтный IPv4-заголовок или 40-байтный IPv6-заголовок
|
||||||
- 8-byte UDP header
|
- 8-байтный UDP-заголовок
|
||||||
- 4-byte type
|
- 4 байта — тип
|
||||||
- 4-byte key index
|
- 4 байта — индекс ключа
|
||||||
- 8-byte nonce
|
- 8 байт — nonce
|
||||||
- N-byte encrypted data
|
- N байт — зашифрованные данные
|
||||||
- 16-byte authentication tag
|
- 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 байт).
|
||||||
|
|
||||||
</details>
|
</details>
|
||||||
|
|
||||||
> `peers`: \[ [Peers](#peers) \]
|
> `peers`: \[ [Peers](#peers) \]
|
||||||
|
|
||||||
List of peer servers, where each entry is a server configuration.
|
Список серверов peers, каждая запись представляет конфигурацию одного сервера.
|
||||||
|
|
||||||
### Peers
|
### Peers
|
||||||
|
|
||||||
```json
|
```json
|
||||||
{
|
{
|
||||||
"publicKey": "PUBLIC_KEY",
|
"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
|
> `publicKey`: string
|
||||||
|
|
||||||
Public key, used for verification.
|
Публичный ключ для верификации.
|
||||||
|
|
||||||
> `allowedIPs`: string array
|
> `allowedIPs`: string array
|
||||||
|
|
||||||
Allowed source IPs.
|
Разрешенные исходные IP-адреса.
|
||||||
|
@ -1,9 +1,9 @@
|
|||||||
# WireGuard
|
# Wireguard
|
||||||
|
|
||||||
Стандартная реализация протокола WireGuard.
|
Стандартная реализация протокола Wireguard.
|
||||||
|
|
||||||
::: danger
|
::: danger
|
||||||
**Протокол WireGuard не предназначен для обхода блокировок, и его использование может привести к блокировке сервера из-за наличия характерных признаков.**
|
**Протокол Wireguard не предназначен для обхода блокировок. Использование его на внешнем уровне может привести к блокировке сервера из-за характерных признаков.**
|
||||||
:::
|
:::
|
||||||
|
|
||||||
## OutboundConfigurationObject
|
## OutboundConfigurationObject
|
||||||
@ -15,7 +15,7 @@
|
|||||||
// необязательно, по умолчанию ["10.0.0.1", "fd59:7153:2388:b5fd:0000:0000:0000:0001"]
|
// необязательно, по умолчанию ["10.0.0.1", "fd59:7153:2388:b5fd:0000:0000:0000:0001"]
|
||||||
"IPv4_CIDR",
|
"IPv4_CIDR",
|
||||||
"IPv6_CIDR",
|
"IPv6_CIDR",
|
||||||
"и так далее..."
|
"and more..."
|
||||||
],
|
],
|
||||||
"peers": [
|
"peers": [
|
||||||
{
|
{
|
||||||
@ -23,7 +23,7 @@
|
|||||||
"publicKey": "PUBLIC_KEY"
|
"publicKey": "PUBLIC_KEY"
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
"kernelMode": true, // необязательно, по умолчанию true, если поддерживается и есть достаточные права
|
"noKernelTun": false,
|
||||||
"mtu": 1420, // необязательно, по умолчанию 1420
|
"mtu": 1420, // необязательно, по умолчанию 1420
|
||||||
"reserved": [1, 2, 3],
|
"reserved": [1, 2, 3],
|
||||||
"workers": 2, // необязательно, по умолчанию runtime.NumCPU()
|
"workers": 2, // необязательно, по умолчанию runtime.NumCPU()
|
||||||
@ -32,73 +32,66 @@
|
|||||||
```
|
```
|
||||||
|
|
||||||
::: tip
|
::: tip
|
||||||
В настоящее время в исходящем протоколе WireGuard не поддерживается настройка `streamSettings`.
|
На данный момент протокол Wireguard в режиме outbound не поддерживает настройку `streamSettings`.
|
||||||
:::
|
:::
|
||||||
|
|
||||||
> `secretKey`: string
|
> `secretKey`: string
|
||||||
|
|
||||||
Приватный ключ пользователя. Обязательный параметр.
|
Личный ключ пользователя. Обязательное поле.
|
||||||
|
|
||||||
> `address`: string array
|
> `address`: string array
|
||||||
|
|
||||||
WireGuard создаст виртуальный сетевой интерфейс TUN на локальном компьютере. Используйте один или несколько IP-адресов, IPv6 поддерживается.
|
Wireguard запускает локальный виртуальный сетевой интерфейс tun. Поддерживается использование одного или нескольких IP-адресов, включая IPv6.
|
||||||
|
|
||||||
> `kernelMode`: true | false
|
> `noKernelTun`: true | false
|
||||||
|
|
||||||
Использовать ли TUN виртуального сетевого интерфейса ядра Linux.<br>
|
По умолчанию система проверяет, работает ли она на Linux и имеет ли пользователь права NET_CAP_ADMIN, чтобы решить, использовать ли системный виртуальный интерфейс. Если он не используется, применяется gvisor. Системный виртуальный интерфейс обеспечивает более высокую производительность. Обратите внимание, что это относится только к обработке IP-пакетов и не связано с ядром Wireguard.
|
||||||
Для использования TUN виртуального сетевого интерфейса ядра Linux требуется поддержка системы и права root, после использования будет занята 1023-я таблица маршрутизации IPv6.<br>
|
|
||||||
|
|
||||||
::: tip
|
Эта проверка может быть неточной. Например, некоторые виртуализации lxc могут изначально не иметь прав на TUN, что приведет к невозможности работы outbound. В таких случаях можно вручную отключить использование системного интерфейса.
|
||||||
Если в 1023-й таблице маршрутизации IPv6 уже есть записи маршрутов и значение `kernelMode` равно `true`, нормальная работа будет невозможна.
|
|
||||||
:::
|
При использовании системного интерфейса IPv6 резервирует таблицу маршрутов с номером 10230. Для каждого нового Wireguard outbound таблица увеличивается на 1 (10231, 10232 и т.д.).
|
||||||
|
|
||||||
|
Если на одной машине запускается второй экземпляр Xray, он попытается использовать таблицу 10230, что вызовет конфликт с первым экземпляром. В таких случаях необходимо отключить использование системного интерфейса.
|
||||||
|
|
||||||
> `mtu`: int
|
> `mtu`: int
|
||||||
|
|
||||||
Размер фрагментации TUN нижнего уровня WireGuard.
|
MTU нижнего уровня tun в Wireguard.
|
||||||
|
|
||||||
<details>
|
<details>
|
||||||
<summary>Как рассчитать MTU</summary>
|
<summary>Метод расчета MTU</summary>
|
||||||
|
|
||||||
Структура пакета WireGuard выглядит следующим образом:
|
Структура пакета Wireguard:
|
||||||
|
|
||||||
```
|
```
|
||||||
- 20-байтовый заголовок IPv4 или 40-байтовый заголовок IPv6
|
- 20-байтный заголовок IPv4 или 40-байтный заголовок IPv6
|
||||||
- 8-байтовый заголовок UDP
|
- 8-байтный заголовок UDP
|
||||||
- 4 байта типа
|
- 4 байта — тип
|
||||||
- 4 байта индекса ключа
|
- 4 байта — индекс ключа
|
||||||
- 8 байтов nonce
|
- 8 байт — nonce
|
||||||
- N байтов зашифрованных данных
|
- N байт — зашифрованные данные
|
||||||
- 16-байтовый тег аутентификации
|
- 16 байт — аутентификационный тег
|
||||||
```
|
```
|
||||||
|
|
||||||
`N байтов зашифрованных данных` - это значение MTU, которое нам нужно. В зависимости от того, использует ли конечная точка IPv4 или IPv6, конкретное значение может быть 1440 (IPv4) или 1420 (IPv6), и его можно дополнительно уменьшить, если это необходимо в особых условиях (например, PPPoE для домашнего интернета требует дополнительного вычитания 8).
|
```N байт — зашифрованные данные``` — это значение MTU. Для IPv4 оно равно 1440, для IPv6 — 1420. В особых условиях значение может быть уменьшено (например, для PPPoE — минус 8 байт).
|
||||||
</details>
|
</details>
|
||||||
|
|
||||||
> `reserved` \[ number \]
|
> `reserved` \[ number \]
|
||||||
|
|
||||||
Зарезервированные байты WireGuard.
|
Зарезервированные байты Wireguard, заполняются при необходимости.
|
||||||
|
|
||||||
Новый параметр в Xray-core v1.8.0.<br>
|
|
||||||
При подключении к Warp через WireGuard из-за ограничений Cloudflare для некоторых IP-адресов в Гонконге и Лос-Анджелесе требуется значение `reserved` для успешного подключения.<br>
|
|
||||||
Значение `reserved` можно получить с помощью сторонних инструментов, таких как: [warp-reg](https://github.com/badafans/warp-reg), [warp-reg.sh](https://github.com/chise0713/warp-reg.sh).
|
|
||||||
|
|
||||||
> `workers`: int
|
> `workers`: int
|
||||||
|
|
||||||
Количество потоков, используемых WireGuard.
|
Количество потоков Wireguard. По умолчанию равно количеству ядер процессора.
|
||||||
|
|
||||||
> `peers`: \[ [Peers](#peers) \]
|
> `peers`: \[ [Peers](#peers) \]
|
||||||
|
|
||||||
Список серверов WireGuard, где каждый элемент является конфигурацией сервера.
|
Список серверов Wireguard. Каждая запись представляет конфигурацию одного сервера.
|
||||||
|
|
||||||
> `domainStrategy`: "ForceIPv6v4" | "ForceIPv6" | "ForceIPv4v6" | "ForceIPv4" | "ForceIP"
|
> `domainStrategy`: "ForceIPv6v4" | "ForceIPv6" | "ForceIPv4v6" | "ForceIPv4" | "ForceIP"
|
||||||
|
|
||||||
Новый параметр в Xray-core v1.8.6.<br>
|
В отличие от большинства прокси-протоколов, Wireguard не позволяет передавать доменные имена в качестве целей. Если в качестве цели передается доменное имя, оно разрешается в IP-адрес через встроенный DNS Xray. Подробнее см. поле `domainStrategy` для outbound `Freedom`. По умолчанию используется `ForceIP`.
|
||||||
Если этот параметр не указан или оставлен пустым, используется значение по умолчанию `"ForceIP"`.<br>
|
|
||||||
Если целевой адрес является доменным именем, для получения IP-адреса используется [встроенный DNS-сервер](../dns.md) Xray-core (если конфигурация `"dns"` не указана, используется системный DNS), и этот IP-адрес отправляется через WireGuard для установления соединения.<br>
|
|
||||||
|
|
||||||
::: tip
|
Примечание: В настройках `Freedom` доступны опции, такие как `UseIP`, которые здесь отсутствуют, так как Wireguard требует наличия действительного IP-адреса.
|
||||||
Если значение `domainStrategy` конфликтует со значением `"queryStrategy"` в конфигурации `"dns"`, это может привести к ошибкам при открытии веб-сайтов.
|
|
||||||
:::
|
|
||||||
|
|
||||||
```json
|
```json
|
||||||
"dns": {
|
"dns": {
|
||||||
@ -110,21 +103,13 @@ WireGuard создаст виртуальный сетевой интерфей
|
|||||||
"geosite:openai"
|
"geosite:openai"
|
||||||
],
|
],
|
||||||
"skipFallback": true,
|
"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"`.<br>
|
|
||||||
Если целевой адрес является доменным именем, для получения IP-адреса используется встроенный DNS-сервер Xray-core. Значение `"queryStrategy"` в конфигурации `"dns"` используется для управления приоритетом IPv4 или IPv6.<br>
|
|
||||||
Если конфигурация `"dns"` не указана, для получения IP-адреса используется системный DNS, а приоритет IPv4 или IPv6 определяется системой.
|
|
||||||
:::
|
|
||||||
|
|
||||||
### Peers
|
### Peers
|
||||||
|
|
||||||
```json
|
```json
|
||||||
@ -139,31 +124,23 @@ WireGuard создаст виртуальный сетевой интерфей
|
|||||||
|
|
||||||
> `endpoint`: address
|
> `endpoint`: address
|
||||||
|
|
||||||
Адрес сервера, обязательный параметр.
|
Адрес сервера. Обязательное поле.
|
||||||
|
|
||||||
Формат URL:порт, например, `engage.cloudflareclient.com:2408`<br>
|
Формат URL:порт, например, `engage.cloudflareclient.com:2408`.<br>
|
||||||
Формат IP:порт, например, `162.159.192.1:2408` или `[2606:4700:d0::a29f:c001]:2408`.
|
Формат IP:порт, например, `162.159.192.1:2408` или `[2606:4700:d0::a29f:c001]:2408`.
|
||||||
|
|
||||||
::: tip
|
|
||||||
Если целевой адрес имеет тип URL, для получения IP-адреса будет использоваться встроенный DNS-сервер Xray-core, приоритет IPv4 или IPv6 определяется значением `domainStrategy`.<br>
|
|
||||||
Если конфигурация `"dns"` не указана, для получения IP-адреса будет использоваться системный DNS, а приоритет IPv4 или IPv6 будет определяться системой.
|
|
||||||
:::
|
|
||||||
|
|
||||||
> `publicKey`: string
|
> `publicKey`: string
|
||||||
|
|
||||||
Публичный ключ сервера, используемый для аутентификации, обязательный параметр.
|
Публичный ключ сервера для проверки. Обязательное поле.
|
||||||
|
|
||||||
> `preSharedKey`: string
|
> `preSharedKey`: string
|
||||||
|
|
||||||
Дополнительный ключ симметричного шифрования.
|
Дополнительный симметричный ключ шифрования.
|
||||||
|
|
||||||
> `keepAlive`: int
|
> `keepAlive`: int
|
||||||
|
|
||||||
Интервал отправки keep-alive пакетов в секундах, значение по умолчанию - 0, что означает отсутствие keep-alive.
|
Интервал отправки пакетов heartbeat, в секундах. Значение по умолчанию — 0 (отсутствие heartbeat).
|
||||||
|
|
||||||
> `allowedIPs`: string array
|
> `allowedIPs`: string array
|
||||||
|
|
||||||
WireGuard разрешает трафик только от определенных исходных IP-адресов.
|
Wireguard пропускает только трафик с определенных IP-адресов.
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user