Всем привет!
Опубликовал веб-панель для управления Amnezia VPN до версии 2.0 получился инструмент, через который можно централизованно разворачивать серверы с разными VPN протоколами (и не только VPN), выдавать доступы сотрудникам, управлять лимитами, смотреть трафик и автоматизировать все это через API.
Проект открытый: infosave2007/amneziavpnphp
Это продолжение предыдущей версии панели. Первая статья о проекте была здесь: PHP-веб-панель для Amnezia VPN: ускоряем корпоративную автоматизацию и на нее был хороший отклик!
Если интересно подробнее посмотреть на один из протоколов разработанный мной с обходом DPI, который уже встроен в панель, вот отдельная статья по теме: AIVPN на Хабре.
Если коротко, идея была очень практической. Пока у тебя один сервер и несколько пользователей, Amnezia прекрасно живет и без дополнительной панели. Но как только серверов становится несколько, появляются сотрудники, сроки действия доступов, лимиты трафика, импорт старых клиентов и требования к автоматизации, ручной режим быстро превращается в боль.
Именно это я и хотел убрать во второй версии.
Что получилось в v2
Главное изменение в версии 2.0 — панель перестала быть узким инструментом под один сценарий и стала универсальной точкой управления VPN-инфраструктурой.
9 протоколов из одной панели
Теперь панель умеет работать не только с AmneziaWG. В одной системе можно управлять сразу несколькими типами сервисов, создавать свои настройки и добавлять свои собственные протоколы, предустановленые:
AmneziaWG Advanced
AmneziaWG 2.0
WireGuard
OpenVPN
Shadowsocks
XRay VLESS
MTProxy
SMB Server
AIVPN

Практический смысл здесь простой: не нужно держать зоопарк отдельных скриптов и админок под разные задачи. Можно ставить нужный протокол на сервер прямо из панели и при необходимости комбинировать несколько вариантов на одном хосте.
Роли и разграничение доступа
Во второй версии появилась нормальная ролевая модель:
администраторы управляют всей системой;
менеджеры работают с клиентами;
операторы имеют только базовые права.
Это важный шаг от «самописного инструмента для себя» к панели, которую уже можно использовать в команде без вечного страха, что кто-то случайно сломает серверную часть.
Нормальный мониторинг, а не «посмотрим потом в логах»
Панель собирает метрики каждые 3 минуты, показывает трафик по клиентам и хранит отдельные данные по разным протоколам. В результате видно не просто список пользователей, а реальную картину: кто потребляет трафик, кто упирается в лимиты и что происходит на конкретном сервере, кто находится онлайн.
Для рабочих систем это уже не украшение интерфейса, а необходимость.
Docker-управление удаленными серверами
Одна из самых полезных частей v2 — панель сама управляет контейнерами на удаленных хостах. Каждый протокол можно развернуть в отдельном контейнере, аккуратно работать с конфигами и переустанавливать сервисы без ручных плясок через SSH.
По сути, это превращает панель в центр управления разнородной VPN-инфраструктурой.
AI-ассистент через OpenRouter
Если указать ключ OpenRouter, панель получает AI-функции:
автоперевод интерфейса;
подсказки при добавлении своих протоколов.
Я не делал из этого магию ради галочки. Смысл в том, чтобы снизить порог для типовых задач администрирования и ускорить разбор проблем там, где раньше приходилось долго копаться вручную.
Что осталось особенно полезным из первой версии
Помимо новых возможностей, панель сохранила и усилила уже полезные сценарии:
разворачивание серверов по SSH;
выдачу, отзыв и восстановление доступов в пару кликов;
сроки действия ключей и продление на N дней;
лимиты трафика с автоматическим отключением;
QR-коды для быстрого подключения;
резервные копии и восстановление;
REST API с JWT-аутентификацией.
Где это особенно полезно
Самый очевидный сценарий — распределенная команда, которой нужен доступ к внутренним ресурсам.
Типовая схема выглядит так:
Администратор поднимает панель через Docker Compose.
Добавляет несколько серверов.
Включает нужные протоколы под разные задачи.
Импортирует существующих пользователей.
Назначает сроки доступа и лимиты трафика.
Раздает конфиги и QR-коды сотрудникам.
Через API автоматизирует выдачу доступов при онбординге.
В таком режиме панель уже начинает работать не как «веб-интерфейс к VPN», а как элемент внутренней инфраструктуры компании.
Почему я считаю это удачной версией
Для меня v2 — это хороший пример того, как утилита перестает быть просто набором скриптов и превращается в полноценный продукт.
Здесь сошлись сразу несколько вещей:
мультипротокольность;
автоматизация через API;
роли и разграничение доступа;
импорт старых данных;
мониторинг;
резервное копирование;
интеграция с Docker и удаленными серверами.
И все это собрано в стеке, который легко поднять и доработать: PHP, MySQL, Twig, Docker.
Быстрый старт
Запуск по-прежнему очень простой:
git clone https://github.com/infosave2007/amneziavpnphp.git cd amneziavpnphp cp .env.example .env docker compose up -d docker compose exec web composer install
Дальше остается дождаться базы, применить миграции и зайти в панель.
Что дальше
Следующие логичные шаги для проекта я вижу такими:
Доработка ошибок, добавление новых протоколов, добавление нового функционала.
Она будет особенно полезна там, где VPN нужно не просто поднять, а встроить в реальную рабочую инфраструктуру: с ролями, лимитами, импортом, метриками, резервными копиями и API.
Если интересно посмотреть код, инструкции или просто забрать себе и доработать под свои задачи, вот репозиторий:
Очередь исправлений:
QR код для AWG2 не срабатывает, только конфигурация;
проверить добавление сервера по ключу;
Если увидели баг, нужна интеграция или есть идеи по улучшению, пишите в Telegram-канал проекта. Я специально создал там разделы, чтобы было удобно и ни одно сообщение не потерялось.
Если хотите поддержать проект и просто отблагодарить за работу, это можно сделать через Tribute. Поддержке буду рад 🙏.
