mirror of
https://github.com/XTLS/Xray-docs-next.git
synced 2026-09-28 01:47:59 +03:00
82 lines
2.6 KiB
Markdown
82 lines
2.6 KiB
Markdown
# Wireguard
|
|
|
|
Реализация протокола Wireguard в пользовательском пространстве.
|
|
|
|
::: danger
|
|
**Протокол Wireguard не предназначен для обхода блокировок. Использование его на внешнем уровне может привести к блокировке сервера из-за характерных признаков.**
|
|
:::
|
|
|
|
## InboundConfigurationObject
|
|
|
|
`InboundConfigurationObject` соответствует элементу `settings` в [`InboundObject`](../inbound.md).
|
|
|
|
```json
|
|
{
|
|
"inbounds": [
|
|
{
|
|
// ...
|
|
"protocol": "wireguard",
|
|
// [!code focus:10]
|
|
"settings": {
|
|
"secretKey": "PRIVATE_KEY",
|
|
"peers": [
|
|
{
|
|
"publicKey": "PUBLIC_KEY",
|
|
"allowedIPs": [""]
|
|
}
|
|
],
|
|
"mtu": 1420 // необязательно, по умолчанию 1420
|
|
}
|
|
}
|
|
]
|
|
}
|
|
```
|
|
|
|
> `secretKey`: string
|
|
|
|
Приватный ключ. Обязательное поле.
|
|
|
|
> `mtu`: int
|
|
|
|
Размер фрагментации уровня tun в Wireguard.
|
|
|
|
<details>
|
|
<summary>Метод расчета MTU</summary>
|
|
|
|
Структура пакета Wireguard выглядит следующим образом:
|
|
|
|
```
|
|
- 20-байтный IPv4-заголовок или 40-байтный IPv6-заголовок
|
|
- 8-байтный UDP-заголовок
|
|
- 4 байта — тип
|
|
- 4 байта — индекс ключа
|
|
- 8 байт — nonce
|
|
- N байт — зашифрованные данные
|
|
- 16 байт — аутентификационный тег
|
|
```
|
|
|
|
`N байт — зашифрованные данные` — это и есть значение MTU, которое зависит от того, используется ли IPv4 или IPv6. Значение может быть 1440 (IPv4) или 1420 (IPv6). В особых условиях значение может быть дополнительно уменьшено (например, для PPPoE — минус 8 байт).
|
|
|
|
</details>
|
|
|
|
> `peers`: \[ [Peers](#peers) \]
|
|
|
|
Список серверов peers, каждая запись представляет конфигурацию одного сервера.
|
|
|
|
### Peers
|
|
|
|
```json
|
|
{
|
|
"publicKey": "PUBLIC_KEY",
|
|
"allowedIPs": ["0.0.0.0/0"] // необязательно, по умолчанию ["0.0.0.0/0", "::/0"]
|
|
}
|
|
```
|
|
|
|
> `publicKey`: string
|
|
|
|
Публичный ключ для верификации.
|
|
|
|
> `allowedIPs`: string array
|
|
|
|
Разрешенные исходные IP-адреса.
|