AmneziaWG
Корпоративный VPN на своем сервере: сотрудники и устройства получают защищенный доступ к вашей внутренней инфраструктуре из любой сети. Движок - WireGuard с обфускацией трафика, которая держит соединение там, где обычный VPN работает нестабильно. Управление - через веб-панель wg-easy: клиента заводите в браузере и отдаете ему файл-конфиг или QR-код.
Вердикт
- нужен свой VPN для доступа команды к внутренним сервисам, а не подписка, где платят за каждого человека
- сотрудники подключаются из разных сетей - мобильный интернет, публичный Wi-Fi, строгий корпоративный фаервол, - и обычный туннель там рвется
- хотите скорость и простоту WireGuard, но управлять клиентами через браузер, а не править конфиги руками
- доступ к своим домашним сервисам с телефона: у коммерческих аналогов этот сценарий вынесен в отдельный платный тариф
- сеть обычная и стабильная - тогда обфускация не нужна, берите wg-easy без нее, он проще
- нужен сервис с поддержкой по SLA, а не свой сервер
- нужны политики на каждое приложение и проверка состояния устройства - это другой класс продуктов
- готовы ставить только то, что помечено стабильным: поддержка AmneziaWG в панели пока экспериментальная
Что это и какую задачу решает
Когда команда работает удаленно, встает вопрос: как дать людям доступ к внутренним админкам, базам и стендам, не выставляя их в открытый интернет. Классический ответ - свой VPN: устройство подключается к серверу зашифрованным туннелем и попадает во внутреннюю сеть, как будто сидит в офисе.
AmneziaWG - это WireGuard, у которого убрали узнаваемые признаки трафика. Криптография и скорость остаются теми же, меняется только то, как туннель выглядит для сетевого оборудования. Благодаря этому соединение держится в сетях, где стандартный WireGuard замедляется или обрывается.
wg-easy - веб-панель, через которую этим пользуются. Клиента (ноутбук сотрудника, телефон, роутер филиала) вы заводите в браузере, получаете готовый файл-конфиг или QR-код и отдаете человеку. Выключить доступ - один тумблер, править файлы на сервере не нужно.
С версии 15.2 панель умеет AmneziaWG сама - раньше ради этого приходилось брать сторонние сборки. Мы ставим официальный образ апстрима, лицензия AGPL-3.0.
Что изменилось с прошлого разбора
Если вы ставили AmneziaWG по нашей августовской статье - это не обновление контейнера, а другая основа. Тогда мы разбирали стороннюю сборку, автор которой закрыл репозиторий, а образ не пересобирался с августа 2024 года. Теперь берем официальный wg-easy, где поддержка AmneziaWG встроена.
| Основа | было: сторонняя сборка, архив; стало: официальный wg-easy 15.4.0, релиз августа 2026 |
| Лицензия | было: Creative Commons с запретом коммерческого использования; стало: AGPL-3.0 |
| Вход в панель | было: один пароль на всю панель; стало: имя пользователя и пароль, при желании - второй фактор |
| QR-код | было: его не существовало, хотя мы его обещали; стало: есть, с копированием и сохранением в PNG |
| Память в простое | было: около 16 МиБ; стало: 44,5 МиБ у панели - цена переписывания на новый движок |
| Хранение | было: один файл с клиентами; стало: база SQLite, переносится копированием тома |
Перенос настроек. Старые конфиги клиентов переезжают не копированием файлов: в прежней панели нажмите «Backup», скачайте файл с клиентами и загрузите его в мастере первого запуска нового контейнера. Переменные окружения не переносятся - почти все настройки переехали в админ-панель.
Приносим извинения за обещанный QR-код: в прошлой версии статьи он был описан, а в той сборке его не было ни одной строкой кода. Теперь функция настоящая, и ниже есть ее скриншот.
Что именно делает обфускация
У обычного WireGuard форма пакетов постоянная: фиксированные заголовки и предсказуемые размеры сообщений рукопожатия. Сетевое оборудование опознает такой поток и может его резать. AmneziaWG эту форму меняет.
Панель генерирует параметры сама при первом старте, и выглядят они так: Jc - сколько мусорных пакетов отправить перед рукопожатием, Jmin и Jmax - их размер, S1 и S2 - насколько удлинить служебные пакеты, H1-H4 - свои идентификаторы вместо стандартных. Крипто-ядро при этом не трогается вовсе.
Чего в этой версии еще нет. Поля S3, S4 и I1-I5 в панели есть, но сами не заполняются - мы проверили, что задать их вручную можно и они доезжают до клиента. Параметры версии 3.1 (шифрование заголовков, случайные хвосты) в релизе 15.4.0 отсутствуют; апстрим обещает их в следующей мажорной версии.
Минимальная конфигурация
Апстрим требований к железу не публикует. Мы запустили продукт на тарифе CPU2-RAM4-DISK50 и замерили сами - запас оказался многократным.
| Тариф | CPU2-RAM4-DISK50 - 2 ядра, 4 ГБ, 50 ГБ |
| Система | Ubuntu 24.04 LTS, Docker и compose-плагин |
| Контейнеры | два: панель и Caddy для сертификата |
| Порты | 51820/UDP наружу под туннель, 443 под панель |
| Что еще нужно | домен или публичный адрес под сертификат; модуль ядра для обфускации - ставится одной командой из репозитория Amnezia |
| Клиент | приложение, понимающее AmneziaWG: обычный WireGuard к такому серверу не подключится |
Память и диск тут не узкое место совсем. Считать по-настоящему будет процессор - шифрованием и обфускацией, - но и он в наших замерах уперся не раньше, чем канал сервера.
Готовый вариант
AmneziaWG из маркетплейса Fatmetal
Заказываете сервер - получаете поднятый VPN с панелью, доменом и сертификатом. Руками ставить ничего не нужно.
Рекомендуемая конфигурация:
2 vCPU · 4 ГБ RAM · 50 ГБ NVMe от 450 ₽/мес
Развертывание на Fatmetal
Ставили руками на чистой машине, чтобы замерить каждый шаг. Весь путь от пустого сервера до рабочего входа по защищенному соединению занял около четырех минут.
Поставить Docker
Официальный репозиторий, стандартная установка - 54 секунды.
Поставить движок обфускации
Модуль ядра из репозитория Amnezia. Сборка под текущее ядро заняла 107 секунд, заголовки в образе Ubuntu уже были.
sudo add-apt-repository -y ppa:amnezia/ppa sudo apt-get install -y amneziawg sudo modprobe amneziawgЗапустить панель и прокси
Два образа скачались за 23 секунды, стек поднялся за 20. Панель наружу не публикуем вовсе - она доступна только через Caddy, который и выпускает сертификат (у нас это заняло 9 секунд).
Проверить, что обфускация включилась
Это главная проверка, и продукт отвечает на нее сам.
sudo docker exec wg-easy sh -c 'wget -qO- http://127.0.0.1/api/information' # в ответе должно быть "isAwg":true
Первый запуск можно пройти без мастера: переменные INIT_USERNAME, INIT_PASSWORD, INIT_HOST и INIT_PORT создают администратора сразу. Действуют они только при первом старте.
Что измерили после запуска
Цифры сняты на нашем стенде, тариф CPU2-RAM4-DISK50, два ядра.
| Память, весь стек | 53,8 МиБ (панель 44,5 + Caddy 9,3); вся машина в простое - 513 МБ из 3915 |
| Образы | 379,5 МБ распакованными; по сети панель приезжает 77,9 МБ |
| Диск | 3,0 ГБ занято из 48; данные самого продукта - 99 КБ |
| Скорость в туннеле | 620 Мбит/с на модуле ядра, 911 Мбит/с на реализации в пользовательском пространстве |
| Задержка в туннеле | 1,0 мс, потерь нет |
| Отклик панели | страница входа 0,136 с, служебный запрос 0,042 с |
| После перезагрузки | панель отвечает через 65 секунд, обфускация поднимается сама |
Как читать цифру скорости. Оба конца туннеля в нашем замере считали шифрование на одном процессоре, так что это сравнение двух движков между собой, а не обещание скорости вашему сотруднику. Практический вывод от этого не меняется: оба варианта выдают больше, чем пропускает канал сервера, то есть упретесь вы в сеть, а не в обфускацию.
Один клиент стоит около 170 байт в конфигурации и полсекунды на создание. Данные тут не растут со временем - это шлюз, а не файловое хранилище, так что место планировать не нужно.
Как раздавать доступ
Клиент - это одно устройство. Заводите по отдельному на ноутбук, телефон и роутер: так доступ можно выключить точечно, не трогая остальных.
На создание уходит одно окно: имя и, если нужно, дата, после которой доступ перестанет работать. Дальше человеку отдают либо файл, либо QR-код - телефон наводят камеру и получают готовое подключение.
У каждого клиента есть своя карточка: срок действия, свои DNS, свои разрешенные адреса и даже свои параметры обфускации. Это удобно, когда у одного сотрудника сеть ведет себя не так, как у остальных.
Есть и одноразовая ссылка: человек открывает ее один раз, забирает конфигурацию, дальше ссылка не работает. Удобнее, чем пересылать файл с ключом в мессенджере.
Где может сломаться
Обфускация способна пропасть молча. Флаг в настройках ее только разрешает. Если движок на сервере не установлен, панель без единого сообщения берет обычный WireGuard: туннель работает, интерфейс исправен, а свойства, ради которого все затевалось, нет. Проверяется это служебным запросом, который возвращает isAwg: в карточке маркетплейса проверка уже встроена.
Контейнер показывает «unhealthy» при полностью рабочем VPN. Встроенная в образ проверка здоровья смотрит на интерфейс не тем инструментом - обфусцированный туннель она не видит и считает его отсутствующим. Мы замерили: через три минуты контейнер уходит в «нездоров», при этом панель отвечает, QR выдается, скорость в туннеле нормальная. Это дефект самой проверки, а не вашей установки.
Обычный WireGuard-клиент не подключится. Конфигурация содержит параметры обфускации, которые он не понимает - нужно приложение, понимающее AmneziaWG. Для телефонов и компьютеров такие есть, для роутеров - пакеты под OpenWrt.
Адрес IPv6 в панели виден, даже когда IPv6 выключен. Это известное поведение апстрима, а не ошибка: адрес показывается, но не используется.
Доступ, обновления, резервная копия
Панель наружу не торчит: снаружи открыты только порт туннеля и защищенный веб-порт, а сам интерфейс живет за обратным прокси с сертификатом. Вход - по имени пользователя и паролю, при желании включается второй фактор; есть и вход через внешнего провайдера.
Резервная копия - это один том: в нем база с клиентами и файл конфигурации сервера, вместе около 100 КБ. Скопировали том - перенесли весь VPN вместе с ключами.
Обновление - смена версии образа и перезапуск. Мы закрепляем конкретную версию, а не «последнюю»: так вы получаете то, что мы проверили, а не то, что вышло вчера. Перезагрузку машины продукт переживает сам - проверили живым перезапуском.
Когда это НЕ ваш выбор
Если сеть у всех стабильная. Обфускация стоит лишних настроек и требует особого клиента. Нет проблемы - берите wg-easy без нее, это тот же продукт без флага.
Если вам нужны правила на уровне приложений. Здесь вы даете устройству доступ в сеть, а не отдельному человеку - к отдельному сервису. Проверки состояния устройства и ролевых политик тут нет.
Если команда меньше пяти человек. У коммерческих аналогов есть бесплатные тарифы на такой размер, и они обойдутся дешевле отдельного сервера. Экономика разворачивается в вашу сторону примерно с десяти подключений - и дальше наша цена не растет вовсе, сколько бы людей вы ни добавили.
Если нужна маскировка под обычный веб-трафик. AmneziaWG работает поверх UDP. Там, где UDP вырезан целиком, помогут решения другого класса, а не этот.
Частые вопросы
Чем это отличается от обычного WireGuard?
Скорость и простота те же, но форма трафика меняется, и туннель стабильнее в сетях, которые мешают стандартному WireGuard. Крипто-ядро не трогается - это тот же WireGuard, только неузнаваемый снаружи.
Подойдет ли обычный WireGuard-клиент?
Нет. В конфигурации есть параметры обфускации, которые он не понимает. Нужно приложение, понимающее AmneziaWG: официальные клиенты есть для телефонов и компьютеров, для роутеров - сборки под OpenWrt.
Это то же самое, что приложение Amnezia VPN?
Движок тот же. Разница в управлении: здесь панель живет на сервере и клиентов можно раздавать людям, не пуская их на сам сервер.
Насколько это тяжело для сервера?
Весь стек занимает 53,8 МиБ памяти и 3 ГБ диска. Упретесь вы в канал, а не в железо: через туннель у нас прошло 620 Мбит/с.
Поддержка AmneziaWG помечена экспериментальной - это опасно?
Это значит, что настройки могут измениться в следующих версиях. Сам туннель у нас работал без нареканий, пережил перезагрузку и держал скорость. В следующей мажорной версии апстрим обещает включить поддержку по умолчанию.
Можно ли перенести клиентов со старой установки?
Да. В старой панели скачайте резервную копию клиентов и загрузите файл в мастере первого запуска новой. Настройки окружения при этом не переносятся - их заменяет админ-панель.
Итог
AmneziaWG на панели wg-easy - это свой VPN для команды, который не считает людей: платите за сервер, а не за каждого подключенного. Обфускация держит соединение там, где обычный туннель рвется, а раздача доступа занимает одно окно в браузере. Стек стоит 53,8 МиБ памяти, через туннель проходит 620 Мбит/с, перезагрузку переживает сам. Главное, за чем стоит следить, - что обфускация действительно включена: панель умеет молча работать и без нее, и в нашей карточке эта проверка уже встроена.
Рекомендуемая конфигурация для установки:
2 vCPU · 4 ГБ RAM · 50 ГБ NVMe
Не хотите устанавливать вручную?
Запустите AmneziaWG на этой конфигурации автоматически - от 450 ₽/мес.
Этот стек у нас запущен на тарифе CPU2-RAM4-DISK50. Нашли неточность в гайде - напишите, поправим в течение дня.