С AmneziaWG 3.0 на Keenetic есть один неочевидный момент. Просто загрузить новый .conf в штатный WireGuard роутера недостаточно. Встроенная реализация Keenetic умеет работать с предыдущими поколениями AmneziaWG, но специфические параметры AWG 3.0 требуют либо отдельного модуля ядра версии 3.x, либо обработки через sing-box. Поэтому я бы не пытался вручную собирать конфигурацию в веб-интерфейсе Keenetic. Намного удобнее поставить AWG-Manager.
AWG-Manager работает поверх Entware, принимает обычные файлы .conf и ссылки vpn://, создаёт туннели, настраивает маршрутизацию и сразу показывает, какой вариант AmneziaWG реально запущен. Ниже я разберу установку по инструкции проекта, а затем отдельно покажу, что сделать именно для AmneziaWG 3.0.
Короткий дисклеймер. Материал предназначен для легальной настройки собственной сети и собственных VPN-серверов. Соблюдайте законодательство своей страны, включая требования законодательства России. Не применяйте инструкции для несанкционированного доступа, слежки, взлома, нарушения правил сервисов или незаконного обхода установленных ограничений.
Что понадобится перед установкой
AWG-Manager рассчитан на KeeneticOS 4.x и 5.x и поддерживает архитектуры mipsel-3.4, mips-3.4 и aarch64-3.10. На практике большинство сравнительно новых производительных Keenetic используют ARM или MIPSLE.
Сначала я бы открыл веб-интерфейс Keenetic, перешёл в «Управление» → «Настройки системы» → «Изменить набор компонентов» и установил два компонента.
- WireGuard VPN нужен для сетевой интеграции.
- OPKG нужен для запуска Entware и AWG-Manager.
Для классической установки Entware понадобится USB-накопитель. Лучше использовать ext4. На KeeneticOS 5.x при установленных компонентах поддержки файловой системы ext накопитель можно отформатировать прямо через веб-интерфейс роутера.
Перед изменениями я советую сохранить startup-config и резервную копию текущей конфигурации. Установка Entware сама по себе не должна ломать KeeneticOS, но резервная копия сильно упрощает жизнь, если что-то пойдёт не по плану.
Архитектуру роутера можно посмотреть через WebCLI командой
show versionНас интересует значение arch. В общем случае соответствие выглядит так.
| Процессор | Архитектура Entware |
|---|---|
| EcoNet | mips |
| MT7628, MT7621 | mipsel |
| MT7622, MT7981, MT7988 | aarch64 |
Ставим Entware и AWG-Manager
Если Entware уже работает, весь следующий этап с накопителем можно пропустить. Проверить проще всего по наличию каталога /opt и работоспособности команды opkg.
Для новой установки откройте WebCLI по адресу http://192.168.1.1/a. Если адрес локальной сети менялся, подставьте адрес своего роутера.
Сначала наберите
opkg diskПосле команды нажмите Tab. Keenetic покажет доступные накопители. Затем укажите накопитель и установщик Entware для своей архитектуры.
Для MIPS
opkg disk <накопитель> https://bin.entware.net/mipssf-k3.4/installer/mips-installer.tar.gzДля MIPSLE
opkg disk <накопитель> https://bin.entware.net/mipselsf-k3.4/installer/mipsel-installer.tar.gzДля ARM64
opkg disk <накопитель> https://bin.entware.net/aarch64-k3.10/installer/aarch64-installer.tar.gzЕсли Entware ставится во встроенную память поддерживаемого устройства, вместо имени USB-накопителя используется storage:.
Успешную установку можно проверить по журналу. В нём должна появиться строка примерно такого вида.
Opkg::Manager: /opt/etc/init.d/doinstall: [5/5] "Entware" installed!Проверить журнал из консоли можно командой
show log | grep Opkg::Manager:После появления Entware подключаемся к его SSH. Для типовой конфигурации используется пользователь root. Порт зависит от конфигурации роутера. В документации AWG-Manager для варианта с компонентом Keenetic SSH указан порт 222.
Из Windows PowerShell команда может выглядеть так.
ssh root@192.168.1.1 -p 222На свежей установке Entware может использовать пароль keenetic. Если вход прошёл, пароль лучше сразу заменить.
passwdТеперь ставим AWG-Manager. Разработчик рекомендует быстрый вариант.
opkg update
wget -qO- http://repo.hoaxisr.ru/install.sh | shСкрипт сам определит архитектуру, подключит репозиторий, установит пакет и запустит службу. В конце появится адрес веб-панели. Обычно используется порт 2222.
AWG Manager: http://192.168.1.1:2222Если порт занят, AWG-Manager выберет другой. Узнать фактическое значение можно так.
cat /opt/etc/awg-manager/settings.jsonПо умолчанию веб-панель может открываться без авторизации. Я бы сразу включил защиту в настройках AWG-Manager. После включения панель использует учётные данные администратора Keenetic.
Теперь главное, включаем именно AmneziaWG 3.0
На данном этапе AWG-Manager уже установлен, но наличие программы ещё не означает, что туннель работает по AWG 3.0. В AWG-Manager есть разные способы обработки AmneziaWG.
NativeWG использует встроенный WireGuard Keenetic. Такой вариант хорошо интегрирован с системой роутера, но полноценные параметры AWG 3.0 штатная реализация не получает. Документация AWG-Manager прямо указывает, что для AWG 3.0 в таком случае туннель фактически остаётся на возможностях AWG 2.0.
Kernel использует отдельный модуль amneziawg. Для AmneziaWG 3.0 должен быть реально загружен модуль поколения 3.x. Начиная с AWG-Manager 2.16.4 программа проверяет загруженный модуль и только после успешной проверки показывает параметры AWG 3.0.
После импорта настоящего AWG 3.0 в разделе «Обфускация» должны появиться дополнительные поля.
HeaderProtectionKeyContentPaddingAdditionRekeyAfterTimeRekeyTimeoutRejectAfterTimeKeepaliveTimeoutMaxHandshakeAttempts
Самый показательный параметр здесь HeaderProtectionKey. AWG 3.0 использует его для защиты заголовков WireGuard. Если AWG-Manager импортировал конфигурацию, но раздел AWG 3.0 не появился, я бы не считал настройку завершённой. Скорее всего, роутер использует старый модуль или NativeWG.
Важна и совместимость с сервером. HeaderProtectionKey клиента должен совпадать с сервером. AWG-Manager предупреждает, что при несовпадении туннель может формально подняться, но данные через него не пойдут. Нельзя также просто взять конфигурацию AWG 2.0 и дописать несколько параметров от AWG 3.0. Сервер и клиент должны поддерживать одну версию протокола.
Готовый файл AWG 3.0 импортируется обычным способом. На главной странице AWG-Manager выберите создание AmneziaWG-туннеля и загрузите .conf либо вставьте его содержимое. После создания включите туннель переключателем.
Если Kernel с модулем AWG 3.x на конкретном Keenetic недоступен, у AWG-Manager есть второй путь через sing-box. Такой вариант особенно полезен для AWG 3.0, поскольку не зависит от поддержки новых параметров штатным WireGuard Keenetic.
Откройте вкладку Sing-box. Если программа ещё не установлена, AWG-Manager покажет кнопку установки. После установки появится раздел WG endpoints. Создайте новый AWG3 endpoint и передайте исходный конфиг. Поддерживаются как JSON-конфигурации AWG 3.0, так и обычные файлы .conf.
Разница двух вариантов выглядит так.
| Вариант | Kernel AWG | AWG3 через sing-box |
|---|---|---|
| Где обрабатывается трафик | модуль amneziawg | процесс sing-box |
| Что требуется | модуль с поддержкой AWG 3.x | установленный sing-box |
| Параметры AWG 3.0 | можно видеть и менять в AWG-Manager | берутся из импортированного конфига |
| Интеграция с Keenetic | туннельный интерфейс | выход маршрутизатора sing-box |
Если нужен обычный VPN-интерфейс с максимально прямой интеграцией в Keenetic, я бы сначала пробовал Kernel. Если главная задача заключается именно в совместимости с конфигом AWG 3.0, а подходящего модуля ядра на роутере нет, вариант с sing-box выглядит практичнее.
Как проверить, что всё действительно работает
Зелёный статус туннеля ещё не доказывает, что пользовательский трафик проходит через него. AWG-Manager содержит отдельный раздел «Инструменты» → «Проверки». Там доступны проверка соединения, проверка внешнего IP и тест пропускной способности.
Я проверял бы настройку в таком порядке.
- Туннель имеет статус
running. - В карточке появляется актуальный handshake.
- Проверка соединения проходит успешно.
- Проверка IP показывает адрес VPN-сервера.
- Для Kernel-туннеля AWG 3.0 в настройках видны
HeaderProtectionKeyи остальные параметры третьей версии.
Если туннель запущен, но внешний IP не меняется, проблема часто связана не с AmneziaWG, а с маршрутизацией. Для отправки всего трафика через соединение откройте редактирование туннеля и включите «Маршрут по умолчанию». Для отдельных устройств и сайтов можно использовать политики и механизмы маршрутизации AWG-Manager.
Если статус становится broken, откройте «Инструменты» → «Журнал» и проверьте endpoint, ключи и параметры конфигурации. Для AWG 3.0 особенно внимательно сравните HeaderProtectionKey с серверным конфигом.
После обновления модуля ядра я бы перезагрузил роутер. AWG-Manager специально проверяет модуль, который уже загружен в память. Новый пакет может лежать на накопителе, пока ядро продолжает использовать старую версию. В таком состоянии секция AWG 3.0 не появится, хотя файлы вроде бы обновлены.
Сам AWG-Manager затем обновляется той же командой, которой устанавливался.
wget -qO- http://repo.hoaxisr.ru/install.sh | shЛибо через OPKG.
opkg update
opkg upgrade awg-managerВ итоге рабочая схема выглядит довольно просто. Ставим WireGuard и OPKG в Keenetic, разворачиваем Entware, устанавливаем AWG-Manager, импортируем конфигурацию и проверяем, чем именно обрабатывается соединение. Для настоящего AWG 3.0 выбираем Kernel только при наличии совместимого модуля 3.x. В остальных случаях используем AWG3 endpoint через sing-box.
Главная ошибка при такой настройке заключается в предположении, что любой импортированный файл AmneziaWG автоматически превращает штатный WireGuard Keenetic в AmneziaWG 3.0. Не превращает. Версию нужно проверять по реально используемому движку и доступным параметрам. Подробности установки и актуальные команды разработчик AWG-Manager поддерживает в своей инструкции, а различия штатной поддержки Keenetic можно сверить с документацией Amnezia.