Что такое WireGuard?

WireGuard — это современный высокопроизводительный VPN-протокол, разработанный с упором на простоту и скорость. В отличие от более старых протоколов, таких как OpenVPN или IPsec, WireGuard использует криптографию последнего поколения (Curve25519 для обмена ключами, ChaCha20 для шифрования и Poly1305 для аутентификации) и работает с минимальным объёмом кода — примерно 4000 строк в сравнении с сотнями тысяч в устаревших решениях. Такой компактный дизайн облегчает аудит, ускоряет установление соединений и повышает надёжность при изменении сети, например при переключении между Wi-Fi и мобильными данными.

WireGuard работает, создавая зашифрованные точка-точка туннели между сервером и одним или несколькими клиентами. Каждая сторона хранит приватный ключ и знает публичный ключ своих пиров. После настройки трафик проходит через туннель без перебоев, при этом протокол автоматически обрабатывает рукопожатия, ротацию ключей и пакеты keepalive.

Описание инструмента

Этот инструмент генерирует готовые к использованию файлы конфигурации WireGuard для сервера и клиентов. Он автоматически создаёт криптографически корректные пары ключей X25519, формирует правильно отформатированные файлы .conf и позволяет управлять несколькими клиентами из единого интерфейса. Вы можете загрузить каждый файл конфигурации напрямую или отсканировать QR-код для быстрой настройки мобильного устройства.

Примеры

Вывод конфигурации сервера:

[Interface]
PrivateKey = aGVsbG93b3JsZC4uLi4uLi4uLi4uLi4uLi4uLi4=
Address = 10.0.0.1/24
ListenPort = 51820
PostUp = iptables -A FORWARD -i wg0 -j ACCEPT
PostDown = iptables -D FORWARD -i wg0 -j ACCEPT
SaveConfig = true

[Peer]
PublicKey = Y2xpZW50cHVibGlja2V5Li4uLi4uLi4uLi4uLi4=
AllowedIPs = 10.0.0.2/32

Вывод конфигурации клиента:

[Interface]
PrivateKey = Y2xpZW50cHJpdmF0ZWtleS4uLi4uLi4uLi4uLi4=
Address = 10.0.0.2/32
DNS = 1.1.1.1, 1.0.0.1

[Peer]
PublicKey = c2VydmVycHVibGlja2V5Li4uLi4uLi4uLi4uLi4=
Endpoint = vpn.example.com:51820
AllowedIPs = 0.0.0.0/0, ::/0
PersistentKeepalive = 25

Возможности

  • Генерирует криптографически корректные пары ключей X25519 прямо в браузере с использованием Curve25519
  • Создаёт загружаемые файлы .conf для сервера и всех клиентов
  • Отображает QR-коды для конфигураций клиентов, позволяя мгновенно настроить мобильные устройства
  • Поддерживает несколько клиентов с автоматическим назначением IP-адресов
  • Настраиваемые MTU, PostUp/PostDown hooks, DNS и PersistentKeepalive для каждого клиента

Объяснение параметров

  • Имя сервера — метка, используемая в комментарии файла конфигурации и имени загружаемого файла
  • Порт сервера — UDP-порт, на котором WireGuard прослушивает соединения (по умолчанию: 51820)
  • IP-адрес сервера — адрес VPN-подсети для интерфейса сервера (например, 10.0.0.1/24)
  • Endpoint сервера — публичное имя хоста или IP-адрес и порт, к которым подключаются клиенты
  • MTU — размер максимального блока передачи; оставьте пустым для использования системного значения по умолчанию (обычно 1420)
  • PostUp / PostDown — команды shell, выполняемые при включении или отключении интерфейса (обычно используются для правил NAT iptables)
  • Allowed IPs — диапазоны IP-адресов, которые клиент маршрутизирует через туннель; 0.0.0.0/0, ::/0 маршрутизирует весь трафик
  • DNS — DNS-серверы, которые использует клиент при подключении
  • PersistentKeepalive — интервал в секундах для пакетов keepalive, полезен для клиентов за NAT (по умолчанию: 25)

Варианты использования

  • Настройка самостоятельно размещённого VPN-сервера на облачном экземпляре для шифрования всего трафика с ноутбуков и телефонов
  • Подключение удалённых офисных сетей через защищённый туннель WireGuard типа site-to-site
  • Генерация конфигураций клиентов с QR-кодами для быстрого подключения членов команды или мобильных устройств