После установки пакета luci-app-amneziawg на роутер с OpenWrt раздел «AmneziaWG» может не появиться в веб-интерфейсе LuCI — чаще всего причина в том, что служба rpcd не перезапущена или кэш браузера хранит старую версию меню. Это первая проверка, которую стоит выполнить до поиска более глубоких проблем с конфигурацией.
Luci-app-amneziawg — это графический модуль для веб-панели LuCI в OpenWrt, который позволяет управлять VPN-протоколом AmneziaWG без правки конфигурационных файлов вручную. AmneziaWG представляет собой модификацию WireGuard с обфускацией заголовков пакетов, что затрудняет распознавание трафика системами DPI. В этой статье разберём установку пакета, настройку интерфейса, параметры маскировки и типичные ошибки.
Что такое AmneziaWG и зачем нужен модуль LuCI
AmneziaWG основан на кодовой базе WireGuard и наследует его ключевые свойства: высокую скорость, криптографию на современных примитивах и простую модель «ключ — пир». Отличие заключается в дополнительных параметрах обфускации: протокол изменяет сигнатуры начала соединения (magic-значения в заголовках handshake), а также позволяет добавлять псевдослучайный «мусор» в пакеты. В результате DPI-системы не могут опознать трафик как WireGuard по стандартным шаблонам.
Без модуля LuCI настройку пришлось бы выполнять через SSH: редактировать /etc/config/network, вручную прописывать параметры обфускации и перезапускать сетевые службы. Пакет luci-app-amneziawg добавляет в веб-интерфейс отдельный раздел, где все поля — ключи, адреса, параметры маскировки — заполняются через формы. Это снижает риск синтаксических ошибок и ускоряет развёртывание.
- 🔐 Обфускация заголовков — изменение magic-чисел в пакетах handshake (параметры Jc, Jmin, Jmax, S1, S2, H1–H4).
- 🖥️ Управление через браузер — создание интерфейсов, пиров и ключей без командной строки.
- 📊 Мониторинг состояния — отображение handshake, переданного трафика и активных пиров.
- 🧩 Совместимость с AmneziaVPN — конфигурации можно переносить между роутером и клиентскими приложениями проекта Amnezia.
Требования и подготовка роутера
Перед установкой убедитесь, что на роутере установлена свежая версия OpenWrt с поддержкой репозиториев, содержащих пакеты AmneziaWG. Пакет зависит от ядерного модуля или userspace-реализации протокола — конкретный набор зависимостей может различаться между ветками OpenWrt, поэтому сверяйтесь с репозиторием вашей версии прошивки.
Проверьте свободное место во внутренней памяти роутера командой df -h — на устройствах с малым объёмом флеш-памяти установка дополнительных пакетов может завершиться ошибкой нехватки места. Также потребуется стабильное интернет-соединение для загрузки пакетов через opkg или apk (в зависимости от версии OpenWrt используется разный пакетный менеджер).
⚠️ Внимание: если ваш роутер работает на кастомной или устаревшей сборке OpenWrt, пакет может отсутствовать в репозитории. В этом случае не устанавливайте пакеты, собранные под другую архитектуру или версию ядра, — это способно нарушить работу сетевого стека. Проверяйте совместимость в документации проекта AmneziaWG.
Установка luci-app-amneziawg через SSH
Основной способ установки — через терминал. Подключитесь к роутеру по SSH и выполните обновление списка пакетов, затем установите сам модуль вместе с зависимостями:
opkg update
opkg install luci-app-amneziawg
Пакетный менеджер автоматически подтянет необходимые компоненты, включая исполняемые файлы AmneziaWG и интеграцию с сетевой подсистемой. Если установка завершилась успешно, но раздел в LuCI не появился, перезапустите службу rpcd:
/etc/init.d/rpcd restart
После этого выйдите из веб-интерфейса, очистите кэш браузера (или откройте панель в режиме инкогнито) и авторизуйтесь заново. Новый раздел обычно располагается в меню Службы или VPN — расположение может отличаться в зависимости от темы и версии LuCI.
☑️ Проверка после установки
Настройка интерфейса AmneziaWG в веб-интерфейсе
Откройте раздел AmneziaWG в LuCI и создайте новый интерфейс. Вам потребуется сгенерировать пару ключей — приватный и публичный. Веб-формы модуля обычно предоставляют кнопку генерации; если её нет, ключи создаются через SSH:
awg genkey | tee privatekey | awg pubkey > publickey
Далее заполните поля интерфейса: приватный ключ, адрес внутри VPN-туннеля (например, из подсети, выданной вашим VPN-сервером) и порт прослушивания, если роутер выступает сервером. При подключении к внешнему серверу добавьте пира: укажите его публичный ключ, endpoint (адрес и порт сервера), разрешённые адреса Allowed IPs и интервал Persistent Keepalive, если соединение проходит через NAT.
Отдельный блок настроек отвечает за обфускацию. Значения параметров Jc, Jmin, Jmax, S1, S2 и H1–H4 должны в точности совпадать на клиенте и сервере — иначе handshake не состоится, и туннель не поднимется. Если вы используете сервер, развёрнутый через приложение AmneziaVPN, эти параметры берутся из экспортированной конфигурации сервера.
Параметры обфускации: что означают поля
Разберём назначение ключевых полей, поскольку именно они отличают AmneziaWG от обычного WireGuard и вызывают больше всего вопросов при настройке.
| Параметр | Назначение |
|---|---|
Jc | Количество «мусорных» пакетов, отправляемых при установке соединения |
Jmin / Jmax | Минимальный и максимальный размер мусорных пакетов в байтах |
S1 / S2 | Дополнительный padding к пакетам инициации и ответа handshake |
H1–H4 | Замена стандартных magic-чисел заголовков WireGuard на произвольные значения |
Менять эти значения «наугад» не следует: чрезмерный объём мусорного трафика увеличивает накладные расходы и может наоборот привлечь внимание систем анализа. Разумный подход — использовать значения, сгенерированные серверной стороной Amnezia, либо оставить параметры по умолчанию, если сервер их не переопределяет.
Маршрутизация и файрвол
Созданного интерфейса недостаточно — трафик нужно направить в туннель и разрешить его прохождение. Интерфейс AmneziaWG необходимо привязать к зоне файрвола. Типовой сценарий для VPN-клиента: создать отдельную зону (или добавить интерфейс в зону wan) и включить NAT/маскарадинг на выходе, чтобы локальные устройства выходили в сеть через туннель.
Если через VPN должен идти только трафик к определённым ресурсам, настройте политику маршрутизации: поле Allowed IPs у пира определяет, какие подсети заворачиваются в туннель. Значение 0.0.0.0/0 направляет весь трафик через VPN, а перечисление конкретных сетей — только выбранные маршруты. Для раздельного туннелирования на уровне устройств локальной сети может потребоваться пакет pbr (Policy-Based Routing), настройка которого выходит за рамки базового сценария.
⚠️ Внимание: при маршрутизации всего трафика через туннель ошибка в конфигурации файрвола может полностью отрезать роутеру доступ в интернет, включая само VPN-соединение. Перед применением изменений убедитесь, что у вас есть доступ к роутеру из локальной сети, и при необходимости используйте функцию отката конфигурации LuCI, которая отменяет изменения при потере связи.
Диагностика типичных проблем
Если туннель не поднимается, начните с проверки состояния интерфейса через SSH:
awg show
Отсутствие строки latest handshake или значение «0» у счётчиков переданных данных означает, что handshake не выполняется. Возможные причины: несовпадение параметров обфускации, неверный публичный ключ пира, недоступность endpoint (порт закрыт на стороне сервера или блокируется провайдером) либо ошибка в разрешённых адресах.
- 🔍 Проверьте endpoint — доступен ли адрес и порт сервера с роутера (например, через
pingдо адреса сервера). - 🔑 Сверьте ключи — публичный ключ пира на роутере должен соответствовать приватному ключу сервера и наоборот.
- 🧱 Проверьте файрвол — входящие на порт AmneziaWG должны быть разрешены, если роутер — сервер.
- 🕐 Проверьте время — некорректные системные часы могут мешать работе сетевых служб; включите синхронизацию NTP.
Если handshake проходит, но трафик не ходит, проблема почти всегда в маршрутизации или файрволе: проверьте, что интерфейс добавлен в нужную зону, маскарадинг включён, а Allowed IPs охватывают нужные подсети. Полезно также посмотреть системный журнал командой logread на предмет ошибок интерфейса.
Как перенести конфигурацию с сервера AmneziaVPN
Экспортируйте конфигурацию подключения из приложения Amnezia в формате конфиг-файла. В нём будут секции [Interface] и [Peer] со всеми ключами и параметрами обфускации. Перенесите значения в соответствующие поля формы LuCI: PrivateKey — в приватный ключ интерфейса, Address — в адреса, параметры Jc/Jmin/Jmax/S1/S2/H1–H4 — в поля обфускации, PublicKey и Endpoint из секции [Peer] — в настройки пира.
Обновление и удаление пакета
Обновление выполняется стандартно через пакетный менеджер: opkg update и последующая установка новой версии пакета. Перед обновлением стоит сохранить резервную копию конфигурации — настройки AmneziaWG хранятся в /etc/config/ и обычно сохраняются при обновлении, но резервная копия через Система → Резервное копирование в LuCI исключает потерю ключей.
Для удаления модуля используйте opkg remove luci-app-amneziawg. Учтите, что удаление пакета может также затронуть зависимости, если они не нужны другим компонентам системы. Сама конфигурация интерфейсов при этом, как правило, остаётся в файлах настроек и будет подхвачена при повторной установке.
Частые вопросы
Чем AmneziaWG отличается от обычного WireGuard?
AmneziaWG — форк WireGuard с добавленной обфускацией: изменяются magic-значения заголовков handshake и добавляются мусорные пакеты, поэтому DPI-системы не распознают трафик как WireGuard. Криптография и модель ключей при этом остаются прежними.
Раздел AmneziaWG не появился в LuCI после установки. Что делать?
Перезапустите службу командой /etc/init.d/rpcd restart, затем очистите кэш браузера или откройте LuCI в режиме инкогнито. Если раздел не появился, проверьте, что пакет установился без ошибок: opkg list-installed | grep amnezia.
Handshake не проходит, хотя ключи верные. В чём причина?
Наиболее вероятная причина — несовпадение параметров обфускации (Jc, Jmin, Jmax, S1, S2, H1–H4) между клиентом и сервером. Эти значения должны быть идентичны на обеих сторонах. Также проверьте доступность endpoint и открытость порта на сервере.
Можно ли пустить через AmneziaWG только часть трафика?
Да. Поле Allowed IPs у пира определяет, какие подсети маршрутизируются в туннель. Для более гибких правил — например, чтобы разные устройства локальной сети использовали разные маршруты — применяется пакет Policy-Based Routing (pbr).
Сохранится ли конфигурация при обновлении прошивки OpenWrt?
При стандартном sysupgrade с сохранением настроек конфигурация в /etc/config/ сохраняется, однако сам пакет luci-app-amneziawg придётся установить заново после обновления. Рекомендуется заранее сделать резервную копию конфигурации через LuCI.