Muhomor VPNМухомор VPN
  1. Главная
  2. Справочник VPN
  3. Инструкции по настройке
  4. Как настроить WireGuard на OpenWrt

Как настроить WireGuard на OpenWrt

Клиент WireGuard на OpenWrt поднимается прямо в веб-интерфейсе LuCI: поставьте пакеты wireguard-tools и luci-proto-wireguard, создайте интерфейс с протоколом WireGuard VPN, перенесите ключи из конфига, добавьте peer и назначьте зону firewall.

Обновлено 11 сентября 2026 · 9 мин чтения · Инструкции по настройке

Что понадобится перед настройкой

OpenWrt интересен тем, что превращает почти любой роутер в полноценный маршрутизатор с прозрачными настройками. WireGuard здесь поддерживается штатно: модуль ядра лежит в репозитории, а веб-интерфейс LuCI получает отдельный протокол, в котором туннель настраивается мышкой, без единой команды в консоли. На этой же связке работают многие готовые устройства — например, роутеры GL.iNet построены на OpenWrt, и под их фирменной оболочкой доступен обычный LuCI.

Понадобятся три вещи. Первая — актуальная сборка OpenWrt (подойдёт любая современная стабильная ветка). Вторая — немного свободного места во флеш-памяти: пакеты WireGuard весят меньше мегабайта, но на старых роутерах с 8 МБ флеша свободного пространства может не остаться, и тогда нужен образ, собранный под свои нужды. Третья — файл конфигурации .conf с ключами и адресом сервера.

Конфиг для роутера выпускайте отдельный, не тот, что уже работает на телефоне: одна пара ключей рассчитана на одно устройство, иначе сервер будет видеть два источника с одним ключом и обрывать соединение обоим. В Muhomor VPN на доступе выпускается до пяти конфигов, роутеру отводится собственный профиль. Оформить пробный доступ на 3 дня можно на главной странице — нужен только e-mail. Что означает каждая строка файла, разобрано в материале разбор конфига WireGuard.

Откройте файл в любом текстовом редакторе и держите его перед глазами: значения из него мы будем переносить в поля LuCI.

Шаг 1. Устанавливаем пакеты

Из коробки OpenWrt не умеет ни поднимать WireGuard, ни показывать его в LuCI. Нужны два пакета: wireguard-tools (тянет за собой модуль ядра kmod-wireguard) и luci-proto-wireguard — именно он добавляет протокол в веб-интерфейс.

Через веб-интерфейс: откройте System → Software, нажмите Update lists, затем в поле поиска по очереди найдите и установите оба пакета.

Через SSH это одна строка:

opkg update && opkg install wireguard-tools luci-proto-wireguard

В самых свежих ветках OpenWrt пакетный менеджер заменён на apk — команда установки отличается названием утилиты, набор пакетов тот же. Если не уверены, что стоит на вашем роутере, просто воспользуйтесь разделом Software в LuCI: он одинаково работает в обоих случаях.

После установки перезагрузите роутер или хотя бы обновите страницу LuCI с очисткой кеша: новый протокол появляется в списке не сразу. Признак успеха — при создании интерфейса в выпадающем списке протоколов есть пункт WireGuard VPN. Если его нет, пакет luci-proto-wireguard не установился (чаще всего из-за нехватки места) — проверьте свободную память на странице Status → Overview.

Шаг 2. Создаём интерфейс WireGuard VPN в LuCI

Теперь собственно туннель.

  1. Откройте Network → Interfaces и нажмите Add new interface…
  2. Задайте имя, например wg0 (только латиница, без пробелов и дефисов), в списке Protocol выберите WireGuard VPN и подтвердите создание.
  3. На вкладке General Settings заполните поля из секции [Interface] вашего конфига: в Private Key вставьте значение PrivateKey, в IP Addresses — значение Address вместе с маской, например 10.8.0.2/32. Поле Listen Port для клиента можно оставить пустым: исходящее соединение роутер инициирует сам.
  4. На вкладке Advanced Settings проверьте MTU. Штатное значение для WireGuard — 1420.

В свежих сборках LuCI на вкладке Peers есть кнопка импорта конфигурации: туда можно вставить текст файла целиком, и поля заполнятся сами. Если такой кнопки в вашей версии нет, ничего страшного — значений всего пять, и вводятся они за минуту.

Пока не сохраняйте настройки: нам ещё нужны peer и зона firewall, а без них интерфейс поднимется, но трафика не увидит.

Небольшая, но важная деталь про поле IP Addresses: маска /32 в конфигах WireGuard встречается чаще всего, потому что сервер выдаёт клиенту ровно один адрес, а маршруты описываются через Allowed IPs, а не через подсеть. Переносите значение ровно так, как оно записано в файле, и не пытайтесь «исправить» маску на /24 — это приведёт к лишним маршрутам и странному поведению при диагностике.

Шаг 3. Добавляем peer и Route Allowed IPs

Перейдите на вкладку Peers и нажмите Add peer. Здесь описывается удалённая сторона — значения берутся из секции [Peer] конфига.

  • Description — произвольное имя, например Muhomor. Нужно только для удобства.
  • Public Key — PublicKey сервера. Это ключ удалённой стороны, не ваш.
  • Preshared Key — заполняется, только если строка PresharedKey есть в конфиге. Если её нет, поле оставьте пустым.
  • Allowed IPs — значение AllowedIPs. 0.0.0.0/0 означает «весь трафик в туннель»; перечень конкретных подсетей — профиль с раздельной маршрутизацией.
  • Route Allowed IPs — ключевая галочка. Она заставляет OpenWrt создать маршруты для перечисленных сетей. Без неё интерфейс поднимется и рукопожатие пройдёт, но трафик продолжит уходить через провайдера.
  • Endpoint Host и Endpoint Port — две половинки строки Endpoint, разделённые двоеточием: слева хост или IP, справа UDP-порт.
  • Persistent Keep Alive — поставьте 25, если роутер стоит за NAT провайдера. Без периодических пакетов трансляция на стороне оператора «протухает», и туннель оживает только при вашей активности.

Про сам подход, при котором часть трафика идёт напрямую, полезно прочитать материал что такое split tunneling: он объясняет, почему 0.0.0.0/0 нужен не всегда.

Приятная деталь: при включённой галочке Route Allowed IPs OpenWrt сам добавляет отдельный маршрут до адреса сервера через провайдерский шлюз. Благодаря этому пакеты самого туннеля не заворачиваются внутрь себя — ошибка, на которой спотыкаются при ручной настройке маршрутов.

Шаг 4. Зона firewall и форвардинг

OpenWrt не пропустит трафик между локальной сетью и новым интерфейсом, пока тот не попадёт в какую-нибудь зону межсетевого экрана. Вариантов два.

Простой: добавить wg0 в зону wan

Откройте настройки интерфейса, вкладку Firewall Settings, и выберите зону wan. В ней уже включён masquerading и уже разрешён форвардинг из lan, поэтому больше ничего настраивать не нужно. Этот способ рекомендует и сама документация проекта — он экономит время и не создаёт лишних правил.

Аккуратный: отдельная зона

Если хочется отделить туннель от провайдерского канала и управлять правилами независимо, создайте новую зону на странице Network → Firewall → Zones: назовите её, скажем, vpn, поставьте Input и Forward в reject, Output в accept, обязательно включите Masquerading и в поле Allow forward from source zones укажите lan. Затем на вкладке Firewall Settings интерфейса выберите эту зону.

Отдельная зона удобна, когда через роутер ходят разные группы устройств и правила для них отличаются. Для домашней сети, где туннелем пользуются все, достаточно первого варианта. Сохраните настройки и нажмите Save & Apply.

Шаг 5. Проверка и DNS

Основной индикатор в LuCI — страница Status → WireGuard: там видно время последнего рукопожатия, объём принятых и отправленных данных и адрес, с которого приходят пакеты. Свежее рукопожатие означает, что ключи совпали и шифрованный канал работает. То же самое в консоли показывает команда wg show.

Дальше проверьте три вещи:

  1. Маршруты. На странице Status → Routes должен появиться маршрут по умолчанию через wg0. Если его нет, вернитесь к галочке Route Allowed IPs.
  2. Внешний адрес. С любого устройства локальной сети откройте сервис определения IP — адрес должен отличаться от провайдерского.
  3. DNS. По умолчанию роутер продолжит спрашивать имена у DNS-серверов провайдера. Чтобы запросы шли через туннель, в настройках интерфейса wg0 укажите сервер из строки DNS вашего конфига, а на WAN-интерфейсе снимите галочку использования DNS, полученных от провайдера. Как убедиться в результате, описано в статье проверка утечек DNS и IP.

Устройствам локальной сети ничего настраивать не нужно: телевизор, приставка и умная колонка получают маршрут от роутера автоматически.

Ещё один практичный шаг после проверки — убедиться, что туннель поднимается сам после перезагрузки. Просто перезагрузите роутер и через пару минут снова откройте Status → WireGuard. Если рукопожатие появилось без вашего участия, настройка закончена: дальше роутер живёт своей жизнью, а новые устройства в домашней сети получают шифрованный маршрут сразу при подключении к Wi-Fi.

MTU и производительность

Если лёгкие страницы открываются, а тяжёлые сайты и загрузки зависают на середине, дело почти всегда в MTU: пакет вместе с заголовками WireGuard не помещается в канал, а сигнал о фрагментации до отправителя не доходит. Штатные 1420 подходят большинству проводных подключений; для PPPoE и мобильных модемов значение нужно снижать шагами по 20 байт — 1400, 1380, 1360 — и после каждого шага проверять проблемный сайт.

Второе узкое место — процессор. WireGuard экономичен, но шифрование всё равно считается на CPU, и бюджетный роутер на слабом чипе становится ограничителем: на устройствах без аппаратного ускорения криптографии пропускная способность туннеля заметно ниже той, что роутер выдаёт без него. Проверить, упирается ли всё именно в железо, просто: посмотрите загрузку процессора на странице Status → Overview во время скачивания большого файла. Если одно ядро постоянно занято на сто процентов — это потолок устройства, и лечится он только заменой роутера.

Аппаратное ускорение NAT (flow offloading) на трафик внутри туннеля не распространяется, поэтому включать его ради скорости WireGuard бесполезно. Сравнение сценариев «туннель на роутере» и «туннель на каждом устройстве» — в материале VPN на роутере или на устройстве.

Типичные ошибки на OpenWrt

Собрал то, с чем чаще всего сталкиваются при настройке WireGuard в LuCI.

СимптомЧто проверить
В списке протоколов нет WireGuard VPNНе установлен luci-proto-wireguard или не хватило места во флеш-памяти. Установите пакет и перезагрузите роутер.
Рукопожатия нет вообщеПерепутаны ключи: в Private Key должен быть ваш PrivateKey, в Public Key — ключ сервера. Проверьте также Endpoint Port и то, что исходящий UDP не фильтруется вышестоящим оборудованием.
Туннель поднят, трафик идёт мимоНе включена галочка Route Allowed IPs либо интерфейс не добавлен ни в одну зону firewall.
Маршрут по умолчанию не появляетсяЗагляните в /etc/config/network и проверьте, не выставлена ли у интерфейса опция nohostroute — она отключает создание маршрутов.
Из локальной сети интернета нет, с роутера естьНе включён masquerading в зоне туннеля или не разрешён форвардинг из lan.
Соединение периодически замираетРоутер за NAT провайдера без keepalive. Поставьте Persistent Keep Alive равным 25.
Часть сайтов открывается наполовинуMTU. Снижайте значение шагами по 20 байт и проверяйте после каждого шага.

Если ничего не помогло, соберите вывод wg show, версию OpenWrt и модель роутера — с этим набором разбор занимает пару сообщений. Общая диагностика собрана в статье WireGuard не подключается; поддержка Muhomor VPN отвечает в Telegram-боте @muhomorvpn_bot и на почте vpn@muhomorvpn.ru. Полное руководство по протоколу есть и в вики OpenWrt.

Попробуйте Muhomor VPN — 3 дня бесплатно

WireGuard-конфиг придёт на e-mail за минуту. Без карты и автосписаний, до 5 устройств на одном доступе.

30 дней — 320 ₽60 дней — 610 ₽90 дней — 899 ₽оплата через Robokassa
Получить пробный доступ

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

Какие пакеты нужны для WireGuard на OpenWrt?

Достаточно установить wireguard-tools и luci-proto-wireguard. Первый тянет за собой модуль ядра, второй добавляет протокол WireGuard VPN в веб-интерфейс LuCI.

Зачем нужна галочка Route Allowed IPs?

Она создаёт маршруты для сетей из поля Allowed IPs. Без неё туннель поднимется и рукопожатие пройдёт, но трафик по-прежнему будет уходить через провайдера.

В какую зону firewall добавить интерфейс WireGuard?

Проще всего в зону wan — в ней уже включён masquerading и разрешён форвардинг из lan. Для более тонких правил создайте отдельную зону с теми же настройками.

Подойдёт ли инструкция для роутеров GL.iNet?

Да, они построены на OpenWrt, и под фирменной оболочкой доступен обычный LuCI. Настройка выполняется теми же шагами через Network → Interfaces.

Можно ли импортировать файл .conf целиком?

В свежих сборках LuCI на вкладке Peers есть импорт конфигурации: текст файла вставляется целиком, и поля заполняются сами. В старых версиях значения переносятся вручную.

Нужно ли настраивать что-то на домашних устройствах?

Нет. Телефоны, телевизоры и приставки получают маршрут от роутера автоматически, никаких приложений на них ставить не требуется.