WireGuardv15.5.0
VPN для роутеров и личных устройств: создание конфигов и QR-кодов, просмотр подключений и отзыв доступа вместо ручного управления ключами.
Подключайте роутеры, ноутбуки и телефоны к своему VPN и управляйте доступом из браузера. Для каждого устройства панель wg-easy создает отдельный конфиг: его можно скачать файлом или импортировать по QR-коду, а доступ потерянного устройства отключить в списке клиентов. Используется обычный WireGuard: подойдут стандартные приложения и роутеры с его поддержкой.
После создания сервера установка поднимает VPN и веб-панель, создает администратора и выпускает HTTPS-сертификат для адреса сервера. Дождитесь письма о готовности: первая загрузка образов и выпуск сертификата занимают несколько минут. Адрес уже готов к работе, собственный домен подключать необязательно.
Что внутри
- wg-easy 15.5.0 на Node.js 24.22.1
- веб-панель для создания клиентов, выдачи конфигов и QR-кодов, просмотра подключений и отключения доступа; номер версии карточки относится к этой панели.
- WireGuard из ядра Ubuntu 24.04 LTS
- шифрование и передача IPv4-трафика между сервером и устройствами со стандартными клиентами.
- Caddy 2.10.0-alpine
- HTTPS для панели, выпуск и автоматическое продление сертификата Let's Encrypt.
Два контейнера: wg-easy и Caddy. Настройки, учетные записи и ключи клиентов хранятся в базе SQLite в томе Docker; отдельный сервер базы данных не требуется.
Безопасность
- Учетная запись с первого запускаадминистратор
adminсоздан установкой; управление клиентами и скачивание конфигов требуют входа, первоначальная настройка закрыта после инициализации. - HTTPS для панеливход и скачивание ключей защищены сертификатом Let's Encrypt; порт панели
51821наружу не опубликован, к ней обращается Caddy по отдельной сети Docker. - Закрепленные версии образовустановка использует wg-easy 15.5.0 и Caddy 2.10.0-alpine, поэтому смена тега
latestне меняет установленный состав. - Защита файлов с доступамиустановщик и файл реквизитов доступны только root; после создания администратора первоначальный пароль удаляется из переменных окружения контейнера.
- fail2ban для SSHблокирует IP на час после пяти неудачных попыток входа на сервер; вход в веб-панель этой мерой не защищен.
Как войти
Адрес панели формируется из IP сервера: замените точки на дефисы и добавьте
.fatmetal.net. Например, IP45.15.159.124дает адресhttps://45-15-159-124.fatmetal.net.Учетная запись уже создана: логин
admin, пароль - пароль этого сервера из личного кабинета Fatmetal, тот же, что для SSH. Если вы уже меняли пароль панели, используйте установленный вами пароль.Нажмите Новый, укажите имя устройства и нажмите Создать клиента. В строке клиента скачайте конфиг или откройте QR-код.
В стандартном приложении WireGuard импортируйте файл или отсканируйте QR-код, затем включите туннель. На роутере с поддержкой WireGuard импортируйте файл в его настройках VPN; способ импорта зависит от прошивки.
Создавайте отдельного клиента для каждого устройства. Чтобы отозвать доступ, выключите его переключателем в списке клиентов.
Важно
Этот вариант передает IPv4. IPv6-трафик через VPN не передается: если устройству нужен также доступ к IPv6-ресурсам через туннель, выбирайте решение с поддержкой IPv6.
Если меняете сетевые правила, оставьте открытыми UDP-порт 51820 для VPN и TCP-порты 80/443 для панели и выпуска сертификатов. Здесь создаются стандартные конфиги WireGuard; дополнительные параметры AmneziaWG в них не добавляются.
Конфиг и QR-код содержат приватный ключ устройства. Передавайте их только владельцу устройства; при утрате отзовите доступ в панели и создайте нового клиента. В настройках учетной записи задайте отдельный пароль панели и включите TOTP, если нужен второй фактор. Встроенного ограничения перебора пароля панели нет.
Перед обновлением или переносом сохраните данные и ключи. По SSH выполните последовательно sudo docker compose -f /opt/wireguard/compose.yml stop wg-easy, sudo tar -czf /root/wireguard-backup.tar.gz -C /var/lib/docker/volumes/wireguard_etc_wireguard/_data . и sudo docker compose -f /opt/wireguard/compose.yml start wg-easy. На время копирования VPN остановится. Перенесите архив в защищенное хранилище: он содержит приватные ключи всех клиентов.
Лицензия
Панель wg-easy распространяется по лицензии AGPL-3.0-only. При изменении панели и предоставлении сетевого доступа к ней соблюдайте требования лицензии о доступности исходного кода измененной версии.
Свой домен
Адрес из IP сервера с HTTPS уже работает; собственный домен необязателен.
- Направьте
A-запись своего домена на публичный IPv4 сервера. - Проверьте DNS:
ping <домен>должен показывать IP сервера. Если адрес другой, дождитесь обновления DNS; ответ на сам ping не обязателен. - По SSH выполните
sudo nano /etc/wireguard-mp/params.envи укажитеDOMAIN=ваш-домен.ru, безhttps://и пути. - Выполните
sudo bash /opt/wireguard-mp/install.shи дождитесь завершения: Caddy применит адрес и выпустит сертификат Let's Encrypt. Повторный запуск сохраняет клиентов, ключи и пароль панели. - Откройте
https://ваш-домен.ru: логинadmin, прежний пароль панели; первоначально это пароль сервера из личного кабинета Fatmetal. - В панели откройте Administrator -> Админ-панель -> Конфигурация -> Хост, укажите новый домен и нажмите Сохранить. Новые конфиги получат новый адрес сервера; на ранее подключенных устройствах обновите
Endpointили импортируйте конфиг заново.
Требования
Тариф CPU2-RAM4-DISK50 - для личных устройств и небольшой команды. Проверка этого рецепта подтвердила работу одного стандартного клиента: вход, выдачу конфига, подключение и передачу IPv4-трафика. Одновременная работа множества туннелей и скорость через внешнюю сеть не измерялись.
В связанном разборе панель wg-easy 15.4.0 и Caddy занимали в простое 53,8 МиБ RAM суммарно. Это исторический замер другой версии и режима VPN; для версии 15.5.0 отдельные замеры не снимались. При постоянной передаче трафика несколькими устройствами и загрузке обоих ядер выбирайте CPU4-RAM8-DISK100. Скорость зависит также от канала сервера и сети клиента.