Molystrix MOLYSTRIX Оформить
· 7 мин чтения ·
#WireGuard #MikroTik #инструкция

WireGuard на MikroTik 2026: настройка через Winbox пошагово

WireGuard клиент и сервер на MikroTik RouterOS 7: создание интерфейса, peer, NAT и firewall rules через Winbox + что делать если handshake не проходит.

WireGuard в RouterOS появился в версии 7.0 ещё в 2021 году и с тех пор обкатан и стабилен — работает как встроенный интерфейс, без отдельной логики. Никаких пакетов, патчей, скриптов — add interface wireguard, peer, маршрут, masquerade. Всё.

Эта статья — пошагово через Winbox для тех, кому нужно либо client-режим (роутер ходит наружу через готовый туннель от провайдера-сервиса или собственного сервера), либо site-to-site между двумя MikroTik. Конфиг через CLI приведён там, где это короче. В конце — что проверять, если handshake не поднимается.

Что нужно для WireGuard на MikroTik

Минимальный набор — три вещи.

RouterOS 7.0 или новее. В 6.x WireGuard отсутствует. Обновление — через System → Packages → Check For Updates или вручную залейте .npk из mikrotik.com/download. Большинство домашних моделей (hAP ac², hAP ax², RB4011, RB5009, CCR) получают апгрейд бесплатно.

Лицензия любого уровня — WireGuard не входит в список лицензионно ограниченных функций RouterOS. Работает на всех моделях, включая базовые hAP mini и RB951. Demo-лицензия (без ключа) тоже годится — конфиг не сохранится после reboot, но для лабораторного теста сойдёт.

Третье — конфиг с другой стороны туннеля. Либо .conf от внешнего сервиса (нужны Address, PrivateKey, блок [Peer]), либо заранее сгенерированная пара ключей второго MikroTik для site-to-site. На стороне MikroTik ключи RouterOS сгенерирует сама — публичный потом перенесёте на удалённую сторону.

Когда MikroTik + WireGuard — правильный выбор

Прежде чем лезть в Winbox — короткий тест на ситуацию.

Ваш сценарийЧто выбрать
Раздать туннель всему офису или дому через NATMikroTik — один peer на роутере, все устройства за NAT через него
Нужен site-to-site между двумя офисамиMikroTik — WG отлично работает peer-to-peer
Хотите туннель только на ноутбуке вне домаWireGuard на устройстве — MikroTik не поможет, нужен мобильный профиль
Провайдер режет WireGuard — нужен AmneziaWGНа устройствах — MikroTik пока не поддерживает AmneziaWG нативно

Если ваш кейс — последняя строчка, у нас есть отдельный разбор по роутерам с поддержкой обфускации: AmneziaWG на роутере — Keenetic, MikroTik, ASUS, OpenWRT. Спойлер — нативно только OpenWRT.

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

Откройте Winbox, подключитесь к роутеру по MAC или IP. Слева в меню ищите раздел WireGuard — он на верхнем уровне, не вложен в Interfaces в большинстве сборок 7.x.

Если раздела нет — версия RouterOS старая. System → Packages, ищите wireguard в списке. Если пакета нет — обновляйтесь.

Кнопка + → New Interface:

  • Name: wg-out (или любое осмысленное имя без пробелов)
  • MTU: 1420 — стандарт WireGuard (80-byte overhead на стандартный 1500 MTU)
  • Listen Port: 51820 для server-режима. Для client-only можно оставить дефолт — порт не публикуется наружу
  • Private Key: оставьте пустым, RouterOS сгенерирует Curve25519 pair автоматически

Apply → OK. В списке появится интерфейс с зелёной точкой и парой полей Private Key / Public Key. Публичный ключ сразу скопируйте — он понадобится на удалённой стороне.

Если ставите client к готовому сервису (Molystrix, свой сервер) — вставьте PrivateKey из вашего .conf в поле Private Key вручную и сохраните. RouterOS пересчитает Public Key сама.

В CLI этот же шаг укладывается в одну строку:

/interface/wireguard/add name=wg-out listen-port=51820 mtu=1420

После создания — получить публичный ключ:

/interface/wireguard/print

Добавление peer

Peer в терминах WireGuard — описание удалённой стороны: её публичный ключ, endpoint и список IP, которые через неё маршрутизируются.

В Winbox: WireGuard → вкладка Peers → +:

  • Interface: wg-out — тот, что только что создали
  • Public Key: публичный ключ удалённой стороны (из их .conf, секция [Peer])
  • Endpoint: IP-адрес удалённого сервера (без порта)
  • Endpoint Port: 51820 или порт из конфига
  • Allowed Address: 0.0.0.0/0 — пускать через туннель весь IPv4. Для split — только нужные подсети (например, 10.0.0.0/8)
  • Persistent Keepalive: 00:00:25 — каждые 25 секунд пустой пакет держит NAT-mapping на стороне провайдера живым. Без этого через 2-5 минут простоя соединение «забывается» firewall’ом и handshake начинается заново при первом исходящем пакете
  • Preshared Key: опциональный дополнительный 256-битный секрет; заполните только если он есть в конфиге

Apply → OK.

В CLI peer выглядит так:

/interface/wireguard/peers/add \
  interface=wg-out \
  public-key="ABCxyz...серверный_публичный_ключ...=" \
  endpoint-address=193.0.2.10 \
  endpoint-port=51820 \
  allowed-address=0.0.0.0/0 \
  persistent-keepalive=25s

Сразу после добавления peer’а в логах (/log/print where topics~"wireguard") вы увидите попытки handshake. Если стороны видят друг друга — там же появится peer ... received handshake initiation.

Маршрутизация и NAT

Туннель сам по себе — пустой интерфейс без IP. Чтобы трафик пошёл, нужно три вещи: повесить локальный адрес туннеля, добавить маршрут по умолчанию через него и настроить masquerade для исходящих.

IP-адрес интерфейса

IP → Addresses → +:

  • Address: 10.7.0.5/24 — ваш адрес из [Interface] Address в конфиге. /24 или /32 — как выдал сервис
  • Interface: wg-out

В CLI:

/ip/address/add address=10.7.0.5/24 interface=wg-out

Маршрут по умолчанию через туннель

IP → Routes → +:

  • Dst. Address: 0.0.0.0/0 — весь IPv4-трафик
  • Gateway: wg-out — interface gateway, не IP
  • Distance: 1 — приоритет выше дефолтного маршрута через провайдера (обычно у того distance=0 или 10)
  • Check Gateway: ping — RouterOS будет проверять живой ли интерфейс, и при падении автоматически снимать маршрут

CLI:

/ip/route/add dst-address=0.0.0.0/0 gateway=wg-out distance=1 check-gateway=ping

Внимание: после применения этого маршрута весь LAN-трафик пойдёт через туннель. Если делаете удалённо — держите наготове доступ по MAC через Winbox и тестируйте на отдельном правиле, не на дефолтном route.

Firewall rules (masquerade)

Без NAT-masquerade пакеты от LAN-устройств будут уходить в туннель с их собственными «серыми» адресами 192.168.88.x — удалённый сервер их дропнет, потому что не знает, куда отвечать.

IP → Firewall → NAT → +:

Вкладка General:

  • Chain: srcnat
  • Out. Interface: wg-out

Вкладка Action:

  • Action: masquerade

CLI:

/ip/firewall/nat/add chain=srcnat out-interface=wg-out action=masquerade

Apply → OK. Правило встанет в общий список NAT — порядок имеет значение, оно должно быть выше любых reject-правил для исходящего трафика.

Дополнительно проверьте /ip/firewall/filter/print — если в forward chain есть жёсткое drop everything not established, добавьте явный accept для нового интерфейса:

/ip/firewall/filter/add chain=forward in-interface=bridge out-interface=wg-out action=accept comment="LAN to WG tunnel"

Проверка handshake

Главный признак рабочего туннеля — свежий handshake (моложе 2-3 минут) и счётчики байт, которые увеличиваются.

В Winbox: WireGuard → Peers → двойной клик на peer → внизу окна поле Last Handshake. Должно быть значение типа 34s или 1m20s, постоянно обновляться.

В CLI:

/interface/wireguard/peers/print stats

Вывод:

0 interface=wg-out public-key="..." endpoint=193.0.2.10:51820
  current-endpoint-address=193.0.2.10 current-endpoint-port=51820
  allowed-address=0.0.0.0/0
  rx=4521 tx=8902 last-handshake=42s

Проверка с устройства за роутером:

curl ifconfig.me

Должен вернуться IP сервера WireGuard, а не вашего провайдера.

Если handshake не проходит

Самый частый случай — last-handshake пустое или never, счётчики rx=0. Перебирать по списку:

1. Endpoint и порт. Скопировали ли вы EndpointPort из конфига точно (не путать с Listen Port локального интерфейса). Опечатка в последней цифре — типичный кейс.

2. Публичный ключ. На стороне MikroTik должен стоять публичный ключ удалённого сервера, на удалённой стороне — публичный ключ MikroTik. Это две разные пары, легко перепутать местами.

3. Системное время. WireGuard использует timestamp в handshake. Расхождение больше 2 минут — handshake отбрасывается. System → Clock, поставьте NTP-клиент на pool.ntp.org.

4. Firewall провайдера. Некоторые домашние провайдеры режут исходящий UDP на нестандартных портах. Проверка:

/tool/torch interface=ether1 src-address=ip-роутера port=51820

Если на интерфейсе провайдера видны только исходящие пакеты, входящих ноль — провайдер дропает ответ. Попросите у сервиса конфиг на порту 443 (UDP) или 53 — эти редко режут.

5. MTU. Если handshake поднимается, но крупные пакеты теряются (маленькие сайты открываются, тяжёлые подвисают) — MTU 1420 оказался велик. Опуститесь до 1380 или 1280, особенно если у провайдера PPPoE.

Если handshake висит и провайдер явно режет WireGuard на UDP-port — AmneziaWG (форк WG от Amnezia) маскирует сигнатуру и проходит там, где оригинал режется. MikroTik пока не поддерживает AmneziaWG нативно, ставить надо на каждое устройство. У нас Molystrix — туннель на AmneziaWG, 249 ₽ в месяц за три устройства, конфиг QR-кодом на email. → Посмотреть тарифы

Подробнее про разницу протоколов и почему обфускация помогает — в материале AmneziaWG vs WireGuard — отличия и когда что выбрать. А полный чек-лист диагностики, если совсем всё мертво — WireGuard не работает: пошаговая диагностика.

Часто задаваемые вопросы

С какой версии RouterOS поддерживается WireGuard?

С RouterOS 7.0 stable, релиз — март 2021. В 6.x пакета нет в принципе, никакие сторонние сборки официально не существуют. Если у вас hAP ac, RB951G или другие старые модели — проверьте, что они в списке поддерживаемых для апгрейда на 7.x, большинство домашних устройств туда входят.

Можно ли поднять WireGuard-сервер на MikroTik hAP ac²?

Да, но с оговоркой по производительности. У hAP ac² процессор IPQ-4018, он крутит WireGuard примерно на 100-150 Мбит/с в одну сторону без аппаратного ускорения. Для двух-трёх клиентов на семью — сильно запас, для офиса на 20 человек с активной работой через туннель — лучше hAP ax², RB5009 или CCR-серию.

WireGuard на MikroTik режет скорость — это нормально?

Зависит от модели. На hAP mini, RB951 — да, потолок 30-60 Мбит/с, потому что слабый процессор и нет AES-NI/ChaCha-ускорителей. На RB5009UG — гигабит без проблем. Если на топовой модели всё равно медленно — проверьте MTU (опускайте до 1380), CPU load (/system/resource/print) и не сидит ли роутер на параллельных тяжёлых задачах вроде BGP full table или QoS на гигабитном канале.

Как настроить selective routing — только определённый трафик через туннель?

Через mangle-правила и таблицы маршрутизации. Базовая схема: в IP → Firewall → Mangle добавьте chain=prerouting, src-address=192.168.88.10 (или dst-address под нужный сервис), action=mark-routing, new-routing-mark=via-wg. Затем в IP → Routes создайте маршрут dst=0.0.0.0/0 gateway=wg-out routing-table=via-wg. Только помеченный трафик пойдёт через туннель, остальное — через дефолтного провайдера. Удобно для исключения банков и российских CDN.

Поддерживает ли MikroTik AmneziaWG?

На май 2026 — нет, ни в стабильных, ни в long-term, ни в development сборках RouterOS. AmneziaWG — это форк протокола с дополнительными обфусцированными заголовками, и команда MikroTik пока не интегрировала его в RouterOS. Запросы на форумах есть, официальных анонсов нет. Если нужен AmneziaWG из коробки на роутере — единственный вариант сегодня это OpenWRT с пакетом amneziawg-tools.

WireGuard handshake висит — что проверить?

По убыванию вероятности: (1) опечатка в endpoint-port, (2) перепутаны публичные ключи местами, (3) расхождение системного времени больше 2 минут — поднимите NTP, (4) провайдер режет UDP на нестандартном порту — попросите конфиг на UDP/443, (5) MTU слишком большой — опустите до 1380. Логи смотрите через /log/print where topics~"wireguard", там обычно прямо написано, на каком этапе handshake умер.

Можно ли через WireGuard MikroTik сделать site-to-site между двумя роутерами?

Да, и это один из самых удобных сценариев WG. На каждом роутере создаёте интерфейс WireGuard, обмениваетесь публичными ключами, прописываете peer’а с endpoint удалённой стороны. В Allowed Address указываете LAN-подсеть удалённого офиса (например, 192.168.10.0/24). Маршрут добавляете именно на эту подсеть, не на 0.0.0.0/0 — иначе разорвёте локальный интернет. Masquerade в этом сценарии обычно не нужен: роуты в обе стороны работают через явные подсети.

Какой минимальный лицензионный уровень нужен для WireGuard на MikroTik?

Любой. WireGuard вообще не входит в список лицензионно ограниченных функций RouterOS — в отличие от BGP или OSPF, которые требуют L4+. На L3 (CHR free, hEX lite) WG работает так же, как на L6 на CCR. На demo (без ключа) тоже работает, но конфиг не сохраняется после reboot — для лабы сойдёт, для прода нет. Уровень смотрите в System → License или /system/license/print.

Итог

  • RouterOS 7.x обязателен — в 6.x WireGuard отсутствует
  • Создаёте интерфейс → peer → IP → route → masquerade — пять шагов, пять минут
  • Persistent keepalive 25 секунд — обязательно, иначе NAT провайдера «забывает» туннель
  • Системное время через NTP — иначе handshake не пройдёт даже при правильных ключах
  • AmneziaWG на MikroTik в 2026 нативно нет — только OpenWRT или ставить на каждое устройство

MikroTik с WireGuard — крепкая комбинация для офиса на NAT, домашнего сервера или site-to-site между двумя точками. Если нужен туннель на ноутбук в командировке или на телефон — роутер не поможет, тогда смотрите WireGuard на macOS и Windows или мобильные гайды по платформам.

Подключите Molystrix за 2 минуты

Защищённое соединение для работы с международными сервисами. Протокол AmneziaWG, серверы в Европе, 3 устройства, оплата картой или СБП.