Выполняйте шаги последовательно и сохраняйте резервную копию. Названия пунктов могут незначительно отличаться в разных версиях прошивки.
Какие модели ASUS подходят
Merlin поддерживает не всю линейку ASUS, а только роутеры на чипах Broadcom с достаточным объёмом флеш-памяти и оперативной памяти. Это модели серий RT-AC68U, RT-AC86U, RT-AX55, RT-AX56U, RT-AX68U, RT-AX86U, RT-AX88U и более новые флагманы вроде GT-AX11000. Чем мощнее процессор, тем комфортнее будет работать шифрование AmneziaWG без просадки скорости интернета, особенно на тарифах от 300 Мбит/с и выше.
Перед установкой стоит свериться с официальным списком поддерживаемых устройств на сайте Merlin, потому что для разных чипов существуют разные ветки прошивки: одна для Broadcom ARM, другая для MediaTek (например, для линейки RT-AX где используется MTK, действует форк Merlin-MTK от энтузиастов). На MediaTek-моделях набор пакетов Entware несколько уже, но AmneziaWG собирается и там.
Если роутер уже используется как основной в квартире, рекомендуется сначала протестировать связку на запасном устройстве или хотя бы сохранить резервную копию текущих настроек через веб-интерфейс перед перепрошивкой. Откат с Merlin на заводскую прошивку возможен, но иногда требует полного сброса настроек.
Установка Merlin и Entware
Сначала скачивается прошивка Merlin, соответствующая точной модели роутера, с официального сайта проекта. Прошивка заливается через тот же раздел веб-интерфейса, что и обычное обновление firmware ASUS — раздел «Администрирование» → «Обновление микропрограммы». После перепрошивки рекомендуется сделать сброс к заводским настройкам и заново настроить интернет-подключение вручную, не восстанавливая старый бэкап, чтобы избежать конфликтов формата настроек.
После входа в новую прошивку нужно включить SSH-доступ (Администрирование → Система → «Включить SSH» на LAN, а лучше временно и на WAN для первичной настройки, если делаете это удалённо). Также в разделе «Администрирование → Система» включается опция JFFS custom scripts and configs — без неё скрипты автозапуска не будут сохраняться после перезагрузки.
Далее по SSH подключаемся к роутеру и запускаем встроенный установщик Entware командой amtm (Asuswrt-Merlin Terminal Menu). В меню выбирается пункт установки Entware на подключённый USB-накопитель — это обязательное условие, потому что внутренней флеш-памяти роутера для полноценного пакетного менеджера не хватает. Подойдёт флешка от 1 ГБ, отформатированная в ext4.
- 1Скачать прошивку Merlin для точной модели роутера с официального сайта
- 2Прошить роутер через веб-интерфейс и выполнить сброс настроек
- 3Включить SSH и опцию JFFS custom scripts and configs
- 4Подключить USB-флешку, отформатированную в ext4
- 5Запустить amtm по SSH и выбрать установку Entware
Нужны параметры без ручного подбора?
Получите готовый профиль для своего роутера — ключи, endpoint и параметры обфускации уже заполнены.
Получить готовую конфигурациюУстановка amneziawg-go и утилит
После установки Entware становится доступна команда opkg — аналог apt в Debian. Через неё устанавливаются базовые пакеты: wireguard-tools для утилиты wg, а также компилятор amneziawg-go, реализующего обфусцированный протокол в пространстве пользователя (userspace), поскольку ядро прошивки ASUS не содержит модуля awg на уровне kernel.
Официальные бинарники amneziawg-go под архитектуру ARM или MIPS роутера ASUS не всегда есть в репозитории Entware, поэтому часто их собирают вручную через кросс-компиляцию на ПК с Go либо берут готовые сборки из сообщества Amnezia на GitHub. Скачанный бинарник копируется на роутер в каталог /opt/sbin и делается исполняемым командой chmod +x.
Важно проверить архитектуру процессора роутера командой uname -m перед скачиванием бинарника: ARMv7, ARMv8 (aarch64) и MIPS требуют разных сборок. Ошибка в архитектуре — самая частая причина того, что интерфейс awg0 не поднимается и в логах появляется сообщение об ошибке exec format error.
- 1Обновить список пакетов: opkg update
- 2Установить wireguard-tools: opkg install wireguard-tools
- 3Определить архитектуру: uname -m
- 4Скачать подходящий бинарник amneziawg-go и поместить в /opt/sbin
- 5Выдать права на исполнение: chmod +x /opt/sbin/amneziawg-go
opkg update
opkg install wireguard-tools kmod-wireguard
uname -m
curl -L -o /opt/sbin/amneziawg-go https://example.com/awg/amneziawg-go-armv7
chmod +x /opt/sbin/amneziawg-goНастройка конфигурации через wg-quick
Конфигурационный файл AmneziaWG размещается в каталоге /opt/etc/amnezia/ (создайте его при необходимости) под именем awg0.conf. В секции Interface указываются приватный ключ, адрес интерфейса и параметры обфускации Jc, Jmin, Jmax, S1, S2, H1-H4 — именно они отличают AmneziaWG от классического WireGuard и делают трафик менее заметным для систем DPI.
В секции Peer прописываются публичный ключ сервера, endpoint (адрес и порт) и AllowedIPs. Если нужно направить через туннель весь трафик роутера, указывается 0.0.0.0/0, если только часть сетей — конкретные подсети. Значение PersistentKeepalive в 25 секунд рекомендуется оставлять включённым, чтобы соединение не разрывалось при использовании NAT на стороне провайдера.
Поднять интерфейс можно командой wg-quick up awg0, если утилита wg-quick корректно распознаёт бинарник amneziawg-go через переменную окружения WG_QUICK_USERSPACE_IMPLEMENTATION. Для роутеров без встроенного модуля ядра wireguard это обязательный шаг — иначе wg-quick попытается создать интерфейс через kernel-модуль, которого просто нет в прошивке Merlin.
# /opt/etc/amnezia/awg0.conf
[Interface]
PrivateKey = <ключ_клиента>
Address = 10.8.0.2/32
Jc = 4
Jmin = 40
Jmax = 70
S1 = 50
S2 = 100
H1 = 1
H2 = 2
H3 = 3
H4 = 4
[Peer]
PublicKey = <ключ_сервера>
Endpoint = <адрес_сервера>:51820
AllowedIPs = 0.0.0.0/0
PersistentKeepalive = 25Значения Jc/Jmin/Jmax/S1/S2/H1-H4 должны полностью совпадать на клиенте и сервере, иначе handshake не установится.
Автозапуск туннеля при загрузке роутера
Merlin поддерживает пользовательские скрипты, которые выполняются на определённых этапах загрузки системы. Для запуска AmneziaWG используется скрипт services-start, который выполняется после инициализации сетевых служб, — это важно, потому что более ранние хуки (например, init-start) выполняются до того, как смонтирован раздел Entware на USB-накопителе.
Скрипт должен экспортировать переменную окружения для userspace-реализации, дождаться готовности файловой системы Entware (можно добавить небольшую задержку sleep) и только после этого вызывать wg-quick up awg0. Также рекомендуется добавить обработку остановки через services-stop, чтобы при перезагрузке или выключении роутера туннель корректно закрывался и не оставлял висящих маршрутов.
После создания скриптов их нужно сделать исполняемыми и поместить в каталог /jffs/scripts/. Если веб-интерфейс не показывает изменения сразу, поможет полная перезагрузка роутера — только на ней применяются хуки services-start в правильном порядке относительно монтирования USB.
- 1Создать файл /jffs/scripts/services-start
- 2Добавить в него export WG_QUICK_USERSPACE_IMPLEMENTATION=amneziawg-go
- 3Добавить sleep 10 для ожидания монтирования Entware
- 4Добавить команду /opt/bin/wg-quick up awg0
- 5Сделать файл исполняемым: chmod +x /jffs/scripts/services-start
#!/bin/sh
sleep 10
export WG_QUICK_USERSPACE_IMPLEMENTATION=/opt/sbin/amneziawg-go
/opt/bin/wg-quick up awg0Получить готовый конфиг
Если не хотите собирать профиль вручную, возьмите готовую конфигурацию и продолжайте инструкцию с шага импорта.
Получить готовую конфигурациюPolicy routing: VPN только для отдельных устройств
Не всегда нужно заворачивать в туннель весь трафик домашней сети — часто требуется, чтобы через AmneziaWG ходили только конкретные устройства, например рабочий ноутбук или телевизор, а остальные клиенты выходили в интернет напрямую. Для этого на Merlin используется связка iptables и ip rule, которая маркирует пакеты от определённых MAC- или IP-адресов и направляет их в отдельную таблицу маршрутизации, где шлюзом по умолчанию выступает интерфейс awg0.
Создаётся отдельная таблица маршрутизации в /etc/iproute2/rt_tables (либо используется свободный номер таблицы прямо в командах ip rule без правки файла), затем добавляется маршрут по умолчанию через awg0 только в этой таблице. Правило ip rule add from <IP_устройства> table <номер> заставляет ядро смотреть маршруты для пакетов с этим source-адресом именно в новой таблице.
Такой подход удобен тем, что легко обратим: достаточно удалить правило ip rule, чтобы вернуть устройство на обычный маршрут через провайдера, без перезапуска всего туннеля. Скрипты с такими правилами также стоит вызывать из services-start после поднятия интерфейса awg0.
- 1Определить IP-адреса устройств, которым нужен VPN (лучше закрепить их через DHCP-резервацию)
- 2Добавить маршрут по умолчанию через awg0 в отдельную таблицу маршрутизации
- 3Добавить правило ip rule from <IP> table <номер> для каждого устройства
- 4Проверить работу через traceroute с целевого устройства
- 5При необходимости отката — удалить соответствующее правило ip rule
Мониторинг соединения и диагностика
Проверить состояние туннеля можно командой wg show awg0 — она покажет последний handshake, объём переданных данных и статус пира. Если handshake не обновляется дольше двух-трёх минут при активном PersistentKeepalive, вероятная причина — блокировка UDP-порта на стороне провайдера или неверные параметры обфускации.
Для диагностики скорости полезно временно выключить обфускацию (оставить только базовый WireGuard) и сравнить результат: если скорость восстанавливается, проблема на стороне DPI-фильтрации оператора, и нужно подбирать параметры Jc/Jmin/Jmax под конкретного провайдера. Логи Entware-пакетов можно просматривать через logread, а состояние сетевых интерфейсов — через ifconfig awg0.
Отдельное внимание стоит уделить нагрузке на процессор: на слабых моделях вроде RT-AC68U userspace-реализация amneziawg-go может заметно нагружать CPU при скоростях выше 100-150 Мбит/с, поскольку шифрование не ускоряется аппаратно, как это происходит в некоторых нативных модулях ядра.
Обновления прошивки и обслуживание
Обновление Merlin до новой версии сбрасывает раздел JFFS не всегда, но лучше заранее делать резервную копию скриптов и конфигурации AmneziaWG на компьютер, поскольку иногда мажорные обновления требуют полного сброса настроек. USB-накопитель с Entware при этом обычно не затрагивается, и после обновления прошивки достаточно заново прописать переменные окружения, если что-то было настроено вручную через веб-интерфейс.
Пакеты Entware стоит периодически обновлять командой opkg upgrade, но делать это осознанно: если после обновления wireguard-tools или сопутствующих библиотек туннель перестал подниматься, полезно временно закрепить рабочую версию пакета через opkg с флагом --nodeps или откатиться на сохранённый .ipk файл.
Раз в несколько месяцев рекомендуется также обновлять сам бинарник amneziawg-go, поскольку разработчики регулярно улучшают устойчивость протокола к новым методам DPI-анализа. Обновлённый бинарник просто заменяет старый файл в /opt/sbin, после чего требуется перезапуск интерфейса командами wg-quick down awg0 и wg-quick up awg0.
Частые вопросы
Готовы подключить роутер?
Возьмите готовую конфигурацию и используйте эту инструкцию для установки и проверки.
Получить готовую конфигурациюПродолжите настройку
Все руководства — настройка роутеров, MTU, DNS и устройств.