WireGuard VPN на MikroTik: настройка сервера и клиентов
WireGuard — современный VPN-протокол со встроенной поддержкой в RouterOS 7. Проще в настройке чем IPSec, быстрее по производительности, минимальный оверхед. Разворачиваем сервер на MikroTik и подключаем клиентов.
Схема
Настройка сервера на 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
0.0.0.0/0.
Подключение с Android / iOS
Официальное приложение WireGuard из Google Play / App Store:
- Создать новый туннель → "Создать с нуля"
- Вставить тот же конфиг что и для десктопа (с соответствующим IP, например 10.10.20.3/24)
- Или отсканировать QR-код, сгенерированный десктопным приложением WireGuard (Export → QR Code)
Проверка работы
# Статус peers на MikroTik /interface wireguard peers print # Должно показывать last-handshake — недавнее время означает активное соединение
Если last-handshake пустой или давний — проверьте:
- Совпадают ли публичные ключи на сервере и клиенте (сервер ↔ клиент, не перепутаны местами)
- Открыт ли UDP-порт на внешнем файрволе/провайдере
- Правильный ли Endpoint (внешний IP MikroTik, не локальный)
Частые проблемы
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