Автор: Редакция «VPN не работает»

Настройка WireGuard на MikroTik

Настроить WireGuard на MikroTik можно только в ветке RouterOS 7 — в RouterOS 6 такого интерфейса нет вовсе. Порядок действий сводится к четырём шагам: создать интерфейс /interface/wireguard, добавить пира с его публичным ключом, открыть UDP-порт в брандмауэре и направить нужный трафик в туннель. Стандартный порт прослушивания — 13231, MTU по умолчанию — 1420.

Коротко. Роутер шифрует трафик всей домашней сети сразу, поэтому клиент не нужно ставить на каждое устройство. Главная причина, по которой туннель не поднимается с первого раза, — встроенный брандмауэр: в документации MikroTik прямо сказано, что правила по умолчанию не дадут туннелю установиться, пока в цепочку input не добавлено разрешение для UDP-порта. Ключи генерируются автоматически при создании интерфейса, а начиная с версии 7.21 роутер умеет сам отдавать готовую конфигурацию клиента и QR-код.

Зачем поднимать шифрованный канал на роутере?

Роутер обслуживает всю сеть одной настройкой: телевизор, консоль и умные розетки не умеют запускать клиент WireGuard, но подключены к тому же маршрутизатору. Один туннель на MikroTik избавляет от установки приложений на каждое устройство и от проблем с гаджетами, где такого приложения не существует.

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

Что проверить до начала работы?

Первым делом посмотрите версию прошивки: раздел WireGuard появился в RouterOS 7 и в шестой ветке отсутствует. Версия видна в WinBox в заголовке окна или командой /system/resource/print. Обновление между мажорными ветками — операция с риском потерять конфигурацию, поэтому сначала сохраните бэкап через /system/backup/save.

Дальше нужны три вещи: доступ к маршрутизатору по WinBox или SSH, публичный ключ второй стороны туннеля и её внешний адрес с портом. Если вторая сторона — ваш собственный сервер, его настройка разобрана отдельно в гайде по WireGuard на VPS, а как выбрать саму площадку — в разборе тарифов VPS.

Как настроить туннель в RouterOS?

Команды ниже вводятся в терминале WinBox или по SSH. Для веб-интерфейса WebFig путь тот же: раздел WireGuard в левом меню, вкладки Interfaces и Peers.

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

Создайте интерфейс — приватный ключ RouterOS сгенерирует сам, если его не указать явно:

/interface/wireguard
add listen-port=13231 name=wireguard1

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

/interface/wireguard/print

Затем назначьте интерфейсу адрес внутри туннеля. Подсеть выбирается произвольно из частных диапазонов и не должна пересекаться с домашней сетью:

/ip/address
add address=10.10.0.2/24 interface=wireguard1

Шаг 2. Добавить пира и его ключ

Пир описывает вторую сторону: её публичный ключ, адрес и диапазон, трафик которого пойдёт в туннель.

/interface/wireguard/peers
add interface=wireguard1 public-key="ПУБЛИЧНЫЙ_КЛЮЧ_СЕРВЕРА" \
    endpoint-address=203.0.113.10 endpoint-port=13231 \
    allowed-address=0.0.0.0/0 persistent-keepalive=25s

Что означают параметры: allowed-address — адреса, трафик которых разрешён для этого пира (0.0.0.0/0 заворачивает весь трафик, узкий диапазон вроде 10.10.0.0/24 — только доступ к удалённой сети); endpoint-address и endpoint-port — куда роутер обращается для установления соединения; persistent-keepalive задаёт интервал служебных пакетов и принимает значения от 1 до 65535 секунд — он нужен, когда роутер стоит за NAT провайдера.

Шаг 3. Открыть порт в брандмауэре

Это шаг, на котором спотыкается большинство: документация MikroTik прямо предупреждает, что брандмауэр по умолчанию не даст туннелю установиться. Разрешающее правило должно стоять в цепочке input выше запрещающего:

/ip/firewall/filter
add chain=input protocol=udp dst-port=13231 action=accept \
    comment="WireGuard" place-before=0

Правило добавляется на обеих сторонах туннеля. Если вторая сторона — сервер под Linux, там открывается тот же UDP-порт.

Шаг 4. Направить трафик и проверить связь

Чтобы устройства локальной сети выходили в интернет через туннель, включите подмену адреса на интерфейсе WireGuard:

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

Проверка занимает полминуты. Команда /interface/wireguard/peers/print показывает счётчики rx/tx и время последнего рукопожатия: растущие счётчики означают, что канал живой. Дополнительно проверьте маршрут — /ping 10.10.0.1 до адреса второй стороны внутри туннеля.

Начиная с RouterOS 7.21 роутер сам собирает конфигурацию для телефона или ноутбука: команда show-client-config у пира выводит готовый файл и QR-код (для показа QR требуется флаг показа чувствительных данных). Тогда же в шаблон клиента добавили настройку AllowedIPs.

Почему туннель не поднимается?

Ниже — типовые сбои в порядке частоты. Первым делом смотрите время последнего рукопожатия: если оно пустое, пакеты не доходят вовсе, и причина сетевая, а не в ключах.

СимптомПричинаРешение
Рукопожатия нет, счётчики по нулямПорт закрыт брандмауэромПравило accept для UDP выше правил drop в цепочке input
Рукопожатие есть, сайты не открываютсяНе включена подмена адресаДобавить action=masquerade для out-interface=wireguard1
Канал рвётся каждые несколько минутРоутер за NAT провайдераЗадать persistent-keepalive=25s у пира
Работает не весь трафик, а частьУзкий allowed-addressРасширить диапазон до 0.0.0.0/0 либо добавить нужные подсети
Сайты открываются, но крупные файлы «висят»Пакеты не проходят из-за размераСнизить mtu интерфейса с 1420 до 1380–1400
Внешний адрес не сменилсяТрафик идёт мимо туннеляПроверить маршруты и таблицу маршрутизации, к которой привязан интерфейс

Чем настройка на роутере отличается от сервера?

Роутер почти всегда выступает клиентской стороной, а серверную роль берёт машина с публичным адресом. У домашнего подключения внешний адрес обычно динамический или скрыт за NAT провайдера, поэтому входящее соединение до роутера снаружи не устанавливается — инициатором должен быть он сам.

Отсюда практическое следствие: сначала поднимается серверная часть, потом роутер настраивается как пир. Что именно поставить на серверную сторону — WireGuard, AmneziaWG или Xray — сравнивается в обзоре протоколов. Если провайдер режет UDP-трафик, чистый WireGuard на роутере может не заработать вовсе: в этом случае имеет смысл смотреть в сторону протоколов с маскировкой.

Правовая рамка

Материал носит образовательный, научно-технический характер и описывает настройку шифрования трафика и безопасного удалённого доступа к собственной сети. Прямой ответственности за использование VPN физическим лицом законодательство РФ не устанавливает: нормы статьи 15.8 ФЗ-149 и статьи 13.52 КоАП адресованы владельцам средств доступа, предоставляющим такую возможность третьим лицам. Материал не является юридической консультацией.

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

Собрали то, что чаще всего спрашивают при первой настройке туннеля на MikroTik.

На каких версиях RouterOS есть WireGuard?

Раздел WireGuard существует только в ветке RouterOS 7 — в шестой ветке его нет, и никакими пакетами он туда не добавляется. Часть возможностей появилась позже: выдачу готовой конфигурации клиента и QR-кода через show-client-config документация MikroTik описывает с версии 7.21, вышедшей 12 января 2026 года. Перед обновлением между мажорными ветками сохраните резервную копию конфигурации.

Какой порт использует WireGuard на MikroTik?

По умолчанию интерфейс слушает UDP-порт 13231 — это значение свойства listen-port в документации MikroTik. Порт можно сменить на любой свободный, важно лишь, чтобы он совпадал с параметром endpoint-port на второй стороне и был разрешён в брандмауэре обеих сторон. Значение MTU интерфейса по умолчанию — 1420.

Почему туннель показывает рукопожатие, но сайты не открываются?

Чаще всего не настроена подмена адреса для локальной сети: пакеты уходят в туннель с внутренними адресами, и ответ вернуться не может. Добавьте правило /ip/firewall/nat add chain=srcnat out-interface=wireguard1 action=masquerade. Вторая частая причина — узкий allowed-address у пира: если там указана только подсеть туннеля, остальной трафик идёт мимо.

Нужен ли роутеру белый IP-адрес?

Нет, если роутер выступает клиентской стороной и сам инициирует соединение. Публичный адрес нужен той стороне, к которой подключаются, — обычно это арендованный сервер. Когда роутер стоит за NAT провайдера, задайте у пира persistent-keepalive со значением около 25 секунд, иначе запись в таблице трансляций провайдера истечёт и канал будет обрываться.

Можно ли пустить через туннель только часть устройств?

Да, для этого в RouterOS используются маркировка соединений и отдельная таблица маршрутизации: правило mangle помечает трафик нужных адресов, а маршрут по умолчанию для этой метки указывает на интерфейс WireGuard. Остальные устройства продолжают ходить напрямую. Это тот же принцип раздельного туннелирования, что и в клиентских приложениях.

Поделиться: Telegram ВКонтакте