OpenWrt
12 минут чтения

AmneziaWG на OpenWrt: установка пакета awg и настройка через LuCI и UCI

OpenWrt остаётся одной из самых гибких платформ для домашнего роутера, поэтому именно на ней чаще всего разворачивают AmneziaWG — форк WireGuard с встроенной обфускацией трафика. В отличие от обычного WireGuard, AmneziaWG маскирует служебные пакеты под случайный шум, что усложняет обнаружение туннеля системами DPI. На OpenWrt протокол доступен через отдельный набор пакетов ядра и LuCI, которые нужно установить и правильно связать между собой. Ниже разобран полный путь: от проверки совместимости прошивки до включения интерфейса в firewall и диагностики через logread. Материал рассчитан на пользователей, которые уже настраивали обычный WireGuard на OpenWrt и хотят перейти на защищённый от блокировок вариант.

Получить готовую конфигурацию

Выполняйте шаги последовательно и сохраняйте резервную копию. Названия пунктов могут незначительно отличаться в разных версиях прошивки.

ШАГ 01

Требования к прошивке и подготовка

Перед установкой убедитесь, что на роутере стоит актуальная версия 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). Оба пути приводят к одному результату, но консольный вариант надёжнее, потому что сразу показывает ошибки зависимостей в текстовом виде.

ШАГ 02

Установка kmod-amneziawg и luci-proto-amneziawg

Ключевые пакеты — это kmod-amneziawg (модуль ядра, реализующий протокол), amneziawg-tools (утилиты awg и awg-quick для управления конфигурацией) и luci-proto-amneziawg (интеграция с веб-интерфейсом). Без модуля ядра интерфейс не поднимется, без luci-proto его нельзя будет настроить через графический интерфейс, а придётся редактировать конфигурацию вручную через UCI.

Установка выполняется через SSH-подключение к роутеру. Сначала обновляется список пакетов, затем устанавливаются все три компонента одной командой. После установки модуль ядра нужно либо загрузить вручную, либо перезагрузить роутер, чтобы он подхватился автоматически при старте системы.

Если в официальном репозитории пакета нет (актуально для очень новых или очень старых веток OpenWrt), используют сторонний feed или собирают пакет самостоятельно через OpenWrt SDK. Для большинства актуальных релизов пакеты уже доступны в основном репозитории, поэтому сборка из исходников требуется редко.

  1. 1Подключиться к роутеру по SSH: ssh root@192.168.1.1
  2. 2Обновить списки пакетов: opkg update (или apk update)
  3. 3Установить модуль ядра: opkg install kmod-amneziawg
  4. 4Установить утилиты: opkg install amneziawg-tools
  5. 5Установить LuCI-модуль: opkg install luci-proto-amneziawg
  6. 6Перезагрузить роутер: reboot
CONFIG / TERMINAL
opkg update
opkg install kmod-amneziawg amneziawg-tools luci-proto-amneziawg
reboot

Нужны параметры без ручного подбора?

Получите готовый профиль для своего роутера — ключи, endpoint и параметры обфускации уже заполнены.

Получить готовую конфигурацию
ШАГ 03

Создание интерфейса через 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, которые меняют сигнатуру пакетов инициализации соединения.

ШАГ 04

Параметры обфускации 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.

ШАГ 05

Настройка через UCI из консоли

Тем, кто предпочитает работать без веб-интерфейса или настраивает роутер по SSH-скрипту, удобнее редактировать конфигурацию напрямую через UCI — систему унифицированной конфигурации OpenWrt. Секция interface описывает сам туннель, а секция amneziawg_<имя> описывает peer — удалённую сторону соединения.

После внесения изменений конфигурацию нужно закоммитить командой uci commit network и перезапустить сетевую службу командой /etc/init.d/network restart, иначе изменения останутся только в черновике UCI и не применятся к реальному интерфейсу.

Такой подход удобен для массового развёртывания одинаковой конфигурации на нескольких роутерах: достаточно подготовить шаблон файла /etc/config/network с плейсхолдерами под ключи и IP-адреса и разливать его через простой скрипт.

CONFIG / TERMINAL
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
ШАГ 06

Настройка 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.

ШАГ 07

Автозапуск при загрузке и отладка через 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. 1Проверить состояние интерфейса: ifstatus awg0
  2. 2Посмотреть статистику handshake: awg show awg0
  3. 3Смотреть системный лог в реальном времени: logread -f
  4. 4Проверить связность: ping -I awg0 10.8.0.1
  5. 5При проблемах сверить параметры обфускации на клиенте и сервере построчно

Частые вопросы

Готовы подключить роутер?

Возьмите готовую конфигурацию и используйте эту инструкцию для установки и проверки.

Получить готовую конфигурацию

Продолжите настройку

Все руководства — настройка роутеров, MTU, DNS и устройств.