Выполняйте шаги последовательно и сохраняйте резервную копию. Названия пунктов могут незначительно отличаться в разных версиях прошивки.
Требования к прошивке и подготовка
Перед установкой убедитесь, что на роутере стоит актуальная версия OpenWrt — пакеты AmneziaWG собираются под конкретные релизы, и на устаревшей прошивке opkg может не найти нужные модули. Проверить версию можно командой cat /etc/openwrt_release, а актуальность репозиториев — командой opkg update. Если роутер работает на образе с урезанной прошивкой от производителя, а не на чистом OpenWrt, пакетов AmneziaWG в стандартных репозиториях может не быть вовсе.
Дополнительно стоит оценить свободное место во флеш-памяти: пакеты ядра и LuCI-модуль вместе занимают несколько сотен килобайт, что критично для устройств с 8 или 16 МБ флеша. Команда df -h покажет доступное место в разделе overlay. На маломощных роутерах с 16 МБ флеша и 64–128 МБ оперативной памяти лучше заранее удалить неиспользуемые пакеты и локали LuCI, чтобы освободить место под установку.
Также важно определиться со способом установки: через веб-интерфейс LuCI в разделе System → Software или через SSH-консоль с помощью opkg или apk (в новых версиях OpenWrt пакетный менеджер сменился с opkg на apk). Оба пути приводят к одному результату, но консольный вариант надёжнее, потому что сразу показывает ошибки зависимостей в текстовом виде.
Установка kmod-amneziawg и luci-proto-amneziawg
Ключевые пакеты — это kmod-amneziawg (модуль ядра, реализующий протокол), amneziawg-tools (утилиты awg и awg-quick для управления конфигурацией) и luci-proto-amneziawg (интеграция с веб-интерфейсом). Без модуля ядра интерфейс не поднимется, без luci-proto его нельзя будет настроить через графический интерфейс, а придётся редактировать конфигурацию вручную через UCI.
Установка выполняется через SSH-подключение к роутеру. Сначала обновляется список пакетов, затем устанавливаются все три компонента одной командой. После установки модуль ядра нужно либо загрузить вручную, либо перезагрузить роутер, чтобы он подхватился автоматически при старте системы.
Если в официальном репозитории пакета нет (актуально для очень новых или очень старых веток OpenWrt), используют сторонний feed или собирают пакет самостоятельно через OpenWrt SDK. Для большинства актуальных релизов пакеты уже доступны в основном репозитории, поэтому сборка из исходников требуется редко.
- 1Подключиться к роутеру по SSH: ssh root@192.168.1.1
- 2Обновить списки пакетов: opkg update (или apk update)
- 3Установить модуль ядра: opkg install kmod-amneziawg
- 4Установить утилиты: opkg install amneziawg-tools
- 5Установить LuCI-модуль: opkg install luci-proto-amneziawg
- 6Перезагрузить роутер: reboot
opkg update
opkg install kmod-amneziawg amneziawg-tools luci-proto-amneziawg
rebootНужны параметры без ручного подбора?
Получите готовый профиль для своего роутера — ключи, endpoint и параметры обфускации уже заполнены.
Получить готовую конфигурациюСоздание интерфейса через LuCI
После перезагрузки заходим в веб-интерфейс LuCI, открываем раздел Network → Interfaces и нажимаем Add new interface. В списке протоколов должен появиться пункт AmneziaWG — если его нет, значит luci-proto-amneziawg не установился или требуется очистка кеша браузера и перезагрузка LuCI (можно перезапустить веб-сервер uhttpd командой /etc/init.d/uhttpd restart).
На вкладке General Settings задаётся приватный ключ устройства и IP-адрес интерфейса из внутренней подсети туннеля, например 10.8.0.2/24. Приватный ключ можно сгенерировать прямо на роутере командой awg genkey, а публичный получить из него через awg pubkey.
Отдельная вкладка отвечает за параметры обфускации — именно они отличают AmneziaWG от обычного WireGuard. Здесь задаются Jc (количество пакетов джанк-трафика), Jmin и Jmax (диапазон размера этих пакетов), а также S1, S2 и набор заголовков H1–H4, которые меняют сигнатуру пакетов инициализации соединения.
Параметры обфускации Jc, Jmin, Jmax, S1, S2, H1-H4
Jc задаёт количество дополнительных «мусорных» пакетов, отправляемых перед основным handshake-пакетом — типичные значения от 3 до 10. Чем больше значение, тем сильнее замаскирован трафик, но тем выше накладные расходы на канал. Jmin и Jmax определяют минимальный и максимальный размер этих junk-пакетов в байтах, обычно в диапазоне от 40 до 200.
S1 и S2 задают дополнительное смещение (padding) для пакетов handshake initiation и response соответственно — это меняет длину пакетов, которая у стандартного WireGuard фиксирована и легко детектируется DPI. Значения подбираются в пределах нескольких десятков байт и должны быть одинаковыми на обеих сторонах туннеля, иначе соединение не установится.
Параметры H1, H2, H3 и H4 заменяют стандартные типы пакетов WireGuard (handshake initiation, handshake response, cookie reply, transport data) на произвольные 32-битные числа. Это ключевая часть маскировки: система DPI, которая ищет характерные для WireGuard магические байты, просто не находит их в трафике AmneziaWG. Важно, чтобы значения H1–H4 были уникальны между собой и совпадали на клиенте и сервере.
На практике проще всего скопировать набор параметров обфускации из официального конфигуратора Amnezia или взять готовый профиль от VPN-провайдера, а не подбирать их вручную — рабочие сочетания уже проверены сообществом и реже приводят к обрыву handshake.
Получить готовый конфиг
Если не хотите собирать профиль вручную, возьмите готовую конфигурацию и продолжайте инструкцию с шага импорта.
Получить готовую конфигурациюНастройка через UCI из консоли
Тем, кто предпочитает работать без веб-интерфейса или настраивает роутер по SSH-скрипту, удобнее редактировать конфигурацию напрямую через UCI — систему унифицированной конфигурации OpenWrt. Секция interface описывает сам туннель, а секция amneziawg_<имя> описывает peer — удалённую сторону соединения.
После внесения изменений конфигурацию нужно закоммитить командой uci commit network и перезапустить сетевую службу командой /etc/init.d/network restart, иначе изменения останутся только в черновике UCI и не применятся к реальному интерфейсу.
Такой подход удобен для массового развёртывания одинаковой конфигурации на нескольких роутерах: достаточно подготовить шаблон файла /etc/config/network с плейсхолдерами под ключи и IP-адреса и разливать его через простой скрипт.
uci set network.awg0=interface
uci set network.awg0.proto='amneziawg'
uci set network.awg0.private_key='<PRIVATE_KEY>'
uci set network.awg0.listen_port='51820'
uci set network.awg0.addresses='10.8.0.2/24'
uci set network.awg0.jc='4'
uci set network.awg0.jmin='40'
uci set network.awg0.jmax='70'
uci set network.awg0.s1='0'
uci set network.awg0.s2='0'
uci set network.awg0.h1='1'
uci set network.awg0.h2='2'
uci set network.awg0.h3='3'
uci set network.awg0.h4='4'
uci set network.awg0_peer=amneziawg_awg0
uci set network.awg0_peer.public_key='<SERVER_PUBLIC_KEY>'
uci set network.awg0_peer.endpoint_host='<SERVER_IP>'
uci set network.awg0_peer.endpoint_port='51820'
uci set network.awg0_peer.allowed_ips='0.0.0.0/0'
uci set network.awg0_peer.persistent_keepalive='25'
uci commit network
/etc/init.d/network restartНастройка firewall-зоны и DNS
Созданный интерфейс awg0 нужно включить в firewall-зону, иначе трафик через туннель будет заблокирован политикой по умолчанию. В LuCI это делается в разделе Network → Firewall → Zone Settings: создаётся новая зона (например, vpn) с input/output/forward accept, либо интерфейс добавляется в существующую зону wan, если весь трафик роутера должен уходить через туннель.
Для полного перенаправления трафика клиентов через AmneziaWG нужно также настроить маскарадинг (masquerading) на зоне с интерфейсом awg0 и включить его как forwarding-источник для зоны lan. Если требуется избирательная маршрутизация только части устройств, применяют политики на основе таблиц маршрутизации или mwan3.
DNS-запросы стоит принудительно направить через сервер, указанный в конфигурации туннеля, чтобы избежать утечки DNS за пределы VPN — для этого в настройках интерфейса awg0 задаётся DNS-сервер, а в dhcp-опциях LAN включается перехват DNS-запросов на 53 порт с редиректом на dnsmasq.
Автозапуск при загрузке и отладка через logread
Если интерфейс создан через LuCI или UCI с proto amneziawg, он автоматически поднимается при старте сети — отдельно настраивать автозапуск не требуется. Проверить это можно командой ifstatus awg0, которая покажет текущее состояние интерфейса и назначенный IP-адрес.
Для диагностики проблем с подключением используют связку из трёх команд: awg show awg0 показывает статус handshake и трафик по каждому peer, logread -f выводит системный журнал в реальном времени, а ping через интерфейс туннеля проверяет реальную доступность удалённой сети. Если в awg show поле latest handshake не обновляется, скорее всего не совпадают параметры обфускации или заблокирован UDP-порт на файрволе провайдера.
Частая ошибка — расхождение параметров Jc/Jmin/Jmax/S1/S2/H1-H4 между клиентом и сервером: даже минимальное отличие приводит к тому, что сервер не распознаёт пакет как валидный handshake и просто отбрасывает его молча, без явной ошибки. В этом случае в логах будет тишина, а не сообщение об ошибке, поэтому первым делом сверяйте конфигурации обеих сторон построчно.
- 1Проверить состояние интерфейса: ifstatus awg0
- 2Посмотреть статистику handshake: awg show awg0
- 3Смотреть системный лог в реальном времени: logread -f
- 4Проверить связность: ping -I awg0 10.8.0.1
- 5При проблемах сверить параметры обфускации на клиенте и сервере построчно
Частые вопросы
Готовы подключить роутер?
Возьмите готовую конфигурацию и используйте эту инструкцию для установки и проверки.
Получить готовую конфигурациюПродолжите настройку
Все руководства — настройка роутеров, MTU, DNS и устройств.