# Wireguard Реализация протокола Wireguard в пользовательском пространстве. ::: danger **Протокол Wireguard не предназначен для обхода блокировок. Использование его на внешнем уровне может привести к блокировке сервера из-за характерных признаков.** ::: ## InboundConfigurationObject ```json { "secretKey": "PRIVATE_KEY", "peers": [ { "publicKey": "PUBLIC_KEY", "allowedIPs":[""] } ], "mtu": 1420 // необязательно, по умолчанию 1420 } ``` > `secretKey`: string Приватный ключ. Обязательное поле. > `mtu`: int Размер фрагментации уровня tun в Wireguard.
Метод расчета MTU Структура пакета Wireguard выглядит следующим образом: ``` - 20-байтный IPv4-заголовок или 40-байтный IPv6-заголовок - 8-байтный UDP-заголовок - 4 байта — тип - 4 байта — индекс ключа - 8 байт — nonce - N байт — зашифрованные данные - 16 байт — аутентификационный тег ``` ```N байт — зашифрованные данные``` — это и есть значение MTU, которое зависит от того, используется ли IPv4 или IPv6. Значение может быть 1440 (IPv4) или 1420 (IPv6). В особых условиях значение может быть дополнительно уменьшено (например, для PPPoE — минус 8 байт).
> `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-адреса.