WireGuard — VPN-протокол нового поколения, разработанный Джейсоном Доненфельдом (Jason Donenfeld). Включён в ядро Linux 5.6 (март 2020). По сравнению с OpenVPN (400 000+ строк кода) и IPSec — значительно проще в реализации и аудите безопасности.
Как работает
WireGuard использует UDP-порт 51820 по умолчанию. Каждый узел имеет пару ключей (публичный + приватный). Конфигурация peer: публичный ключ партнёра, его endpoint (IP:порт), разрешённые подсети (AllowedIPs). Handshake происходит автоматически при наличии трафика.
Криптография: Curve25519 для обмена ключами (ECDH), ChaCha20 для шифрования, Poly1305 для аутентификации сообщений, BLAKE2s для хеширования. Протокол использует «perfect forward secrecy» через ротацию сессионных ключей каждые 3 минуты.
Производительность: WireGuard в 3-4 раза быстрее OpenVPN в тестах Ars Technica (2020). На ARM-процессорах преимущество особенно заметно — ChaCha20 оптимизирован для устройств без аппаратного AES.
История
Джейсон Доненфельд анонсировал WireGuard в 2016 году в рамках BlackHat и представил в Linux Kernel Mailing List. Линус Торвальдс написал «Can I just say this is a work of art?» о коде. В марте 2020 года WireGuard вошёл в ядро Linux 5.6. В 2021 году Windows-клиент достиг стабильности.
Сравнение протоколов
- WireGuard: ~4000 строк кода, UDP, ядро Linux, высокая скорость.
- OpenVPN: TCP/UDP, ~400 000 строк, совместим с legacy-системами.
- IPSec/L2TP: сложная конфигурация, встроен в ОС, firewall-совместимость.
- OpenConnect/AnyConnect: корпоративные VPN, TLS-туннель.
Связь с хостингом
WireGuard используют для создания приватных сетей между VPS-серверами: объединить несколько серверов в приватную подсеть без публичных IP-адресов для межсервисного взаимодействия. Настройка занимает 15-20 минут на каждый узел. Tor — анонимизация, WireGuard — производительность и безопасность.
Ключевые отличия от похожих терминов
VPN (Virtual Private Network) — общая концепция. WireGuard — конкретный протокол. OpenVPN совместим с большинством фаерволов (работает через TCP 443). WireGuard только UDP — может блокироваться DPI. Tailscale и Netbird строятся поверх WireGuard как управляемые mesh-VPN.
Технические характеристики WireGuard
WireGuard работает как виртуальный сетевой интерфейс (wg0). Протокол: UDP. Криптография: Curve25519 (обмен ключами), ChaCha20-Poly1305 (шифрование), BLAKE2s (хэш). Кодовая база — 4000 строк (OpenVPN: 70 000+). Включён в ядро Linux 5.6 (2020).
Настройка WireGuard
Серверный конфиг: [Interface] PrivateKey, Address, ListenPort; [Peer] PublicKey, AllowedIPs. Клиентский: [Interface] PrivateKey, Address; [Peer] PublicKey, Endpoint, AllowedIPs, PersistentKeepalive=25. Автозапуск: systemctl enable wg-quick@wg0.
Применение в хостинге
Site-to-site VPN между VPS: приватная сеть без дополнительных расходов на трафик. Road warrior: безопасный доступ к серверам команды. Замена IPsec и OpenVPN: WireGuard в 3–4 раза быстрее и проще в настройке. Tailscale — managed WireGuard с автоматическим пирингом.
WireGuard Mesh с wg-easy или Headscale
wg-easy: Docker-контейнер с веб-интерфейсом для управления WireGuard. Headscale: self-hosted контрол-сервер для Tailscale-клиентов. Tailscale (managed): zero-config mesh VPN — клиенты сами находят друг друга без relay. Для команды из 5–50 человек с несколькими серверами — Headscale/Tailscale удобнее ручного WireGuard.
WireGuard работает поверх VPS с открытым UDP-портом. Шифрует трафик между приватными сетями. iptables настраивает маршрутизацию через WireGuard-интерфейс. UFW управляет разрешёнными портами. Мониторинг туннеля через ping и Netdata.