MikroTik и WireGuard: объединяем офисы и удалённых сотрудников
Обновлено: октябрь 2026
Задача звучит одинаково в большинстве небольших компаний, у которых два адреса: два офиса в одной сети и сотрудники — из дома. В RouterOS v7 WireGuard встроен в систему, и эта связка решает обе задачи без лицензий и серверов. Разбираем: когда она подходит, адресный план, настройку двух офисов и мобильных сотрудников, минимум правил файрвола и проверку. Все команды — RouterOS v7.
ВАШЕЙ ИНФРАСТРУКТУРЫ
Когда MikroTik с WireGuard — правильный выбор, а когда нет
Связка уместна, когда роутеры MikroTik уже стоят или их покупка не проблема: WireGuard входит в RouterOS v7 без дополнительных лицензий, конфигурируется десятком команд и переносит на моделях с ARM-процессорами сотни мегабит в секунду. По сравнению с историческим набором роутеров — PPTP, который давно скомпрометирован и не должен использоваться, или L2TP/IPsec, который жив, но заметно капризнее в настройке, — WireGuard проще ровно в тех местах, где прежние варианты доставали: ключи вместо паролей, один порт UDP, предсказуемый NAT-проход.
Честные границы варианта. Если роутеров MikroTik нет и брать их стоит только ради VPN — возможно, лишнее: WireGuard поднимается и на любом маленьком Linux-сервере. WireGuard — третий уровень: L2-мосты между офисами им не делаются, они и редко нужны. Тонкие корпоративные требования — учёт доступов по пользователям, интеграция с доменной аутентификацией на шлюзе — выходят за его возможности; в небольших компаниях такие требования чаще воображаемые, чем реальные. Наконец, скорость туннеля зависит от процессора конкретной модели роутера — для гигабита между офисами стоит выбирать модель с запасом.
Есть и практическая причина не откладывать объединение: пока его нет, документы компании едут через мессенджеры и личную почту сотрудников. Туннель возвращает рабочие данные в рабочий контур компании — это аргумент не меньше, чем удобство.
Адресный план
Адресация фиксируется до первой команды — половина проблем объединения сетей рождается из пересечений. Пример, на котором пройдём всю статью:
| Сеть | Диапазон | Заметки |
|---|---|---|
| Офис А (LAN) | 192.168.10.0/24 | роутер — 192.168.10.1 |
| Офис Б (LAN) | 192.168.20.0/24 | роутер — 192.168.20.1 |
| Туннель А–Б | 10.10.10.0/30 | А — .1, Б — .2 |
| Сотрудники | 10.10.20.0/24 | адрес на устройство, с .10 |
Два правила к плану. Первое — ни одна из сетей не должна пересекаться с сетями других участников и с типовыми домашними диапазонами (192.168.0.0/24, 192.168.1.0/24): иначе у сотрудника дома туннель «поднимется», а до офиса достучаться не получится. Второе — оставляйте запас: третий офис и следующие десять сотрудников должны влезть без переделки плана.
Частный случай, который лучше не испытывать на себе: два офиса с одинаковыми сетями 192.168.1.0/24. Объединить их без перенастройки одной из сторон невозможно — оборудование, серверы и привычки пользователей переезжают в спешке. Если такое уже случилось, перенастройка станет первым проектом до всякого туннеля.
И последнее про размеры: не стоит занимать «на всякий случай» огромные диапазоны вроде целого 10.0.0.0/8. Подсеть /24 на каждую функцию — сотрудникам, туннелю, будущим офисам — достаточна по объёму и читаема в правилах файрвола.
Настройка RouterOS v7: интерфейс, ключи, peers
Команды ниже одинаково работают через терминал SSH и через WinBox — разница только в удобстве, порядок не меняется.
На роутере офиса А создаётся WireGuard-интерфейс — RouterOS генерирует ключевую пару автоматически при создании:
/interface wireguard
add name=wg-tunnel listen-port=13231
Публичный ключ показывается в выводе
/interface wireguard print — он понадобится второй
стороне. Туннельному интерфейсу назначается адрес из плана:
/ip address
add address=10.10.10.1/30 interface=wg-tunnel
На роутере офиса Б — те же два шага со своим адресом (10.10.10.2/30) и своим портом. После этого стороны обмениваются публичными ключами: роутер А получает пирами роутер Б, и наоборот. Пир офиса Б на роутере А:
/interface wireguard peers
add interface=wg-tunnel public-key="<публичный ключ Б>" \
endpoint-address=<адрес Б> endpoint-port=13231 \
allowed-address=10.10.10.2/32,192.168.20.0/24
allowed-address здесь — тот самый двойной параметр WireGuard: и разрешение «от этого ключа принимаю только эти сети», и указание, куда отправлять пакеты для них. Важное отличие от wg-quick: маршруты RouterOS по allowed-address не создаёт — их вносим отдельно:
/ip route
add dst-address=192.168.20.0/24 gateway=wg-tunnel
У офиса Б всё зеркально: пир — публичный ключ А с allowed-address 10.10.10.1/32 и 192.168.10.0/24, маршрут в 192.168.10.0/24 через туннель. Если белый адрес есть только у одной стороны, endpoint указывается только у второй — первой достаточно allowed-address: соединение она узнает по входящим пакетам.
Про ключи на роутере: приватный ключ хранится в конфигурации RouterOS, а значит попадает и в экспорт настроек. Резервную копию конфигурации стоит беречь как сам ключ: тот же уровень доступа, то же хранение отдельно от «рабочих» архивов. Потерю ключа чинит перевыпуск пары на обеих сторонах, утечку — нет.
Техническая деталь, которую полезно знать заранее: у WireGuard MTU ниже обычного Ethernet. В большинстве сетей это незаметно, но если между офисами затесался PPPoE, симптом известный: пинг проходит, а передача файлов «виснет». Лечится снижением MTU на туннельном интерфейсе до 1380–1400.
Site-to-site: два офиса в одной сети
Когда обе стороны знают ключы и маршруты, туннель живёт сам: сервер офиса А доступен из офиса Б по своему LAN-адресу и обратно. Но для полноценного «одного контура» остаются два штриха.
Первый — ответные маршруты на устройствах сетей: компьютеры офиса А посылают трафик в 192.168.20.0/24 своему шлюзу (роутеру А), который уже знает про туннель — этого достаточно. Но если в сети А стоит свой внутренний роутер или сервер с несколькими интерфейсами, о сети Б ему нужно сказать отдельно.
Второй — файрволы на самих серверах: служба, которая в офисе А слушает только «свою» подсеть 192.168.10.0/24, увидит запросы из Б как чужие с адресами 192.168.20.x. Доступ расширяется осознанно: конкретная служба — конкретной подсети.
С именами удобнее сразу: пока офисы ходят друг к другу по адресам, всё работает, но запоминаемость нулевая. Два честных пути — статические записи DNS на роутере (RouterOS умеет локальные записи сам) или внутренний DNS-сервер, которому сказано, куда пересылать чужую зону. Первый дешевле настроить, второй приятнее в жизни.
Заодно открываются и мелочи быта двух офисов: общая NAS, сетевой принтер второго офиса, камера склада. Стоит прикинуть список таких ресурсов заранее — он и станет списком разрешений в файрволе из следующего раздела.
Объединение проверяется с обычной машины в LAN офиса А:
ping 192.168.20.10 — если отвечает компьютер офиса
Б, site-to-site работает. Пинг с самого роутера менее честен:
он проверяет только ключи, но не маршруты и файрволы в пути.
Проверка из второго офиса выполняется зеркально — и пара таких
проходов в обе стороны становится быстрым регламентом после
любых работ на роутерах.
Доступ сотрудников к офису
Мобильные сотрудники подключаются к роутеру офиса А отдельными пирами — по одному на устройство, с адресами из диапазона 10.10.20.0/24:
/interface wireguard peers
add interface=wg-tunnel public-key="<ключ ноутбука>" \
allowed-address=10.10.20.10/32
На устройстве сотрудника — конфиг в формате wg-quick или профиль официального приложения: туннельный адрес 10.10.20.10, Endpoint — адрес офиса А и порт 13231, в AllowedIPs — офисная сеть 192.168.10.0/24, туннельные 10.10.10.0/24 и 10.10.20.0/24 и, при объединении, 192.168.20.0/24. Правило то же, что и для сервера: адрес из allowed-address пира на роутере — один на устройство.
Трафик сотрудников в офисные сети либо маршрутизируется честно — тогда в LAN нужен обратный маршрут в 10.10.20.0/24 на основном шлюзе, — либо прячется за src-nat на роутере:
/ip firewall nat
add chain=srcnat src-address=10.10.20.0/24 \
dst-address=192.168.10.0/24 out-interface=bridge action=masquerade
Masquerade быстрее в настройке и не трогает остальные устройства, но серверы видят сотрудников под адресом роутера — для разграничения доступов честная маршрутизация выразительнее. Отзыв доступа сотруднику — удаление его пира; ключ без пира на роутере бесполезен.
Конфиг сотрудника собирается из данных печати пира и адреса офиса: три строки в мобильном приложении или профиль wg-quick. Доступ в этой схеме круглосуточный; если работе «после шести» есть место, ограничение по времени делается правилом файрвола с параметром времени, а не хитростями с ключами. О том, что туннель жив, стоит помнить и снаружи: доступность офисного адреса и порта — первый кандидат в первый контур любого мониторинга.
И обычная практика порядка: адресный план, список пиров и правило проброса живут в одном документе — том же, где хранится копия конфигурации роутеров. Разрозненные записи «у кого-то в блокноте» к третьему сотруднику перестают совпадать с реальностью.
Файрвол: минимум правил, который не ломает туннель
Типовая ошибка при объединении — «настроил WireGuard, всё пропало»: файрвол RouterOS по умолчанию пропускает то, что явно не запрещено, но стандартные правила из старых инструкций легко режут туннельный трафик. Минимум, который нужен WireGuard:
/ip firewall filter
# WireGuard-порт на WAN
add chain=input action=accept protocol=udp dst-port=13231 \
in-interface-list=WAN
# управление роутером и DNS из туннельных сетей
add chain=input action=accept src-address=10.10.10.0/24
add chain=input action=accept src-address=10.10.20.0/24
Пересылка между туннелем и LAN проходит по цепочке forward: если в ней есть запрет «из WAN», туннельная сеть под него не подпадает — интерфейс wg-tunnel не в WAN-списке, и это стоит проверить, а не предполагать. Дальше — осознанное сужение: сотрудникам разрешаются нужные службы, подрядчику — один сервис, между офисами — рабочие порты. Правило «сначала заработало, потом сузили» надёжнее обратного.
Отдельная ловушка — NAT между офисами. Если в цепочке srcnat попадёт правило, маскарадящее туннельный трафик в сторону второй сети, офис Б увидит всех сотрудников и весь офис А под адресом роутера — и разграничение по адресам потеряет смысл. Site-to-site-трафик маскарадить не нужно вовсе: обе стороны знают маршруты. Сотрудникам из мобильной сети NAT показан выше — и только в сторону их офиса.
И про порядок: правила файрвола RouterOS применяются сверху вниз до первого совпадения, поэтому запрещающие правила ставятся после разрешающих, которые их отменяют для своих сетей. Правила, добавленные «в конец» рабочей конфигурации, стоит просмотреть на предмет конфликтов с этим порядком.
Проверка
Состояние пиров показывает, где искать причину:
/interface wireguard peers print
Поле last-handshake — главное: свежее рукопожатие означает, что ключи, адреса и порт в порядке. Если рукопожатия нет — проблема до WireGuard: недоступен Endpoint, закрыт порт, не тот ключ. Если рукопожатие есть, а трафика нет — проблема после: allowed-address, маршруты, файрвол. Такое разделение экономит время: до ключей дело обычно доходит один раз, при первичной настройке.
Полный маршрут проверки сквозной: с ноутбука сотрудника — ping туннельного адреса роутера (10.10.10.1), затем LAN-адреса офисного ресурса, затем открытие самого ресурса по имени, если используется внутренний DNS. Каждый шаг отвечает за свой слой — так же, как и в серверном варианте WireGuard.
Диагностика с самого роутера тоже возможна, если указать
источник: ping 192.168.20.10 src-address=192.168.10.1
отправляет пакеты от имени офисной сети, а не от WAN-адреса, —
так проверка точнее повторяет путь реального сотрудника. Журнал
WireGuard в RouterOS лаконичен: ошибки рукопожатия попадают в
лог с указанием пира, и этого достаточно, чтобы отличить
«не тот ключ» от «порт закрыт».
Частые вопросы
Оставить ли PPTP как запасной канал?+
Нет: его шифрование давно сломано, и запасным такой канал не является — скорее дырой. Старые правила и пиров PPTP снимаются; то, ради чего он держался, закрывает сам WireGuard.
Белый адрес есть не у обоих офисов — что делать?+
Endpoint нужен только стороне без белого адреса: она подключается к той, у которой он есть. Для адреса, который меняется у провайдера, RouterOS умеет собственный DDNS — IP Cloud: имя вида …sn.mynetname.net, которое и указывается в endpoint.
Какая скорость у такого туннеля?+
Зависит от процессора конкретной модели: шифрование WireGuard быстрое, но на бюджетных моделях потолок ниже канала провайдера. Для типичного офисного сценария — документы, база, печать — запас есть у большинства ARM-моделей.
Пойдёт ли телефония между офисами через туннель?+
SIP-трафик через WireGuard ходит; качество при этом зависит от ширины и ровности канала между офисами, а приоритизация голоса — отдельная настройка, к самому туннелю отношения не имеющая.
Нужно ли что-то менять у провайдера?+
Только на стороне, которая принимает входящие: белый адрес или проброс UDP-порта на роутер. Второй офис и все сотрудники подключаются откуда угодно — им ничего не нужно.
Сотрудник сменил ноутбук. Что делать?+
Сгенерировать на новом устройстве ключи, добавить новый пир со следующим адресом из плана, старый пир удалить. То же — при утере телефона: отзыв занимает минуту и не затрагивает остальных.
На другом конце роутер не MikroTik — помешает?+
Нет: WireGuard стандартизован, сторона не важна — совпасть должны ключи, порт и allowed-address. Конфигурация второго конца просто делается его инструментами.
Связанные материалы
Параметр AllowedIPs, на котором держится вся схема, разобран по строчкам в статье об AllowedIPs в WireGuard; строку для любого набора подсетей собирает калькулятор AllowedIPs. Сетевая часть под конкретную компанию — направления настройки MikroTik и VPN и удалённого доступа.