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

WireGuard на MikroTik 2026: настройка через Winbox и RouterOS 7

Полная установка WireGuard на MikroTik в 2026: создание интерфейса в Winbox, peer config, firewall NAT, DNS — пошагово с типичными ошибками RouterOS 7.x.

MikroTik с RouterOS 7.0 (2021) получил поддержку WireGuard как полноценного интерфейса первого класса — наравне с Ethernet, PPPoE, L2TP. На начало 2026 текущий long-term выпуск RouterOS 7.16 крутит WireGuard стабильно. Большинство домашних моделей вроде hAP ax², RB5009 или свежих ревизий hAP ac² тянут гигабит через туннель.

Дальше — пошаговый разбор установки через Winbox в client-режиме: роутер сам подключается к удалённому туннельному серверу, и весь трафик из LAN заворачивается через него. В конце — характерные для RouterOS 7.x нюансы 2026 года, типичные ошибки и сравнение с другими роутерами.

Что нужно перед началом

Минимальный набор — пять вещей, и без любой из них дальше идти бессмысленно.

RouterOS 7.0 или новее, лучше 7.11+. В шестой ветке WireGuard отсутствует. С 7.0 поддержка есть, но до 7.10 встречались мелкие баги в handshake state machine — на 7.11+ эта часть переписана. На 2026 рекомендую 7.16 (long-term). Проверить версию: System → Resources, поле Version.

Winbox 3.40 или новее. WireGuard-таб появился в UI начиная с 3.40. Скачивается с mikrotik.com/download — Windows native, на macOS и Linux работает через Wine. Альтернатива — веб-интерфейс WebFig или SSH с CLI.

Хотя бы 64 MB оперативной памяти. На моделях hAP ac², RB750Gr3, RB5009, hAP ax² — этого с запасом. Древний RB750Gr2 с 64 MB RAM впритык: на десятке клиентов за NAT начинаются проблемы с памятью. RouterOS 6.x на 32 MB RAM моделях вроде hAP mini — тупик, WireGuard туда не приедет никогда.

Конфиг от провайдера туннеля. Файл .conf (или текстовый блок) с полями: PrivateKey клиента, PublicKey сервера, Endpoint (host:port), Address (ваш адрес в сети туннеля), AllowedIPs, опционально PresharedKey. Источник — либо сторонний сервис (например, Molystrix шлёт .conf и QR-код на email после оплаты), либо свой WireGuard-сервер на VDS с самостоятельной генерацией пар ключей.

Доступ к роутеру. IP по умолчанию 192.168.88.1, логин admin, пароль — пустой на свежей прошивке или ваш собственный. Если вы вообще никогда не заходили в админку — сначала смените пароль через System → Users, иначе любой за сетью получит root.

Шаг 1. Подключиться к роутеру через Winbox

Запустите Winbox. На вкладке Neighbors появится список устройств MikroTik в локальной сети — выберите ваш роутер кликом по строке. Можно подключаться по IP (192.168.88.1) или по MAC-адресу — второй вариант работает даже если IP-настройки слетели.

Введите логин и пароль, нажмите Connect. Слева — главное меню RouterOS: Interfaces, IP, Bridge, WireGuard, System, Tools.

Первое, что стоит сделать — открыть System → NTP Client, включить и указать 0.pool.ntp.org или time.cloudflare.com. WireGuard использует timestamp в handshake, и расхождение системного времени больше двух минут отбрасывает handshake целиком. Это типичная причина «никогда не подключается» на свежеустановленных роутерах.

Шаг 2. Создать WireGuard-интерфейс

В левом меню найдите раздел WireGuard — он на верхнем уровне в большинстве сборок 7.x, не вложен в Interfaces. Если раздела нет — версия RouterOS старая. System → Packages, ищите строку wireguard. Нет пакета — обновляйтесь через System → Packages → Check For Updates.

Кнопка + (Add new):

  • Name: wg-tunnel (любое осмысленное имя без пробелов)
  • MTU: 1420 — стандартное значение WireGuard (1500 MTU Ethernet минус ~60 байт WG-overhead: 32 transport header + 20 IP + 8 UDP, с запасом на PPPoE +8 — отсюда 1420 как безопасный дефолт). На сетях с PPPoE или GRE может потребоваться уменьшение — об этом ниже
  • Listen Port: 13231 или любой другой свободный. Для исходящего client-only подключения порт не публикуется наружу и не критичен; RouterOS использует его только если кто-то надумает подключаться к вам обратно
  • Private Key: вставьте PrivateKey из вашего .conf (Curve25519 в base64, заканчивается на =). Если оставить пустым — RouterOS сгенерирует свою пару ключей, но тогда удалённой стороне придётся переписать peer на ваш новый публичный ключ

Apply → OK. В списке появится интерфейс. Двойной клик откроет свойства — там же показывается Public Key, рассчитанный из приватного. Если генерировали ключи на роутере — скопируйте публичный сейчас, он понадобится администратору сервера.

В CLI этот же шаг — одна строка:

/interface/wireguard/add name=wg-tunnel listen-port=13231 mtu=1420 private-key="вставить_сюда"

Шаг 3. Добавить peer (туннельный сервер)

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

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

  • Interface: wg-tunnel — тот, что только что создали
  • Public Key: публичный ключ сервера из секции [Peer] вашего .conf (поле PublicKey)
  • Endpoint Address: доменное имя или IP сервера, например node1.example.com или 193.0.2.10. Если в конфиге endpoint в формате host:port — здесь только хост, без двоеточия
  • Endpoint Port: обычно 51820 (стандартный WG-порт). Некоторые сервисы используют 443 или 53 — те, что реже режутся домашними провайдерами
  • Allowed Address: 0.0.0.0/0 — full-tunnel, весь IPv4 через туннель. Для split — конкретные подсети (например, 10.0.0.0/8 для офисного site-to-site)
  • Persistent Keepalive: 25 секунд — пустой пакет каждые 25 секунд держит NAT-mapping вашего провайдера живым. Без этого через две-пять минут простоя домашний роутер ISP «забывает» о соединении, и handshake начинается заново при следующем исходящем пакете. На серверной стороне это выглядит как периодические пятиминутные обрывы
  • Preshared Key: опциональный дополнительный 256-битный секрет, если он есть в конфиге (поле PresharedKey в [Peer]). Не у всех провайдеров используется — оставьте пустым, если в .conf строки нет

Apply → OK.

CLI-эквивалент:

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

Сразу после добавления в логах (Log → фильтр wireguard) появятся попытки handshake. Если стороны видят друг друга — увидите строку вроде peer ... received handshake initiation или просто наличие свежего last-handshake. Если строк нет вообще — проверьте firewall провайдера, об этом ниже.

Шаг 4. Назначить IP-адрес интерфейсу

Интерфейс есть, peer есть — но без IP с локальной стороны трафик никуда не пойдёт. Адрес берётся из секции [Interface] Address вашего .conf.

IP → Addresses → +:

  • Address: 10.8.0.42/32 — ваш адрес из конфига. Маска /32 означает «один-единственный хост». Некоторые провайдеры выдают /24 — тогда подсеть будет шире, но обычно для client-сценария достаточно /32
  • Network: оставьте пустым, RouterOS рассчитает сам
  • Interface: wg-tunnel

В CLI:

/ip/address/add address=10.8.0.42/32 interface=wg-tunnel

Шаг 5. DNS — переключить на туннельный

Если вы оставите DNS-серверы вашего ISP, то даже при полностью работающем туннеле DNS-резолв пойдёт мимо: IP-сервиса разрешится через локальный DNS-сервер ISP, и ответ может прийти с CDN-узлом, к которому нет смысла подключаться через туннель. Хуже того — DNS-запрос утечёт «снаружи» туннеля, и ваш провайдер увидит весь список доменов.

IP → DNS → Settings:

  • Servers: 1.1.1.1, 1.0.0.1 (Cloudflare) или 8.8.8.8, 8.8.4.4 (Google). Через туннель эти серверы отвечают напрямую, без региональных DNS-подмен
  • Allow Remote Requests: включить (галочка). Тогда сам роутер становится DNS-сервером для всей LAN, и устройства будут спрашивать его, а не лезть напрямую
  • Удалите старые DNS-серверы провайдера из списка, если они там остались с автоматической настройки PPPoE/DHCP

В CLI:

/ip/dns/set servers=1.1.1.1,1.0.0.1 allow-remote-requests=yes

Дополнительно стоит зафиксировать DNS на DHCP-сервере для LAN — IP → DHCP Server → Networks → ваша сеть → DNS Servers = 192.168.88.1 (адрес самого роутера). Тогда устройства гарантированно получат именно роутер как DNS, а не подсунутые провайдером.

Шаг 6. Firewall NAT — masquerade для трафика из LAN

Без NAT-masquerade пакеты от ваших домашних устройств уйдут в туннель с их собственными «серыми» адресами 192.168.88.x — туннельный сервер их дропнет, потому что не знает, куда ответить (адрес не маршрутизируется глобально). Masquerade переписывает source-адрес исходящего пакета на адрес WireGuard-интерфейса, а потом разворачивает обратно для входящих ответов.

IP → Firewall → NAT → +, вкладка General:

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

Вкладка Action:

  • Action: masquerade

В CLI:

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

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

Если в IP → Firewall → Filter есть жёсткое правило chain=forward action=drop (часто настраивается по умолчанию для безопасности) — добавьте явный accept для нового интерфейса:

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

Шаг 7. Routing — направить трафик в туннель

Последний шаг — сказать роутеру, что весь исходящий трафик (или его часть) должен идти через WireGuard-интерфейс.

IP → Routes → +:

  • Dst. Address: 0.0.0.0/0 — full-tunnel, весь IPv4
  • Gateway: wg-tunnel (interface gateway, не IP)
  • Distance: 5 — приоритет ниже основного WAN-маршрута. Это важный нюанс: если поставить 1, RouterOS будет считать туннельный маршрут главным даже когда туннель упал, и трафик начнёт уходить в blackhole. Distance 5 означает «использовать пока WG-интерфейс жив; если он упал — откатиться на WAN»
  • Check Gateway: ping — RouterOS будет периодически пинговать gateway и при недоступности снимать маршрут автоматически

CLI:

/ip/route/add dst-address=0.0.0.0/0 gateway=wg-tunnel distance=5 check-gateway=ping

Альтернатива full-tunnel — Policy-Based Routing (PBR). Через IP → Firewall → Mangle помечаете трафик от конкретных клиентов или к конкретным подсетям (action=mark-routing), затем в IP → Routes создаёте отдельную routing table только для этой метки. Удобно когда нужно загнать в туннель только Smart TV и игровую консоль, а ноутбук пустить напрямую.

Если уже час возитесь с firewall, NAT и routing — а speedtest упрямо показывает ваш домашний IP — иногда проще не заворачивать весь дом через MikroTik, а поставить клиент туннеля сразу на устройства, где он нужен. Один QR-код на телефон, ноутбук и iPad — туннель работает без масок, mangle-правил и риска blackhole’нуть сеть всей квартире, если что-то пойдёт не так. У нас Molystrix — 249 ₽ в месяц за три устройства, конфиг QR-кодом на email. → Посмотреть тарифы

Проверка работы

Живой туннель видно по двум признакам: свежий last-handshake и счётчики байт, которые растут.

В Winbox: WireGuard → Peers, двойной клик на пир, поле Last Handshake внизу окна. Должно показывать значение вроде 42s или 1m20s — то есть рукопожатие было меньше двух минут назад. Поля RX и TX должны расти при любой активности с устройств за роутером.

CLI:

/interface/wireguard/peers/print stats

Вывод покажет что-то вроде:

 0 interface=wg-tunnel 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

Проверка с устройства в LAN — откройте 2ip.ru или ifconfig.me. IP должен показаться адресом вашего туннельного сервера, не домашним ISP. Если показывает родной — значит трафик не зашёл в туннель, проверяйте маршруты и порядок правил NAT.

Дополнительно из CLI самого MikroTik: Tools → Ping, в поле Address введите 8.8.8.8, в Source Address — IP вашего WG-интерфейса (тот, что назначили на шаге 4). Если пинг идёт — туннель работает на уровне самого роутера; если нет — проблема между интерфейсом и удалённой стороной, и LAN-настройки тут ни при чём.

Особенности RouterOS 7.x на 2026 год

За четыре года WireGuard в RouterOS прошёл через несколько серьёзных переработок. Что важно знать на 2026:

В 7.10+ переписан handshake state machine. Раньше при потере handshake маршрут с distance=1 мог blackhole’ить трафик: интерфейс считается живым, маршрут активен, но пакеты в никуда. На 7.10+ интерфейс корректно «опускается» через check-gateway=ping, но всё равно безопаснее держать distance ≥ 5.

В 7.11+ исправлен PMTUD-баг. До этого MTU 1420 на некоторых маршрутах ломал большие запросы к GitHub LFS и S3-bucket с тяжёлыми изображениями. Симптом — мелкие сайты открываются, большие файлы зависают. На 7.11+ Path MTU Discovery учитывает overhead туннеля корректно.

В 7.16+ добавлен scriptable hook для peer-monitor. Можно вешать скрипты на события установки/разрыва handshake — полезно для автоматических алертов через Telegram-бот или syslog.

RouterOS 7 не работает на ARM v5. CCR1009-7G-1C-1S-PC, RB750Gr2 и совсем старые ARM-модели остаются на ветке 6.x — WireGuard там недоступен. Минимум для 7.x — ARM v7 (большинство hAP-серии 2017+).

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

last-handshake=never, счётчики rx=0, tx растёт. Ваша сторона шлёт пакеты, но удалённая не отвечает (или ответы не доходят). Перебирать: точный ли Endpoint Port, не блокирует ли исходящий UDP файервол провайдера (особенно на корпоративных и гостиничных сетях), правильный ли публичный ключ сервера.

last-handshake=never, обе стороны rx=0, tx=0. Локальный firewall роутера дропает исходящие. IP → Firewall → Filter, ищите правила в chain=output с action=drop — добавьте явный accept для UDP на ваш Endpoint.

Handshake идёт, но LAN не ходит через туннель. Забыли masquerade (шаг 6) или dns остался от ISP (шаг 5). Проверьте: с устройства в LAN откройте https://dnsleaktest.com — должны показываться сервера Cloudflare/Google, а не российские.

Speedtest показывает родной IP даже когда туннель up. DNS-leak через DoH (DNS-over-HTTPS) в браузере — Chrome и Firefox самостоятельно ходят на dns.google или cloudflare-dns.com, игнорируя системный DNS. Решается отключением DoH в браузере или форсированной перенаправкой через firewall (dstnat для порта 853).

Периодический disconnect через каждые 5 минут. Не задан Persistent Keepalive. NAT провайдера закрывает UDP-mapping после ~120-300 секунд бездействия. Поставьте 25 секунд (шаг 3), это покрывает почти все реализации NAT.

peer ... has invalid timestamp в логах. Расхождение системного времени. System → NTP Client, проверьте что синхронизация работает (зелёный статус). Иногда помогает перезагрузка после включения NTP, чтобы время выставилось до старта WG.

MikroTik vs другие роутеры

Короткий ориентир по моделям, если только присматриваетесь к железу под туннель.

РоутерЦенаСкорость через туннельКому подходит
MikroTik hAP ax²25-30k ₽до 1 ГбитГотовы разбираться с CLI, mangle, PBR. Максимум гибкости
Keenetic Giga KN-101112-15k ₽до 1 ГбитRU-friendly UI, WireGuard plug-and-play. Проще в разы
OpenWRT (TP-Link/Xiaomi)3-10k ₽80-400 МбитЕдинственная прошивка с нативным AmneziaWG. Нужен SSH
Бюджетные TP-Link/D-Link стоковые1-3k ₽20-60 Мбит или 0Туннель лучше ставить на устройства

Подробное сравнение по сегментам — в обзоре роутеров для туннеля 2026. Общий взгляд на туннель на роутере vs клиент на устройствах — материал AmneziaWG на роутере: Keenetic, MikroTik, ASUS, OpenWRT. Более короткий обзор по тому же сетапу MikroTik с акцентом на site-to-site — в WireGuard на MikroTik пошагово через Winbox. Где взять сам конфиг — WireGuard-сервера: где взять и как выбрать.

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

Какая минимальная RouterOS-версия для WireGuard?

RouterOS 7.0 stable, релиз — март 2021. В шестой ветке пакета нет в принципе, никакие сторонние сборки официально не существуют. Если у вас hAP ac, RB951G или другие старые модели — проверьте, поддерживают ли они апгрейд на 7.x (большинство домашних входят в список). Для свежих фич типа scriptable peer-monitor нужна 7.16+, для базовой работы достаточно 7.0+, но 7.11+ рекомендую как минимум — там исправлены ключевые баги handshake и PMTUD.

Что делать если в Winbox нет WireGuard-таба?

Три причины по убыванию вероятности: (1) Winbox старее 3.40 — обновитесь с mikrotik.com/download; (2) RouterOS старее 7.0 — обновите прошивку через System → Packages → Check For Updates; (3) пакет wireguard отсутствует в сборке — посмотрите System → Packages, при необходимости доустановите через .npk файл. На совсем экзотических ревизиях RouterOS WireGuard может быть вынесен в отдельный extra-пакет — проверьте extras на сайте MikroTik для вашей архитектуры.

Можно ли использовать AmneziaWG на MikroTik?

На май 2026 — нет, нативной поддержки AmneziaWG в RouterOS нет. Прошивка закрытая, и команда Amnezia не может портировать пакет без SDK от MikroTik. Запросы на форумах есть, официальных анонсов о поддержке пока не появлялось. Единственная прошивка, где AmneziaWG работает нативно — OpenWRT через community-пакет amneziawg-tools. Если нужен именно AmneziaWG, варианты: (а) сменить MikroTik на OpenWRT-роутер; (б) оставить MikroTik с классическим WireGuard, а AmneziaWG поставить на конкретные устройства, где это нужно.

WireGuard на MikroTik vs OpenVPN — что быстрее?

WireGuard ощутимо быстрее. На одинаковом железе (например, hAP ax²) WG выдаёт 800-900 Мбит/с, OpenVPN — около 100-150 Мбит/с в режиме UDP и ещё меньше в TCP. Причина — WG использует современную криптографию (ChaCha20-Poly1305, Curve25519, BLAKE2s) и минимальный state в kernel-space, тогда как OpenVPN тянет userspace TLS-handshake и более тяжёлый AES-CBC. Дополнительно WG не требует TCP-режима, который убивает производительность из-за TCP-over-TCP retransmits. Если стоит выбор между протоколами для нового туннеля — WG однозначно.

Сколько устройств в LAN можно подключить через один туннель MikroTik?

Технически — сколько потянет CPU и ширина канала. Один WireGuard-туннель прокачивает любое количество клиентов за NAT, ограничение только в полосе. На hAP ax² при гигабитном тарифе свободно живут десятки устройств; на старом hAP mini с потолком 30 Мбит/с пять стримящих устройств уже задушат канал. Подписка Molystrix считает три «устройства» по числу выданных ключей — сколько устройств за каждым ключом, не имеет значения. Если ставите ключ на MikroTik — три устройства превращаются в неограниченное число за вашим NAT.

Можно ли часть LAN-клиентов через туннель, часть напрямую?

Да, через Policy-Based Routing (PBR). Базовая схема: в IP → Firewall → Mangle добавляете chain=prerouting, src-address конкретного клиента (например, Smart TV — 192.168.88.50), action=mark-routing, new-routing-mark=via-wg. Затем в IP → Routes создаёте маршрут dst-address=0.0.0.0/0 gateway=wg-tunnel routing-table=via-wg. Только трафик от этого клиента пойдёт через туннель, остальные останутся на основном WAN. Альтернатива — VLAN с отдельным SSID на Wi-Fi-интерфейсе, тогда деление идёт по сети.

WireGuard на hAP ax² — какая реальная скорость через туннель?

На hAP ax² (релиз 2022) WireGuard выдаёт 800-950 Мбит/с в обе стороны при условии, что вторая сторона тоже способна на гигабит. CPU в этом сценарии загружен на 60-80%. Если упираетесь в 500-600 Мбит/с — проверьте MTU (понизьте до 1380), скорость самого ISP, а также распределение нагрузки по ядрам.

Что делать если RouterOS 7 обновился и WireGuard перестал работать?

Откатиться: System → Packages → Downgrade, выберите предыдущую версию. Если предыдущей нет, скачайте .npk с архива MikroTik вручную. Не обновляйтесь сразу на свежий stable — подождите 2-4 недели, посмотрите форумы. На критичных setup используйте long-term ветку (7.16 на 2026), там обновления консервативнее.

Можно ли через MikroTik поднять сервер WireGuard, а не клиент?

Да, RouterOS умеет обе роли. Чтобы сделать сервер: создайте интерфейс WireGuard с фиксированным Listen Port (51820), сгенерируйте пару ключей, опубликуйте свой Public Key. На стороне клиента укажите endpoint = ваш белый IP + порт. Минус — у роутера должен быть «белый» IP от провайдера. У большинства бытовых ISP в 2026 IP за CGNAT, белый IP обычно платная услуга 50-200 ₽/мес. Удобно для удалённого доступа к домашней сети из командировки.

Резюме

  • RouterOS 7.0 минимум, но рекомендуется 7.11+ из-за фиксов PMTUD и handshake state machine
  • Семь шагов: интерфейс → peer → IP → DNS → masquerade → forward accept → routing
  • Distance 5 на default route через WG-интерфейс, не 1 — избежите blackhole при разрыве туннеля
  • Persistent Keepalive 25 секунд обязателен, иначе NAT провайдера «забывает» туннель за 2-5 минут
  • AmneziaWG нативно на MikroTik не поддерживается — либо обычный WireGuard, либо AmneziaWG на устройствах отдельно

MikroTik с WireGuard — крепкая, гибкая комбинация для домашней сети с десятком клиентов или малого офиса с site-to-site между двумя точками. Гибкость даётся ценой кривой обучения: RouterOS не прощает невнимательности и требует понимания базовых сетевых концепций. Если приоритет — настроить за пять минут и забыть, посмотрите в сторону Keenetic с готовым WireGuard-модулем (разбор в настройке WireGuard на Keenetic 2026). Если хочется AmneziaWG со встроенной маскировкой заголовков — единственный путь в 2026 году это OpenWRT.

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

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