Мухомор VPN

Как настроить WireGuard на Mikrotik

WireGuard на Mikrotik RouterOS даёт быстрый шифрованный туннель для домашней лаборатории и малого офиса — без громоздких настроек IPsec.

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

WireGuard mikrotik работает только на RouterOS 7 и новее — на ветке 6.x интерфейса просто нет, поэтому первым делом обновите прошивку через System → Packages или командой /system package update. Дальше: 1) убедитесь, что у роутера есть публичный IP или проброс UDP-порта; 2) откройте Winbox или терминал; 3) запишите внутреннюю подсеть LAN, к которой планируете давать доступ. Для малого офиса хватит маршрутизатора уровня hAP ac2 или RB5009 — WireGuard в RouterOS реализован в ядре и нагружает CPU заметно меньше, чем OpenVPN или IKEv2.

Создаём WireGuard-интерфейс

Чтобы поднять mikrotik vpn wireguard, начните с интерфейса: 1) выполните /interface/wireguard/add name=wg-office listen-port=51820 — RouterOS сам сгенерирует пару ключей; 2) посмотрите публичный ключ командой /interface/wireguard/print — он понадобится клиентам; 3) назначьте туннелю адрес: /ip/address/add address=10.10.0.1/24 interface=wg-office. Этот адрес становится внутренним IP роутера в VPN-сети. Listen-port можно выбрать любой свободный UDP; запомните его — именно этот порт вы будете разрешать в firewall и пробрасывать на провайдерском оборудовании, если роутер за NAT.

Добавляем peer и allowed-ips

Каждое устройство в routeros wireguard описывается как peer. Команда: /interface/wireguard/peers/add interface=wg-office public-key="КЛЮЧ_КЛИЕНТА" allowed-address=10.10.0.2/32. Поле allowed-address (allowed-ips) — ключевой момент: оно говорит роутеру, какие адреса принадлежат этому peer и куда маршрутизировать обратный трафик. Для одного клиента ставьте его адрес с маской /32. На стороне клиента, наоборот, в allowed-ips указывают сети за роутером (например 192.168.88.0/24) или 0.0.0.0/0 для всего трафика. Для нестабильных мобильных подключений добавьте клиенту persistent-keepalive=25, чтобы туннель не «засыпал» за NAT.

Firewall и проверка туннеля

Туннель часто поднимается, но трафик не идёт — почти всегда дело в firewall и NAT. 1) Разрешите входящий UDP на listen-port: /ip/firewall/filter/add chain=input protocol=udp dst-port=51820 action=accept и поднимите правило выше блокирующих. 2) Разрешите форвардинг между wg-office и LAN. 3) Если хотите выпускать клиентов в интернет через роутер, добавьте /ip/firewall/nat/add chain=srcnat out-interface=ether1 action=masquerade. Проверьте результат: /interface/wireguard/peers/print покажет last-handshake — свежий хендшейк означает, что шифрованный туннель установлен. Если handshake пустой, проверьте ключи, порт и проброс UDP.

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

Какая версия RouterOS нужна для WireGuard?

WireGuard поддерживается в RouterOS начиная с версии 7. На RouterOS 6 интерфейса WireGuard нет, поэтому сначала обновите прошивку до 7.x.

Что писать в allowed-ips на стороне peer?

В allowed-ips указывают сети, трафик к которым пойдёт в туннель. Для одного клиента это его адрес с маской /32, для всего трафика — 0.0.0.0/0.

Почему туннель поднялся, но трафик не идёт?

Чаще всего дело в firewall и NAT: нужно разрешить UDP-порт WireGuard, а для исходящего трафика из туннеля добавить правило masquerade.