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¶
- Запустіть WinBox
- Підключіться до роутера (MAC або IP)
- Залогіньтесь
┌─────────────────────────────────────┐
│ WinBox │
├─────────────────────────────────────┤
│ Connect To: 192.168.88.1 │
│ Login: admin │
│ Password: ******** │
│ [Connect] │
└─────────────────────────────────────┘
Крок 2: Створити WireGuard інтерфейс¶
- Перейдіть: WireGuard → вкладка WireGuard
- Натисніть [+] (Add New)
- Заповніть:
| Поле | Значення |
|---|---|
| Name | wg-umtc |
| Listen Port | 51820 (або залиште пустим для клієнта) |
| Private Key | генерується автоматично |
- Натисніть 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-адресу на інтерфейс¶
- Перейдіть: IP → Addresses
- Натисніть [+]
- Заповніть:
| Поле | Значення |
|---|---|
| Address | 10.10.10.5/24 |
| Interface | wg-umtc |
- Натисніть OK
┌─────────────────────────────────────────┐
│ New Address │
├─────────────────────────────────────────┤
│ Address: [10.10.10.5/24 ] │
│ Network: [10.10.10.0 ] │
│ Interface: [wg-umtc ▼] │
│ │
│ [Cancel] [OK] │
└─────────────────────────────────────────┘
Крок 4: Додати Peer (сервер)¶
- Перейдіть: WireGuard → вкладка Peers
- Натисніть [+]
- Заповніть:
| Поле | Значення |
|---|---|
| Interface | wg-umtc |
| Public Key | ключ_сервера |
| Endpoint | 203.0.113.1 |
| Endpoint Port | 51820 |
| Allowed Address | 10.10.10.0/24 |
| Persistent Keepalive | 25 |
- Натисніть 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: Перевірити підключення¶
- Перейдіть: WireGuard → вкладка Peers
- Подивіться на колонку Rx/Tx — якщо є трафік, працює!
- Або в терміналі:
/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