Генератор команды
Пароль от панели в команду не попадает. Сервер придумает его сам, покажет в конце и сохранит в /root/wg-easy-admin.txt.
Показать команду целиком
На странице генератора заполняешь поля, копируешь одну команду и вставляешь её в SSH под root. Скрипт собирает модуль ядра, ставит Docker, wg-easy с AmneziaWG и панель по HTTPS, а в конце проверяет, что работает именно AmneziaWG, а не обычный WireGuard.
Поля генератора
IP сервера (пусто — определится сам), домен для панели (пусто — панель по IP), подсеть VPN (по умолчанию 10.72.3.0/24, у каждого сервера своя), порт UDP (обычно 51820) и DNS для клиентов (по умолчанию 1.1.1.1,8.8.8.8).
Пароль от панели в команду не попадает. Сервер придумает его сам, покажет в конце и сохранит в /root/wg-easy-admin.txt.
Как запустить
- Подключись:
ssh root@IP. Если зашёл не под root, выполниsudo -i. - Скопируй команду со страницы генератора, вставь в терминал, нажми Enter.
- Подожди 5–15 минут.
- Зайди в панель, нажми «+ New», скачай конфиг и импортируй в приложение AmneziaWG. Обычный WireGuard такой конфиг не примет.
Что делает скрипт
- Ждёт, пока система закончит автообновления, и отключает их таймеры.
- Ставит компилятор, DKMS, git и заголовки текущего ядра.
- Собирает модуль AmneziaWG из тега
v1.0.20260725и подключает через DKMS. - Ставит Docker, если его нет.
- Кладёт
/opt/wg-easy/docker-compose.ymlсEXPERIMENTAL_AWG=true,OVERRIDE_AUTO_AWG=awgи переменнымиINIT_*. - Проверяет, что интерфейс
wg0имеет типamneziawgи у него есть параметры маскировки. - Поднимает Caddy в
/opt/caddyперед панелью.
Почему так
- В wg-easy 15 зашиты утилиты AmneziaWG линии 1.0. Модуль 3.x с ними несовместим и даёт
Invalid argument. - Без модуля wg-easy молча запускает обычный WireGuard, который режется по DPI. Защита —
OVERRIDE_AUTO_AWG=awgи проверка на шаге 6. - Штатный healthcheck смотрит через
wg showи не видит AmneziaWG, поэтому он переписан наawg show. - У wg-easy одна docker-сеть, Caddy подключается к ней сам. Иначе пропадает интернет у клиентов при живом рукопожатии.
- Клиенты подключаются по IP, а не по домену.
Если что-то пошло не так
| Что видно | Что делать |
|---|---|
| Нет заголовков для ядра | apt-get -y full-upgrade && reboot, потом запустить команду ещё раз |
modprobe: Key was rejected |
Включён Secure Boot, выключить в панели хостера |
| Проверка нашла wireguard вместо amneziawg | lsmod | grep amneziawg, затем dkms status |
| Рукопожатие есть, интернета нет | iptables -t nat -L POSTROUTING -n -v в контейнере, проверить вторую сеть у wg-easy |
| Панель по домену не открывается | docker logs caddy, проверить DNS и 80-й порт |
Ручная проверка
docker exec wg-easy ip -d link show wg0 | grep -o amneziawg
docker exec wg-easy awg show
docker ps --format 'table {{.Names}}\t{{.Status}}'
В выводе awg show должны быть jc, jmin, jmax, s1, s2, h1…h4.
Источники
- wg-easy: AmneziaWG
- wg-easy: установка без мастера
- Релизы wg-easy
- Модуль ядра AmneziaWG
- Клиент AmneziaWG для Windows
Версии сверены 16 октября 2026.