WireGuard VPN: как работает и когда он нужен

Современный протокол с коротким набором шифров и понятной логикой маршрутов. Разбираем, как он устроен и где применяется.

Кратко

WireGuard - протокол туннеля с фиксированным набором шифров: ChaCha20 с Poly1305 для шифрования с проверкой подлинности, Curve25519 для обмена ключами, BLAKE2s для хеширования. Все пакеты идут по UDP. Фокси выдаёт ключ VLESS, а не WireGuard, но разобраться, чем они отличаются, полезно.

Похожая задача решается и там, и там: зашифровать канал между устройством и сервером. Различается способ настройки, набор клиентов и то, сколько ручной работы нужно человеку.

Как устроен обмен

  1. 1

    У каждого участника есть пара ключей, закрытый и открытый.

  2. 2

    Открытые ключи заранее обмениваются между клиентом и сервером.

  3. 3

    Клиент отправляет пакет, шифруя его на ключ сервера.

  4. 4

    Сервер проверяет подпись и запоминает, откуда пришёл пакет.

  5. 5

    Если клиент сменил сеть, сервер обновляет адрес по первому проверенному пакету: роуминг встроен.

AllowedIPs: самая путаная настройка

У каждого собеседника в конфигурации есть поле AllowedIPs. Оно работает в двух направлениях. Для исходящих пакетов это таблица маршрутов: по адресу назначения выбирается собеседник, чей ключ шифрует пакет. Для входящих - список допустимых источников: расшифрованный пакет с адресом вне списка отбрасывается.

Из-за этого ошибка в одной строке даёт странные последствия. Пакеты летят не туда или молча пропадают, и снаружи кажется, что соединение сломалось.

Когда он нужен

Подходит, если вы сами поднимаете сервер на своём оборудовании, например, дома на роутере, и хотите связать несколько устройств. Конфигурация короткая, но все ключи вы раздаёте и храните сами.

Файл конфигурации WireGuard выглядит как короткий текст из двух секций: для самого интерфейса и для собеседника. Из-за такой краткости его проще проверить глазами, чем многостраничный файл OpenVPN.

Если вы хотите получить готовое подключение без ручной настройки, проще воспользоваться ключом из бота. Ни файлов, ни пар ключей создавать не придётся, а клиент примет строку целиком.

Чем WireGuard отличается от других протоколов

Он намеренно небольшой. Набор шифров один и зафиксирован в самом протоколе, а выбирать из десятка вариантов, как в старых протоколах, не придётся. Это снижает риск ошибки при настройке, потому что нельзя по недосмотру включить слабое шифрование.

Платой за простоту становится нехватка гибкости. Если вам нужна проверка по сертификатам, динамическая выдача адресов или сложная схема для организации, подойдёт что-то другое. Для связи пары домашних устройств с одним сервером хватает того, что есть.

Как выглядит настройка собственного сервера

  1. 1

    Установите пакет WireGuard на сервер или роутер, где он поддерживается.

  2. 2

    Создайте пару ключей на сервере и на каждом клиенте.

  3. 3

    Впишите в конфигурацию сервера открытый ключ клиента и его AllowedIPs.

  4. 4

    Впишите в конфигурацию клиента открытый ключ сервера, адрес и порт.

  5. 5

    Включите интерфейс и проверьте, что пакеты идут в обе стороны.

Что учесть при выборе

  • Нужен клиент с поддержкой WireGuard: в нашем наборе (Happ, Hiddify, V2Box, v2rayNG) его поддержка зависит от версии, проверяйте в описании.
  • Пара ключей создаётся на каждом устройстве.
  • Работает по UDP, поэтому в клиенте и на роутере порт нужно разрешить.
  • Для сервера нужен свой хост или роутер с поддержкой.
  • У Фокси такого протокола нет: ключ VLESS.

Источники

Вопросы

Быстрее ли WireGuard других протоколов?

Универсальных цифр у нас нет. Скорость зависит от сети и оборудования.

Можно ли получить WireGuard-конфиг у Фокси?

Нет, мы выдаём ключи VLESS.

Для чего нужен AllowedIPs?

Это таблица маршрутов для исходящих пакетов и список допустимых источников для входящих.

Зачем два ключа?

Закрытый хранится на устройстве, открытый передаётся собеседнику, и по нему проверяется подлинность.

Нужен ли WireGuard обычному телефону с ключом Фокси?

Нет. Для нашего ключа подойдёт клиент с поддержкой VLESS. WireGuard актуален, если вы поднимаете собственный сервер или настраиваете роутер с его поддержкой.

Назад: Протоколы ВПН: как устроены и чем отличаются

Ключ ждёт вас в Telegram

10 дней бесплатно, до пяти устройств, регистрации на сайте нет.

Получить ключ в TelegramОткроется Telegram