Роутер

OpenWrt

Установка AmneziaWG на роутер с OpenWrt — весь домашний трафик через Lunaire, без клиентов на каждом устройстве.

Почему не opkg install

AmneziaWG отсутствует в стандартных репозиториях OpenWrt — команда opkg install amneziawg-tools не сработает. Готовые пакеты под все платформы собирает community-репозиторий awg-openwrt (Slava-Shchipunov), установка описана ниже.
1

Узнайте платформу роутера

Подключитесь к роутеру по SSH (адрес по умолчанию — 192.168.1.1) и посмотрите DISTRIB_TARGET — это платформа (target/subtarget), под которую собираются пакеты. Пригодится, если придётся ставить вручную.

bash
ssh root@192.168.1.1
cat /etc/openwrt_release
Вывод cat /etc/openwrt_release: DISTRIB_TARGET='ramips/mt7621' — это и есть платформа роутера.
Вывод cat /etc/openwrt_release: DISTRIB_TARGET='ramips/mt7621' — это и есть платформа роутера.
2

Установите AmneziaWG одной командой

Скрипт сам определит вашу платформу и версию OpenWrt, скачает и установит три нужных пакета: kmod-amneziawg, amneziawg-tools и luci-proto-amneziawg. Ничего выбирать вручную не нужно — в конце скрипт предложит сразу создать интерфейс.

bash
sh <(wget -O - https://raw.githubusercontent.com/Slava-Shchipunov/awg-openwrt/refs/heads/master/amneziawg-install.sh)
Скрипт скачался и определил версию — дальше он подберёт пакеты под платформу автоматически.
Скрипт скачался и определил версию — дальше он подберёт пакеты под платформу автоматически.

Скрипт не качается?

Некоторые провайдеры блокируют raw.githubusercontent.com. В этом случае используйте ручную установку IPK-пакетов — блок «Если скрипт не сработал» ниже.
3

Получите конфиг в боте

Откройте @LunaireVPNBot → Подключить VPN → «У меня роутер». Бот выдаст готовый конфиг AmneziaWG со всеми параметрами обфускации — он понадобится ниже целиком.

Кнопка «У меня роутер» в боте Lunaire.
Кнопка «У меня роутер» в боте Lunaire.
Конфиг AmneziaWG из бота: секции [Interface] и [Peer] с параметрами обфускации Jc/Jmin/Jmax, S1–S2, H1–H4.
Конфиг AmneziaWG из бота: секции [Interface] и [Peer] с параметрами обфускации Jc/Jmin/Jmax, S1–S2, H1–H4.

Дальше — два пути на выбор

Настроить интерфейс можно двумя способами. Проще и надёжнее — прямо в скрипте установки (Путь А): он сам поднимет интерфейс, firewall и маршрутизацию. Если предпочитаете веб-интерфейс — есть Путь Б через LuCI. Достаточно любого одного.

Путь А — через скрипт установки

Рекомендуется · всё автоматически

После установки пакетов скрипт из шага 2 сам спросит, настроить ли интерфейс. Ответьте «да» и по очереди вставьте значения из конфига бота (приватный ключ, адрес, публичный ключ сервера, preshared-ключ, endpoint и параметры обфускации Jc/Jmin/Jmax, S1–S2, H1–H4). Больше ничего делать не нужно.

Firewall и маршрутизация — уже готовы

Скрипт сам создаёт интерфейс awg1, отдельную firewall-зону с masquerade, форвардинг из локальной сети (lan → awg1) и перезапускает сеть. Отдельно настраивать firewall не нужно — переходите сразу к проверке подключения ниже.

Путь Б — вручную через LuCI

Если предпочитаете веб-интерфейс

1

Создайте интерфейс и импортируйте конфиг

Откройте веб-интерфейс роутера: Network → Interfaces → Add new interface. Задайте имя (например, awg) и выберите протокол AmneziaWG VPN.

Протокол AmneziaWG VPN появился в списке после установки пакетов.
Протокол AmneziaWG VPN появился в списке после установки пакетов.

В настройках интерфейса нажмите Load configuration, вставьте конфиг из бота целиком и нажмите Import settings — все поля, включая параметры обфускации, заполнятся сами.

Окно Import configuration: вставьте конфиг из бота и нажмите Import settings.
Окно Import configuration: вставьте конфиг из бота и нажмите Import settings.
2

Назначьте firewall-зону

Откройте вкладку Firewall Settings в настройках интерфейса и назначьте зону wan (или создайте отдельную зону с masquerade и форвардингом из lan). Сохраните Save & Apply и перезапустите интерфейс.

Этот шаг для Пути Б обязателен

Импорт через LuCI заполняет только сам интерфейс, но firewall-зону не создаёт — без неё интерфейс поднимется, а интернет через туннель не пойдёт. (В Пути А зону создаёт скрипт, поэтому там этого шага нет.)
4

Проверьте подключение

На странице Network → Interfaces интерфейс должен подняться: статус UP, счётчики RX/TX растут. Для контрольной проверки выполните по SSH ping и посмотрите внешний IP — он должен совпадать с адресом сервера Lunaire.

Интерфейс поднят: Protocol AmneziaWG VPN, uptime идёт, пакеты ходят.
Интерфейс поднят: Protocol AmneziaWG VPN, uptime идёт, пакеты ходят.
bash
ping -c 3 8.8.8.8
wget -qO- https://ipinfo.io/ip

Если скрипт не сработал — ручная установка IPK

Тот же результат можно получить руками: скачайте три пакета под свою платформу и установите их на роутере.

  1. 1Откройте страницу релизов github.com/Slava-Shchipunov/awg-openwrt/releases и выберите релиз под свою версию OpenWrt (например, v24.10.5).
  2. 2Найдите (Ctrl+F) три файла с вашей платформой в имени — например kmod-amneziawg_…_ramips_mt7621.ipk — и скачайте их на компьютер. Платформу вы узнали на шаге 1.
  3. 3Загрузите пакеты на роутер: через LuCI (System → Software → Upload Package, по одному) или скопируйте по scp и установите через opkg — сначала kmod, затем tools и luci-proto.
bash
opkg install ./kmod-amneziawg_*.ipk
opkg install ./amneziawg-tools_*.ipk
opkg install ./luci-proto-amneziawg_*.ipk
System → Software → Upload Package — загрузка IPK-файлов через LuCI.
System → Software → Upload Package — загрузка IPK-файлов через LuCI.

Если под вашу платформу нет готовых пакетов — это решаемо: форкните репозиторий и запустите GitHub Actions с вашей версией OpenWrt и target/subtarget (сборка занимает 10–15 минут), либо откройте Issue с просьбой добавить платформу. Есть и альтернативные сборки: ValdikSS/awg-openwrt, amnezia-vpn/amneziawg-openwrt и другие форки того же исходника.

После ручной установки пакетов скрипт-мастера настройки уже не будет — интерфейс настраивайте по Пути Б (LuCI), не забыв про firewall-зону.

Решение проблем

Установка падает: kernel mismatch / incompatible architecture

Скачан пакет не под вашу платформу или версию прошивки. Сверьте DISTRIB_TARGET и DISTRIB_RELEASE из шага 1 с именем IPK-файла и релизом на GitHub — они должны совпадать точно.

Интерфейс не поднимается: Unable to modify interface / Invalid argument

Обычно это устаревшие пакеты: kmod-amneziawg и luci-proto-amneziawg должны быть свежими и из одного релиза. Проверьте установленные версии (команда ниже) и при необходимости переустановите свежим install-скриптом.

Интерфейс UP, но интернета нет

Проверьте по порядку: firewall (интерфейс должен быть в зоне wan — шаг 5), MTU (попробуйте понизить до 1280 в настройках интерфейса), DNS (nslookup google.com с роутера) и маршрут по умолчанию через awg-интерфейс (ip route).

RX: 0 B — пакеты уходят, но ничего не приходит

Хендшейк не проходит. Чаще всего конфиг вставлен не целиком — проверьте, что на месте все параметры обфускации (Jc/Jmin/Jmax, S1–S2, H1–H4) и полный PublicKey сервера: без них сервер не ответит. Скопируйте конфиг из бота заново и вставьте ещё раз, ничего не обрезая. Если поля точно все — возможно, провайдер режет Endpoint: напишите в @LunaireCare, подберём другой порт/адрес.

bash
cat /etc/openwrt_release | grep BOARD
opkg list-installed | grep amneziawg
logread | grep -i amnezia | tail -n 30

Не получилось — напишите нам

Telegram: @LunaireCare. Пришлите модель роутера и версию OpenWrt, вывод трёх команд ниже и шаг, на котором остановились, — разберём по логам и ответим в течение дня.

Требования

  • Версия OpenWrt, под которую есть релиз в awg-openwrt (актуальные ветки 21.02–24.10 покрыты)
  • Минимум 16 МБ flash / 128 МБ RAM
  • SSH-доступ к роутеру и доступ в LuCI