Всем привет!

Опубликовал веб-панель для управления 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

Интерфейс панели  v2
Интерфейс панели v2

Практический смысл здесь простой: не нужно держать зоопарк отдельных скриптов и админок под разные задачи. Можно ставить нужный протокол на сервер прямо из панели и при необходимости комбинировать несколько вариантов на одном хосте.

Роли и разграничение доступа

Во второй версии появилась нормальная ролевая модель:

  • администраторы управляют всей системой;

  • менеджеры работают с клиентами;

  • операторы имеют только базовые права.

Это важный шаг от «самописного инструмента для себя» к панели, которую уже можно использовать в команде без вечного страха, что кто-то случайно сломает серверную часть.

Нормальный мониторинг, а не «посмотрим потом в логах»

Панель собирает метрики каждые 3 минуты, показывает трафик по клиентам и хранит отдельные данные по разным протоколам. В результате видно не просто список пользователей, а реальную картину: кто потребляет трафик, кто упирается в лимиты и что происходит на конкретном сервере, кто находится онлайн.

Для рабочих систем это уже не украшение интерфейса, а необходимость.

Docker-управление удаленными серверами

Одна из самых полезных частей v2 — панель сама управляет контейнерами на удаленных хостах. Каждый протокол можно развернуть в отдельном контейнере, аккуратно работать с конфигами и переустанавливать сервисы без ручных плясок через SSH.

По сути, это превращает панель в центр управления разнородной VPN-инфраструктурой.

AI-ассистент через OpenRouter

Если указать ключ OpenRouter, панель получает AI-функции:

  • автоперевод интерфейса;

  • подсказки при добавлении своих протоколов.

Я не делал из этого магию ради галочки. Смысл в том, чтобы снизить порог для типовых задач администрирования и ускорить разбор проблем там, где раньше приходилось долго копаться вручную.

Что осталось особенно полезным из первой версии

Помимо новых возможностей, панель сохранила и усилила уже полезные сценарии:

  • разворачивание серверов по SSH;

  • выдачу, отзыв и восстановление доступов в пару кликов;

  • сроки действия ключей и продление на N дней;

  • лимиты трафика с автоматическим отключением;

  • QR-коды для быстрого подключения;

  • резервные копии и восстановление;

  • REST API с JWT-аутентификацией.

Где это особенно полезно

Самый очевидный сценарий — распределенная команда, которой нужен доступ к внутренним ресурсам.

Типовая схема выглядит так:

  1. Администратор поднимает панель через Docker Compose.

  2. Добавляет несколько серверов.

  3. Включает нужные протоколы под разные задачи.

  4. Импортирует существующих пользователей.

  5. Назначает сроки доступа и лимиты трафика.

  6. Раздает конфиги и QR-коды сотрудникам.

  7. Через 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.

Если интересно посмотреть код, инструкции или просто забрать себе и доработать под свои задачи, вот репозиторий:

infosave2007/amneziavpnphp

Очередь исправлений:

  • QR код для AWG2 не срабатывает, только конфигурация;

  • проверить добавление сервера по ключу;

Если увидели баг, нужна интеграция или есть идеи по улучшению, пишите в Telegram-канал проекта. Я специально создал там разделы, чтобы было удобно и ни одно сообщение не потерялось.

Если хотите поддержать проект и просто отблагодарить за работу, это можно сделать через Tribute. Поддержке буду рад 🙏.