Всем привет!
Опубликовал веб-панель для управления 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. Поддержке буду рад ?.
Комментарии (16)

Skatilsya
06.04.2026 15:28В только замахаешься qr. коды/конфиги всем отправлять при малейшем изменении настроек. Из-за этого и не охота пользоваться awg

Sleuthhound
06.04.2026 15:28Неплохо, пару советов, если позволите
1) Скриншоты панели бы в репу, для наглядности.
2) Пароль админа желательно бы чтобы был уникальным, а не стандартным или как минимум при первом входе обязательно был запрос на его смену.

alim4ik87
06.04.2026 15:28Добрый день. Отличный продукт, однако при установки протокола awg 2.0. используется все равно протокол Amnezia Legacy. На сколько это корректно?

infosave Автор
06.04.2026 15:28Протокол устанавливается AWG2 конфигурация тоже, но QR код еще не поменял сейчас ошибочный Legacy, конфиги рабочие awg2

alim4ik87
06.04.2026 15:28Извините за возможно глупый вопрос, но разве в awg2.0 не должны использоваться I1-I4 параметры? При разворачивании через официальное приложение - параметр I1 заполнен. А в конфиге созданном в web панели - данный параметр пустой. Добавлять вручную?

spbcity
06.04.2026 15:28Скажите, встроен ли в систему какой-то функцинал для её дальнейших обновлений? Или обновления вручную ставить необходимо?
0ka
Может с HTML title и хедеров убрать слово amnezia? Актив пробинг уже с декабря практикуют
NeoCode
А не расскажете подробнее про этот "Актив пробинг"? Минимальная конфигурация vless+reality+xhttp без каких-либо веб-интерфейсов уже предоставляет защиту от него, или нужно делать что-то ещё?
0ka
ну в случае реалити 90% пользователей ставят туда какой-то рандомный сайт который возвращает хедеры cloudflare, akamai, aws и т.п., или просто какой-то популярный сайт которого быть не может на их впске, тем самым дико палят прокси. недавно я смотрел десяток точечно заблоченых реалити серверов, на большинстве из них стоял реалити под гугл. но за что именно их забанили я не знаю, это могли быть крупные впн сервисы у которых просто блокнули айпи и не смотрели что там, а могли понять и блокнуть по зеркалу на google.com
а подтверждённый случай актив пробинга это блокировки серверов с прокси для whatsapp (они возвращают хедеры ватсапа, никакой скрытности абсолютно), было в декабре.
можете сами вставить айпи адрес вашей впски в censys search platform и посмотреть как выглядит ваша впска для пробера
ki11j0y
У меня стоит reality с steel oneself, и xhttp tls, полет нормальный, все за обратным прокси
NeoCode
Да, сколько я еще всего не знаю:(
Пока ничего не понял (я всего неделю назад купил vps), но ведь действительно странно, что на какой-то vps-ке висят сайты гугла или эппла. С другой стороны именно так рекомендовали до сих пор в различных статьях (более того рекомендовали использовать RealiTLScanner, чем я и воспользовался - но возможно этот сканер насканировал что там прописано в reality таких же юзеров как я).
Получается что следующий шаг - нужно поднимать свой полноценный сайт "о котиках" и прописывать в xray его? Или может ждать когда прямо в xray встроят простейший статический веб-сервер?
GritsanY
ситуация меняется. Раньше, когда блокировки велись в основном через URL/DNS/SNI, считалось безопасным прописывать что-то массово-нейтральное. Теперь же, когда DPI намного глубже смотрит на пакеты и потоки данных, это уже не панацея и мимикрировать под сайт-визитку или легитимного соседа по VPS IP перспективнее.
ki11j0y
Я поднял wikijs забил информацию туда из обычной wiki. Добавил js чтоб была всплывашка о куки и готово.