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 — короткий тест на ситуацию.
| Ваш сценарий | Что выбрать |
|---|---|
| Раздать туннель всему офису или дому через NAT | MikroTik — один 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 устройства, оплата картой или СБП.