MikroTik: Підключення до WireGuard VPN

Ця інструкція показує як підключити MikroTik роутер до існуючого WireGuard сервера. Покриваємо обидва способи — через WinBox (GUI) та термінал (CLI).

Що потрібно

Перед початком переконайтесь що маєте:

  • [ ] MikroTik з RouterOS 7.x (WireGuard вбудований)
  • [ ] Доступ до роутера (WinBox або SSH)
  • [ ] Дані від сервера:
  • IP та порт сервера (наприклад 203.0.113.1:51820)
  • Публічний ключ сервера
  • Ваша IP-адреса в VPN (наприклад 10.10.10.5/24)
  • Мережі для маршрутизації (наприклад 10.10.10.0/24)

Спосіб 1: Через WinBox (GUI)

Крок 1: Відкрити WinBox

  1. Запустіть WinBox
  2. Підключіться до роутера (MAC або IP)
  3. Залогіньтесь
┌─────────────────────────────────────┐
 WinBox                              
├─────────────────────────────────────┤
 Connect To: 192.168.88.1            
 Login:      admin                   
 Password:   ********                
                        [Connect]    
└─────────────────────────────────────┘

Крок 2: Створити WireGuard інтерфейс

  1. Перейдіть: WireGuardвкладка WireGuard
  2. Натисніть [+] (Add New)
  3. Заповніть:
Поле Значення
Name wg-umtc
Listen Port 51820 (або залиште пустим для клієнта)
Private Key генерується автоматично
  1. Натисніть OK
┌─────────────────────────────────────────┐
 New WireGuard Interface                 
├─────────────────────────────────────────┤
 Name:         [wg-umtc              ]   
 MTU:          [1420                 ]   
 Listen Port:  [51820                ]   
                                         
 Private Key:  [Auto-generated       ]   
 Public Key:   Kx7jR9...показується      
                                         
            [Cancel]  [OK]               
└─────────────────────────────────────────┘

📋 Важливо: Скопіюйте Public Key — він потрібен для сервера!

Крок 3: Додати IP-адресу на інтерфейс

  1. Перейдіть: IPAddresses
  2. Натисніть [+]
  3. Заповніть:
Поле Значення
Address 10.10.10.5/24
Interface wg-umtc
  1. Натисніть OK
┌─────────────────────────────────────────┐
 New Address                             
├─────────────────────────────────────────┤
 Address:    [10.10.10.5/24         ]    
 Network:    [10.10.10.0            ]    
 Interface:  [wg-umtc           ▼]       
                                         
            [Cancel]  [OK]               
└─────────────────────────────────────────┘

Крок 4: Додати Peer (сервер)

  1. Перейдіть: WireGuardвкладка Peers
  2. Натисніть [+]
  3. Заповніть:
Поле Значення
Interface wg-umtc
Public Key ключ_сервера
Endpoint 203.0.113.1
Endpoint Port 51820
Allowed Address 10.10.10.0/24
Persistent Keepalive 25
  1. Натисніть OK
┌─────────────────────────────────────────┐
 New WireGuard Peer                      
├─────────────────────────────────────────┤
 Interface:    [wg-umtc          ▼]      
 Public Key:   [ключ_сервера       ]     
 Endpoint:     [203.0.113.1        ]     
 Endpoint Port:[51820              ]     
 Allowed Address: [10.10.10.0/24   ]     
 Persistent Keepalive: [00:00:25   ]     
                                         
            [Cancel]  [OK]               
└─────────────────────────────────────────┘

💡 Allowed Address — це мережі, трафік до яких піде через VPN. Можна додати кілька через кому: 10.10.10.0/24, 192.168.100.0/24

WireGuard Peer — це просто "контакт у телефонній книзі".

Уяви:
- Твій роутер — це телефон
- WireGuard інтерфейс — це месенджер
- Peer — це контакт в цьому месенджері

Коли ти додаєш peer, ти кажеш роутеру:
1. Публічний ключ — "ось номер телефону цієї людини"
2. Endpoint — "шукай її за цією адресою" (IP:порт)
3. Allowed IPs — "якщо хочеш відправити щось на ці адреси — відправляй через цей контакт"

Приклад з життя:

Ти хочеш відправити лист на адресу 10.10.10.1

Роутер дивиться в "телефонну книгу" (peers):
  - Peer "Сервер": allowed-ips = 10.10.10.0/24

Роутер: "О, 10.10.10.1 підходить під 10.10.10.0/24, 
         відправлю через контакт 'Сервер'"

Ще простіше:

Термін Аналогія
WireGuard інтерфейс Месенджер (Telegram)
Private key Твій пароль від акаунту
Public key Твій username (@nickname)
Peer Контакт в телефонній книзі
Allowed IPs "Цей контакт відповідає за ці теми"

Чому "peer" а не "server/client"?

Бо WireGuard не має понять "сервер" і "клієнт" — всі рівні. Кожен учасник — просто peer (рівня). Хто перший почне говорити — той і "клієнт" в даний момент.

Крок 5: Перевірити підключення

  1. Перейдіть: WireGuardвкладка Peers
  2. Подивіться на колонку Rx/Tx — якщо є трафік, працює!
  3. Або в терміналі:
/ping 10.10.10.1

Спосіб 2: Через термінал (CLI)

Крок 1: Створити WireGuard інтерфейс

/interface wireguard add name=wg-umtc listen-port=51820

Крок 2: Подивитись згенерований публічний ключ

/interface wireguard print

Вивід:

Flags: X - disabled; R - running 
 0  R name="wg-umtc" mtu=1420 listen-port=51820 
      private-key="приватний_ключ"
      public-key="Kx7jR9...ваш_публічний_ключ"

📋 Скопіюйте public-key — його треба додати на сервер.

Крок 3: Додати IP-адресу

/ip address add address=10.10.10.5/24 interface=wg-umtc

Крок 4: Додати Peer (сервер)

/interface wireguard peers add \
    interface=wg-umtc \
    public-key="публічний_ключ_сервера" \
    endpoint-address=203.0.113.1 \
    endpoint-port=51820 \
    allowed-address=10.10.10.0/24 \
    persistent-keepalive=25s

Крок 5: Перевірити

# Статус інтерфейсу
/interface wireguard print

# Статус peer
/interface wireguard peers print

# Ping сервера
/ping 10.10.10.1

Повний скрипт для CLI

Скопіюйте та вставте в термінал MikroTik, замінивши значення:

# === НАЛАШТУВАННЯ (змініть на свої) ===
:local wgName "wg-umtc"
:local wgPort 51820
:local myAddress "10.10.10.5/24"
:local serverPubKey "ПУБЛІЧНИЙ_КЛЮЧ_СЕРВЕРА"
:local serverEndpoint "203.0.113.1"
:local serverPort 51820
:local allowedNets "10.10.10.0/24"

# === СТВОРЕННЯ ===
/interface wireguard add name=$wgName listen-port=$wgPort
/ip address add address=$myAddress interface=$wgName
/interface wireguard peers add \
    interface=$wgName \
    public-key=$serverPubKey \
    endpoint-address=$serverEndpoint \
    endpoint-port=$serverPort \
    allowed-address=$allowedNets \
    persistent-keepalive=25s

# Показати публічний ключ для сервера
:put "=== ВАШ ПУБЛІЧНИЙ КЛЮЧ ==="
/interface wireguard print value-list where name=$wgName

Налаштування на сервері

На сервері (Linux) додайте peer для MikroTik:

# Додати peer
sudo wg set wg0 peer ПУБЛІЧНИЙ_КЛЮЧ_MIKROTIK allowed-ips 10.10.10.5/32

# Або в /etc/wireguard/wg0.conf:
[Peer]
PublicKey = ПУБЛІЧНИЙ_КЛЮЧ_MIKROTIK
AllowedIPs = 10.10.10.5/32

Firewall (опціонально)

Якщо потрібен доступ до локальної мережі за MikroTik через VPN:

# Дозволити forward через WireGuard
/ip firewall filter add chain=forward in-interface=wg-umtc action=accept place-before=0
/ip firewall filter add chain=forward out-interface=wg-umtc action=accept place-before=1

Troubleshooting

Немає Rx/Tx трафіку

# Перевірте чи peer доступний
/ping 203.0.113.1

# Перевірте endpoint
/interface wireguard peers print detail

Можливі причини:
- Firewall на сервері блокує UDP порт
- Неправильний публічний ключ
- NAT без persistent-keepalive

Handshake є, але ping не працює

# Перевірте allowed-address на обох сторонах
/interface wireguard peers print

# Перевірте маршрути
/ip route print where dst-address~"10.10.10"

Перевірити handshake

/interface wireguard peers print detail

Шукайте рядок last-handshake — якщо є час, з'єднання працює.


Див. також

Шлях: step-by-step/mikrotik-wireguard-connect.md

UMTC Wiki © 2026 | Ukrainian Military Tactical Communications