Настройка WireGuard на OpenWrt: интерфейс, peer и firewall

8 min read 0 views Обновлено

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

Ниже — рабочая последовательность настройки: какие пакеты нужны, как создать интерфейс и peer, как правильно оформить зону firewall с NAT и MSS-фиксом, чтобы туннель поднимался и интернет реально работал.

Что понадобится перед началом

OpenWrt версии 21.02 и новее (подойдут и форки — ImmortalWrt, Padavan с opkg, GL.iNet на базе OpenWrt). Нужен доступ в LuCI или по SSH под root и минимум 2–3 МБ свободного места во flash под пакеты.

Также нужен готовый конфиг: приватный ключ, внутренний адрес вида 10.8.0.x/32, публичный ключ сервера, адрес endpoint с портом и MTU. В личном кабинете FuryNet эти значения выдаются сразу, отдельным блоком для OpenWrt.

01

Проверьте версию прошивки

System → Software или команда `cat /etc/openwrt_release`. На версиях ниже 21.02 пакеты WireGuard приходится собирать вручную.

02

Освободите место

Если flash забит, удалите неиспользуемые пакеты: `opkg list-installed` и `opkg remove <пакет>`. Для WireGuard достаточно нескольких мегабайт.

03

Подготовьте параметры

Приватный ключ, адрес в туннеле, публичный ключ сервера, endpoint (хост:порт), MTU 1240 и AllowedIPs 0.0.0.0/0.

Шаг 1. Установка пакетов WireGuard

WireGuard в OpenWrt состоит из модуля ядра и утилит управления. Для настройки через веб-интерфейс дополнительно ставится модуль LuCI.

Обновите список пакетов и установите всё одной командой — после установки перезагрузка не требуется.

01

Подключитесь по SSH

`ssh root@192.168.1.1` — адрес роутера может отличаться, посмотрите шлюз своей сети.

02

Обновите репозиторий

`opkg update` — без этого установка завершится ошибкой «unknown package».

03

Поставьте пакеты

`opkg install wireguard-tools kmod-wireguard luci-proto-wireguard` — последний пакет добавляет WireGuard в список протоколов LuCI.

Шаг 2. Интерфейс и peer через UCI

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

Интерфейс называем furynet, MTU выставляем 1240 — это ключевой параметр для российских сетей: при 1420 туннель поднимется, но крупные страницы и видео будут «залипать».

01

Создайте интерфейс

`uci set network.furynet=interface`, затем `uci set network.furynet.proto='wireguard'`, `uci set network.furynet.private_key='<ваш ключ>'`, `uci set network.furynet.mtu='1240'`, `uci add_list network.furynet.addresses='10.8.0.x/32'`.

02

Добавьте peer

`uci add network wireguard_furynet` и далее public_key сервера, endpoint_host, endpoint_port='443', allowed_ips='0.0.0.0/0', persistent_keepalive='25', route_allowed_ips='1'.

03

Примените настройки

`uci commit network` и `/etc/init.d/network reload` — интерфейс поднимется без перезагрузки роутера.

Шаг 3. Firewall: зона, NAT и MSS-фикс

Без правильной зоны firewall туннель поднимется, рукопожатие пройдёт, а интернета у клиентов не будет — трафик из LAN просто не попадёт в туннель.

Нужна отдельная зона с masquerade (NAT) и включённым mtu_fix: он подрезает MSS у TCP-пакетов и лечит классическую ситуацию «сайты открываются наполовину».

01

Создайте зону

`uci add firewall zone` с name='furynet', input='REJECT', output='ACCEPT', forward='REJECT', masq='1', mtu_fix='1', network='furynet'.

02

Разрешите форвардинг из LAN

`uci add firewall forwarding` с src='lan' и dest='furynet' — именно это правило пускает домашние устройства в туннель.

03

Примените

`uci commit firewall` и `/etc/init.d/firewall restart`.

Шаг 4. Проверка туннеля

Первым делом смотрим рукопожатие. Если latest handshake пустой — проблема в endpoint, порте или ключах. Если рукопожатие есть, но счётчик приёма нулевой — трафик режется по пути, стоит сменить порт.

01

Статус интерфейса

`wg show furynet` — должны быть latest handshake и растущие transfer rx/tx.

02

Проверка маршрута

`ping -c 3 1.1.1.1` с роутера, затем `traceroute 1.1.1.1` — первый хоп должен быть адресом туннеля.

03

Проверка с клиента

С любого устройства домашней сети откройте сайт проверки IP — он должен показать адрес виртуального сервера.

Готовый скрипт вместо ручной настройки

В личном кабинете FuryNet мастер настройки роутера отдельно выдаёт формат для OpenWrt: готовый UCI-скрипт .sh, где уже подставлены ваши ключи, адрес, MTU 1240 и порт 8473/UDP.

Скрипт ставит пакеты, создаёт интерфейс и peer, оформляет зону firewall с NAT и MSS-фиксом. Он идемпотентен: повторный запуск безопасен и просто приводит конфигурацию к нужному виду.

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

Чем OpenWrt лучше заводской прошивки для WireGuard?

В OpenWrt WireGuard работает в ядре и настраивается полностью: MTU, MSS-фикс, отдельная зона firewall, раздельная маршрутизация. На заводских прошивках TP-Link и D-Link этих настроек нет, поэтому туннель либо отсутствует, либо работает нестабильно.

Какой MTU ставить на OpenWrt?

1240. Это универсальное значение для российских сетей: при более высоких значениях пакеты фрагментируются и часть сайтов не открывается. Дополнительно включите mtu_fix в зоне firewall.

Почему порт 8473/UDP, а не 51820?

Стандартный порт WireGuard часто фильтруется оборудованием провайдера. FuryNet выдаёт endpoint на 8473/UDP — он выглядит как обычный веб-трафик и проходит стабильнее. Резервные порты — 1194, 500 и 4500.

Настройка через LuCI или через SSH?

Результат одинаковый, но SSH-скрипт быстрее и не зависит от версии LuCI. Через веб-интерфейс удобнее, если вы хотите видеть каждый параметр перед применением.

Можно ли пустить в туннель только часть устройств?

Да. Вместо forwarding из всей зоны lan создаётся правило для конкретных IP или отдельная гостевая сеть, которая ходит через furynet, тогда как остальная LAN идёт напрямую.

Скрипт можно запускать повторно?

Да, он идемпотентен: перезаписывает значения интерфейса и peer, не плодя дубликаты. Это удобно при перевыпуске конфигурации.

Начните сейчас

Готовый скрипт для OpenWrt

Мастер в кабинете соберёт UCI-скрипт под ваш роутер: пакеты, интерфейс, peer и firewall с NAT — одна вставка в SSH.

Получить конфиг для OpenWrt

Оценка гайда

Инструкция помогла?

Оцените материал одним кликом. Это помогает нам обновлять инструкции.

Поделиться

Отправьте инструкцию другу

Пригодится тем, кто настраивает роутер или ищет рабочее решение.

Вопросы и обсуждение

Пока нет ответов

Конфиг для роутера без ручной настройки

Получить конфиг