MikroTik

WireGuard VPN на MikroTik: настройка сервера и клиентов

15 июня 2026 · 14 мин чтения

WireGuard — современный VPN-протокол со встроенной поддержкой в RouterOS 7. Проще в настройке чем IPSec, быстрее по производительности, минимальный оверхед. Разворачиваем сервер на MikroTik и подключаем клиентов.

Схема

MikroTik WireGuard Server 10.10.20.1/24 UDP :13231 💻 Ноутбук (офис) 10.10.20.2/32 📱 Телефон 10.10.20.3/32 🖥 Сервер (филиал) 10.10.20.4/32 Локальная сеть 192.168.1.0/24
WireGuard-сервер на MikroTik с тремя клиентами (point-to-point туннели)
Особенность WireGuard: в отличие от L2TP/IPSec, здесь каждый peer — это отдельная точка-точка пара ключей. Сервер просто содержит список всех разрешённых peer'ов.

Настройка сервера на MikroTik

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

/interface wireguard add name=wg-server listen-port=13231

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

/interface wireguard print
# Запомните public-key — это ключ сервера

2. Назначаем IP-адрес интерфейсу

/ip address add address=10.10.20.1/24 interface=wg-server

3. Открываем порт в файрволе

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

4. Добавляем клиентов (peers)

Для каждого устройства — отдельный peer с уникальным IP внутри туннельной подсети:

# Peer для ноутбука
/interface wireguard peers add interface=wg-server `
    public-key="КЛИЕНТСКИЙ_ПУБЛИЧНЫЙ_КЛЮЧ_1" `
    allowed-address=10.10.20.2/32 `
    comment="Laptop-Office"

# Peer для телефона
/interface wireguard peers add interface=wg-server `
    public-key="КЛИЕНТСКИЙ_ПУБЛИЧНЫЙ_КЛЮЧ_2" `
    allowed-address=10.10.20.3/32 `
    comment="Phone"
Ключи генерируются на стороне клиента. Публичный ключ клиент должен передать вам, а публичный ключ сервера — клиенту. Приватные ключи никогда не передаются.

5. Маршрутизация и NAT

# Доступ WG-клиентов в LAN
/ip firewall nat add chain=srcnat `
    src-address=10.10.20.0/24 `
    action=masquerade `
    comment="NAT WireGuard"

# Разрешаем форвардинг трафика
/ip firewall filter add chain=forward `
    src-address=10.10.20.0/24 `
    action=accept `
    comment="Allow WG forward"

Настройка клиента

Генерация ключей на клиенте (Windows/Linux/macOS)

В официальном приложении WireGuard нажмите Add Tunnel → Add empty tunnel — ключи генерируются автоматически. Либо вручную:

# Linux/macOS
wg genkey | tee privatekey | wg pubkey > publickey

Конфигурация клиента

[Interface]
PrivateKey = КЛИЕНТСКИЙ_ПРИВАТНЫЙ_КЛЮЧ
Address = 10.10.20.2/24
DNS = 10.10.20.1

[Peer]
PublicKey = ПУБЛИЧНЫЙ_КЛЮЧ_СЕРВЕРА
Endpoint = 203.0.113.1:13231
AllowedIPs = 192.168.1.0/24, 10.10.20.0/24
PersistentKeepalive = 25
AllowedIPs: если нужен доступ только к локальной сети офиса — укажите её подсети. Если нужно завернуть весь трафик клиента через MikroTik — поставьте 0.0.0.0/0.
PersistentKeepalive = 25 обязателен для клиентов за NAT (большинство домашних и мобильных сетей) — без этого туннель "засыпает" и соединение рвётся.

Подключение с Android / iOS

Официальное приложение WireGuard из Google Play / App Store:

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

# Статус peers на MikroTik
/interface wireguard peers print

# Должно показывать last-handshake — недавнее время означает активное соединение

Если last-handshake пустой или давний — проверьте:

Частые проблемы

Handshake не происходит

# Проверьте что публичный ключ сервера правильный
/interface wireguard print

# И что порт действительно открыт снаружи
/tool fetch url="https://2ip.ru" # проверка внешнего IP

Handshake есть, но трафик не идёт

Обычно дело в файрволе forward или отсутствии NAT-правила. Проверьте оба правила из шага 5.

Медленная скорость

WireGuard на MikroTik частично использует CPU роутера для шифрования. На слабых моделях (hAP lite, RB750) скорость может быть ограничена процессором, а не сетью — проверьте загрузку CPU:

/system resource print
Многоядерные модели (CCR-серия, RB5009) обрабатывают WireGuard значительно быстрее за счёт многопоточного шифрования.