MikroTik · RouterOS v7
17 минут чтения

MikroTik RouterOS v7: поднимаем WireGuard туннель для домашней сети

Собираем понятную и воспроизводимую конфигурацию WireGuard для RouterOS v7 и учимся отделять трафик отдельных домашних устройств от общего интернета. Все команды можно вставлять в Terminal блоками, проверяя результат после каждого этапа, а не выполнять всё разом вслепую. Такой подход экономит время при диагностике: если что-то пошло не так, вы сразу знаете, на каком шаге искать ошибку. Инструкция рассчитана на роутеры MikroTik с RouterOS 7.x, где WireGuard встроен в ядро системы и не требует установки дополнительных пакетов.

Получить готовую конфигурацию

Выполняйте шаги последовательно и сохраняйте резервную копию. Названия пунктов могут незначительно отличаться в разных версиях прошивки.

ШАГ 01

Подготовка RouterOS перед настройкой

Прежде чем создавать интерфейсы и добавлять peer-ов, стоит привести роутер в предсказуемое состояние. Обновите RouterOS до актуальной стабильной версии — WireGuard в ранних релизах седьмой ветки работал нестабильно, а часть багов с производительностью и утечками памяти исправили только в поздних сборках. Проверяйте канал обновлений: для домашнего использования выбирайте stable, а не testing или development, потому что тестовые ветки чаще ломают уже работающие сценарии.

Перед любыми изменениями сделайте экспорт текущей конфигурации без чувствительных данных — это позволит быстро сравнить состояние роутера до и после и откатиться при необходимости. Дополнительно сохраните полный бэкап через System → Backup, который в отличие от export содержит бинарный снимок всех настроек, включая пользователей и сертификаты.

Ещё один важный подготовительный шаг — зафиксировать IP-адреса ключевых домашних устройств через статические DHCP-lease. Если адрес телевизора, консоли или рабочего компьютера может измениться при перезагрузке, все последующие правила policy routing и firewall станут ненадёжными. Откройте IP → DHCP Server → Leases и переведите нужные записи в статический режим.

Наконец, проверьте точное время на роутере: рассинхронизация часов иногда приводит к странному поведению туннеля и сертификатов на других сервисах. Синхронизируйте время через NTP-клиент, встроенный в RouterOS, прежде чем переходить к следующему шагу.

CONFIG / TERMINAL
/system package update check-for-updates
/system package update install
/export hide-sensitive file=before-wireguard
/system backup save name=before-wireguard
/system clock print
/system ntp client set enabled=yes servers=pool.ntp.org

Не выполняйте обновление и настройку туннеля удалённо без резервного канала доступа: при ошибке в firewall можно потерять управление роутером.

ШАГ 02

Создание интерфейса и добавление peer

В RouterOS v7 WireGuard представлен как отдельный тип интерфейса, а не отдельный пакет, поэтому настройка укладывается в несколько команд. Сначала создаётся сам интерфейс с приватным ключом и MTU, затем к нему привязывается один или несколько peer — удалённых серверов или клиентов, с которыми интерфейс должен обмениваться трафиком.

Приватный ключ вводится только в сам интерфейс, а публичный ключ удалённой стороны — только в описание peer. Это разделение иногда путает новичков, привыкших к единому конфигурационному файлу WireGuard, но по сути делает то же самое, просто через две отдельные сущности RouterOS.

Обратите внимание на параметр persistent-keepalive: для клиента за NAT провайдера значение 25 секунд обычно оптимально — оно достаточно частое, чтобы удерживать отображение порта на NAT-устройствах между роутером и сервером, но не создаёт заметной лишней нагрузки на канал.

  1. 1Создайте интерфейс wireguard с приватным ключом и MTU 1380.
  2. 2Назначьте интерфейсу IP-адрес из выданного профиля.
  3. 3Добавьте peer с публичным ключом сервера и endpoint.
  4. 4Укажите allowed-address 0.0.0.0/0 для полного туннеля.
  5. 5Включите persistent-keepalive 25 секунд для стабильности за NAT.
CONFIG / TERMINAL
/interface wireguard add name=wg-home mtu=1380 private-key="<PRIVATE_KEY>"
/ip address add address=10.8.0.2/32 interface=wg-home
/interface wireguard peers add interface=wg-home public-key="<SERVER_PUBLIC_KEY>" endpoint-address=<SERVER_HOST> endpoint-port=51820 allowed-address=0.0.0.0/0 persistent-keepalive=25

Нужны параметры без ручного подбора?

Получите готовый профиль для своего роутера — ключи, endpoint и параметры обфускации уже заполнены.

Получить готовую конфигурацию
ШАГ 03

Маршрут для всего дома или отдельная таблица

Есть два принципиально разных сценария использования туннеля. В первом весь трафик домашней сети идёт через VPN — тогда достаточно добавить обычный маршрут по умолчанию через интерфейс wg-home. Во втором сценарии через туннель должны ходить только избранные устройства, а остальная сеть работает напрямую через провайдера — для этого нужна отдельная таблица маршрутизации и правила routing rule.

Второй подход надёжнее для домашних сетей смешанного назначения: например, рабочий ноутбук и умные колонки лучше держать вне туннеля, чтобы не терять локальные сервисы и не зависеть от стабильности VPN-сервера, а телевизор или игровую консоль, наоборот, направить через AmneziaWG или WireGuard для обхода региональных ограничений.

Список устройств для туннелирования удобно вести через address-list: так вы можете быстро добавлять и убирать устройства без пересоздания правил маршрутизации, просто редактируя список IP-адресов.

CONFIG / TERMINAL
/routing table add name=via-wg fib
/ip route add dst-address=0.0.0.0/0 gateway=wg-home routing-table=via-wg
/ip firewall address-list add list=wg-clients address=192.168.88.20 comment="Smart TV"
/ip firewall address-list add list=wg-clients address=192.168.88.30 comment="Game console"
/routing rule add src-address-list=wg-clients action=lookup-only-in-table table=via-wg

Если нужен туннель для всей сети, замените routing rule на обычный маршрут по умолчанию с меньшим distance, чем у маршрута провайдера.

ШАГ 04

NAT, DNS и firewall для туннеля

Без правила masquerade на выход в туннель удалённый сервер не будет знать, как вернуть пакеты в вашу локальную сеть, поэтому это правило обязательно для типичной клиентской схемы. Настройте его так, чтобы масштарадинг применялся только к трафику, выходящему через интерфейс wg-home, не затрагивая обычный WAN.

DNS можно оставить на резолвере роутера с разрешением запросов из локальной сети — это упрощает диагностику утечек, поскольку все запросы проходят через один узел, который легко проверить логированием. Альтернативный вариант — раздавать клиентам DNS-сервер VPN-провайдера через DHCP option, тогда устройства будут резолвить имена напрямую через туннель.

Отдельно стоит настроить базовые правила firewall для интерфейса wg-home: закрыть input с внешней стороны туннеля, но разрешить forward для трафика, уходящего в него из локальной сети. Это защитит роутер от нежелательных подключений через туннель, оставив полезную функциональность нетронутой.

CONFIG / TERMINAL
/ip firewall nat add chain=srcnat out-interface=wg-home action=masquerade
/ip dns set servers=1.1.1.1,9.9.9.9 allow-remote-requests=yes
/ip firewall filter add chain=input in-interface=wg-home action=drop comment="Block unsolicited from VPN"
/ip firewall filter add chain=forward out-interface=wg-home action=accept comment="Allow LAN to VPN"

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

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

Получить готовую конфигурацию
ШАГ 05

Диагностика соединения в RouterOS

После применения конфигурации проверьте состояние peer командой print detail: важны два поля — last-handshake и счётчики rx/tx. Если last-handshake отсутствует или обновлялся давно, проблема на уровне сети до появления трафика внутри туннеля — чаще всего неверный endpoint, порт или ключи.

Если рукопожатие проходит успешно, но интернет через туннель не работает, переходите к проверке маршрутов и NAT: убедитесь, что нужный трафик действительно попадает в таблицу via-wg, а не уходит через основной маршрут по умолчанию. Команда traceroute с указанием routing-table наглядно покажет, через какой интерфейс реально идут пакеты.

Полезно также проверять MTU отдельно от общей настройки сети: слишком большое значение проявляется специфично — маленькие запросы вроде DNS работают нормально, а загрузка страниц с крупными объектами подвисает или обрывается.

CONFIG / TERMINAL
/interface wireguard peers print detail
/ip route print where routing-table=via-wg
/tool traceroute 1.1.1.1 routing-table=via-wg
/ping 1.1.1.1 size=1400 do-not-fragment
ШАГ 06

Несколько peer и балансировка нагрузки

RouterOS позволяет добавить к одному интерфейсу WireGuard несколько peer, что удобно, если у вас есть доступ к разным серверам VPN-провайдера в разных регионах. Каждый peer описывается собственным allowed-address, поэтому можно направлять разные подсети или конкретные адреса через разные удалённые узлы без создания дополнительных интерфейсов.

Для сценария с двумя независимыми серверами практичнее всё же создать два отдельных интерфейса wireguard и переключаться между ними через routing rule с разным приоритетом, а не смешивать всё в одном peer-листе — так проще диагностировать проблемы и быстро откатиться на резервный сервер при сбое основного.

ШАГ 07

Обслуживание конфигурации

После первичной настройки полезно завести привычку периодически проверять журнал системных событий на предмет разрывов туннеля и перезапусков сервиса WireGuard. RouterOS ведёт лог доступный через /log print, где по ключевым словам wireguard можно быстро найти историю переподключений.

Если вы меняете ключи на стороне сервера, не забывайте обновлять их и в конфигурации peer на роутере — RouterOS не подтягивает изменения автоматически. Хорошая практика — хранить актуальный экспорт конфигурации в отдельном защищённом месте на случай замены оборудования.

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

Готовы подключить роутер?

Возьмите готовую конфигурацию и используйте эту инструкцию для установки и проверки.

Получить готовую конфигурацию

Продолжите настройку

Все руководства — настройка роутеров, MTU, DNS и устройств.