
WireGuard VPN: полное руководство по настройке сервера на Linux
Если вы до сих пор гоняете трафик через OpenVPN — вы просто теряете деньги и нервы. WireGuard работает в 3-4 раза быстрее, поднимается за 15 минут, и мы уже перевели на него больше 30 компаний. Без боли, без простоев.
Что такое WireGuard и чем он лучше OpenVPN?
- 4 000 строк кода vs 600 000 у OpenVPN — меньше кода, меньше дыр
- До 1 Гбит/с на обычном бюджетном сервере
- 0.5-1 мс overhead vs 5-10 мс у OpenVPN — разница ощутима при видеозвонках
- Curve25519, ChaCha20, Poly1305 — криптография, которую не стыдно показать безопаснику
- Бесшовное переключение между Wi-Fi и 4G — соединение не рвётся
Какие системные требования для WireGuard?
- Linux с ядром 5.6+ (Debian 12, Ubuntu 22.04+) — WireGuard уже в ядре, ничего не компилируем
- CPU: 1 ядро тянет до 50 клиентов, RAM: хватает 256 МБ
- Статический IP на сервере, открытый UDP-порт 51820 — без этого никуда
Как установить WireGuard на Debian 12?
apt update && apt install -y wireguard
# Генерация ключей сервера
wg genkey | tee /etc/wireguard/server_private.key | wg pubkey > /etc/wireguard/server_public.key
chmod 600 /etc/wireguard/server_private.key
Как настроить конфигурацию сервера?
# /etc/wireguard/wg0.conf
[Interface]
Address = 10.10.0.1/24
ListenPort = 51820
PrivateKey = SERVER_PRIVATE_KEY_HERE
PostUp = iptables -A FORWARD -i wg0 -j ACCEPT; iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
PostDown = iptables -D FORWARD -i wg0 -j ACCEPT; iptables -t nat -D POSTROUTING -o eth0 -j MASQUERADE
[Peer]
PublicKey = CLIENT1_PUBLIC_KEY
AllowedIPs = 10.10.0.2/32
# Включаем IP forwarding
echo "net.ipv4.ip_forward = 1" >> /etc/sysctl.conf
sysctl -p
# Запуск
systemctl enable --now wg-quick@wg0
wg show
Как добавить клиента WireGuard?
wg genkey | tee client1_private.key | wg pubkey > client1_public.key
# client1.conf
[Interface]
PrivateKey = CLIENT1_PRIVATE_KEY
Address = 10.10.0.2/32
DNS = 8.8.8.8
[Peer]
PublicKey = SERVER_PUBLIC_KEY
Endpoint = YOUR_SERVER_IP:51820
AllowedIPs = 0.0.0.0/0
PersistentKeepalive = 25
Как создать QR-код для телефона?
apt install -y qrencode
qrencode -t ansiutf8 < client1.conf
Доверьте настройку WireGuard VPN профессионалам
Наши инженеры настроят всё быстро и надёжно. Более 15 лет опыта, работа с юрлицами, договор, SLA. Не тратьте время на эксперименты — звоните.
Как автоматизировать управление клиентами?
#!/bin/bash
# add-client.sh
CLIENT_NAME=$1; NEXT_IP=$2
wg genkey | tee /etc/wireguard/clients/${CLIENT_NAME}_private.key | wg pubkey > /etc/wireguard/clients/${CLIENT_NAME}_public.key
CLIENT_PRIV=$(cat /etc/wireguard/clients/${CLIENT_NAME}_private.key)
CLIENT_PUB=$(cat /etc/wireguard/clients/${CLIENT_NAME}_public.key)
SERVER_PUB=$(cat /etc/wireguard/server_public.key)
wg set wg0 peer $CLIENT_PUB allowed-ips $NEXT_IP/32
wg-quick save wg0
cat > /etc/wireguard/clients/${CLIENT_NAME}.conf << EOF
[Interface]
PrivateKey = $CLIENT_PRIV
Address = $NEXT_IP/32
DNS = 8.8.8.8
[Peer]
PublicKey = $SERVER_PUB
Endpoint = $(curl -s ifconfig.me):51820
AllowedIPs = 0.0.0.0/0
PersistentKeepalive = 25
EOF
qrencode -t ansiutf8 < /etc/wireguard/clients/${CLIENT_NAME}.conf
Как настроить Site-to-Site VPN между офисами?
Один из наших клиентов пришёл с тремя офисами в разных городах и запросом «сделайте так, чтобы всё было в одной сети». Mesh-VPN на WireGuard мы подняли за один рабочий день.
# Офис 1 (Москва)
[Peer]
PublicKey = SPB_PUBLIC_KEY
Endpoint = spb-office.company.ru:51820
AllowedIPs = 10.10.0.2/32, 192.168.2.0/24
PersistentKeepalive = 25
Как мониторить WireGuard?
wg show
# Latest handshake, Transfer, Allowed IPs
# Мониторинг для Zabbix:
wg show wg0 latest-handshakes | while read pub ts; do
age=$(($(date +%s) - ts))
[ $age -gt 300 ] && echo "WARN: peer $pub offline for ${age}s"
done
Какие проблемы безопасности и как их решить?
- Нет динамических IP: уволился сотрудник — сразу удаляем его peer, доступ обрезан мгновенно
- Нет логин/пароль: если нужна авторизация по учётке — смотрите в сторону wg-access-server
- Нет логирования: вешайте iptables logging на wg0, иначе при инциденте разбираться будет не с чем
- Ротация ключей: раз в 6-12 месяцев — не забывайте, это не разовая история
Как обеспечить высокую доступность WireGuard?
VPN, который падает в пятницу вечером — это катастрофа. Мы всегда строим отказоустойчивую схему: два сервера с идентичными конфигами, клиент работает с основным, а при недоступности уходит на резервный. Keepalived или DNS failover делают переключение за секунды — пользователи чаще всего даже не замечают. Для компаний покрупнее, где 50+ пользователей и несколько площадок, мы разворачиваем Netmaker или Headscale — это уже полноценный WireGuard mesh с централизованным управлением, не руками в конфигах.
Когда обратиться к профессионалам?
- Нужно объединить несколько офисов в одну сеть
- Планируете интеграцию с Keenetic или MikroTik
- Нужно управлять 50+ клиентами без ручной возни с конфигами
- OpenVPN тормозит — а терпеть это уже нет смысла
- Нужен VPN, который не падает в самый неподходящий момент
Часто задаваемые вопросы
WireGuard быстрее OpenVPN?
Да, в 3-5 раз. WireGuard работает в ядре Linux. Типичная скорость — 500-900 Мбит/с vs 100-300 Мбит/с у OpenVPN.
Безопасен ли WireGuard?
Да. Curve25519, ChaCha20, Poly1305, BLAKE2s — современные криптоалгоритмы. 4000 строк кода — легко аудировать.
Работает ли WireGuard с Keenetic?
Да, Keenetic поддерживает WireGuard начиная с KeeneticOS 3.3.
Можно ли использовать WireGuard для обхода блокировок?
WireGuard легко детектируется DPI. Для обхода блокировок лучше VLESS или Shadowsocks.
Сколько клиентов выдержит один сервер?
На VPS с 1 ядром — до 50 клиентов. На выделенном сервере — сотни.
ООО «АйТи Фреш» возьмёт это на себя
Не хватает времени или своих специалистов — мы настроим, оптимизируем и возьмём вашу IT-инфраструктуру на постоянное сопровождение. Работаем с юридическими лицами в Москве и регионах. Собственный дата-центр, команда из 8 серверов Dell Xeon Platinum 8280 на базе МТС.