О Wireguard
WireGuard - это лёгкий VPN, встроенный в ядро Linux. Он работает на публичных ключах, а его конфигурация умещается в несколько строк. Кодовая база небольшая, поэтому её проще аудировать, чем код традиционных VPN, а туннель поднимается практически мгновенно. WireGuard используют и разработчики, и небольшие команды, которым нужна собственная точка выхода в интернет.
После выдачи VPS на сервере установлен пакет wireguard, а интерфейс wg0 настроен и запускается через wg-quick@wg0. Сервер слушает UDP-порт 51820 и работает в частной сети 10.8.0.0/24 (адрес сервера: 10.8.0.1). Маршрутизация IPv4 и NAT (masquerade) включены, поэтому трафик ваших клиентов выходит в интернет через публичный IP сервера.
Первый клиент уже создан: помимо обычной пары ключей для него сгенерирован предварительно общий ключ (pre-shared key). Его конфигурация лежит в /root/wg-client.conf, а QR-код для мобильного приложения находится в /root/wg-client-qr.txt. Вам остаётся только импортировать её.
Что можно делать с Wireguard
Готовый полный туннель
Сгенерированный клиент использует AllowedIPs = 0.0.0.0/0, поэтому весь IPv4-трафик идёт через VPS. DNS клиента настроен на 1.1.1.1.
Конфиг клиента и QR-код
Файл /root/wg-client.conf импортируется в клиенты WireGuard без изменений. QR-код из /root/wg-client-qr.txt выводится в терминал и подходит для мобильного приложения.
Pre-shared ключ для каждого пира
Ключ, созданный командой wg genpsk, дополняет обмен публичными ключами и усиливает защиту соединения. Файлы с секретами создаются с правами 600.
Автозапуск при загрузке
Сервис wg-quick@wg0 включён в systemd. После перезагрузки сервера туннель поднимается сам.
NAT и forwarding уже настроены
Пересылка IPv4 включена в /etc/sysctl.d/99-wireguard.conf. Правила iptables для FORWARD и masquerade применяются при запуске wg0 и снимаются при остановке.
Начало работы с Wireguard
От заказа до запуска за несколько минут.
- 1
Закажите VPS с WireGuard
Выберите Linux VPS в Париже или Франкфурте (Debian 12, Debian 13, Ubuntu 20.04, 22.04 или 24.04). На вкладке «Applications» формы заказа отметьте WireGuard.
- 2
Подключитесь и заберите клиент
Когда сервер будет выдан, откройте SSH-сессию с полученными данными доступа. Убедитесь, что туннель работает, затем выведите QR-код или скопируйте файл конфигурации на свой компьютер.
Bashssh root@SERVER_IP systemctl status wg-quick@wg0 cat /root/wg-client-qr.txt # depuis votre poste : scp root@SERVER_IP:/root/wg-client.conf . - 3
Импортируйте конфигурацию и проверьте
Отсканируйте QR-код в мобильном приложении WireGuard или импортируйте wg-client.conf в настольное приложение. В Linux хватит одной команды, после неё проверьте, что рукопожатие (handshake) состоялось.
Bashsudo wg-quick up ./wg-client.conf sudo wg show - 4
Подготовьте сервер к рабочей нагрузке
Убедитесь, что UDP-порт 51820 открыт, а остальные внешние порты ограничены. Если вы предпочитаете имя вместо IP, создайте DNS-запись и замените строку Endpoint в клиентском файле на YOUR_DOMAIN:51820. Храните резервную копию /etc/wireguard вне сервера.
Bashtar czf wg-backup.tgz /etc/wireguard /root/wg-client.conf
Сценарии использования Wireguard
Защита публичного Wi-Fi
В отеле, поезде или кафе ваш IPv4-трафик идёт по зашифрованному туннелю до VPS и только потом попадает в интернет.
Постоянный исходящий IP
Ваш исходящий адрес становится адресом VPS. Это позволяет разрешить на файрволе, в базе данных или в административном API всего один IP.
Связь между вашими устройствами
Компьютер, телефон и удалённые машины входят в сеть 10.8.0.0/24 и обращаются друг к другу по частным адресам, а сервер выступает центральной точкой.
Выбор Парижа или Франкфурта
Регион выхода определяется площадкой VPS, которую вы выбираете при заказе. Например, так можно проверить сервис из Франции или Германии.
Частые вопросы о Wireguard
Подключитесь по SSH и прочитайте /root/wg-client.conf или выведите QR-код командой cat /root/wg-client-qr.txt. Файл также можно скопировать на свой компьютер: scp root@SERVER_IP:/root/wg-client.conf .
Подробнее о Wireguard
Установленные файлы и сервисы
/etc/wireguard/wg0.conf: конфигурация сервера (закрытый ключ, пир client1, правила PostUp и PostDown)./root/wg-client.conf: конфигурация первого клиента./root/wg-client-qr.txt: QR-код этой конфигурации, его можно вывести командойcat./etc/sysctl.d/99-wireguard.conf: включаетnet.ipv4.ip_forward./opt/install-wireguard.sh: скрипт установки, выполненный при выдаче сервера.
Клиент получает адрес 10.8.0.2/32. В поле Endpoint указан публичный адрес, определённый во время установки.
Как добавить ещё одно устройство
У каждого устройства должна быть своя пара ключей и свой адрес (10.8.0.3, 10.8.0.4 и так далее). Сгенерируйте ключи на сервере, затем добавьте блок [Peer] в wg0.conf.
Bashcd /etc/wireguard umask 077 wg genkey | tee client2.key | wg pubkey > client2.pub wg genpsk > client2.psk
Затем впишите в /etc/wireguard/wg0.conf содержимое client2.pub и client2.psk и задайте AllowedIPs = 10.8.0.3/32. После этого перезагрузите конфигурацию, не разрывая существующие туннели:
Bashwg syncconf wg0 <(wg-quick strip wg0)
Клиентский файл составьте по образцу /root/wg-client.conf: замените PrivateKey и Address, а PublicKey сервера и Endpoint оставьте прежними.
На что стоит обратить внимание
Сгенерированный клиент маршрутизирует только IPv4 (0.0.0.0/0). Если на вашем компьютере есть IPv6, этот трафик пойдёт мимо туннеля. Если это для вас важно, отключите IPv6 на стороне клиента.
В качестве DNS клиент использует 1.1.1.1. Чтобы выбрать другой резолвер, измените строку DNS в клиентском файле. Относитесь к /root/wg-client.conf как к паролю: в нём лежит закрытый ключ клиента. После импорта удалите лишние копии.
Другие руководства по администрированию Linux-сервера вы найдёте в наших руководствах и на странице Linux VPS.