Керування маршрутизатором: панель VyManager або API
Керувати маршрутизатором можна двома способами — через графічну панель VyManager (мишкою) або через API (програмно). Обирайте зручніше: панель чудово підходить для візуального налаштування, а API — для автоматизації та завдань, яких панель поки не охоплює.
VyManager — графічна панель
Найпростіше керувати маршрутизатором через графічну панель VyManager . Відкрийте її кнопкою Open VyManager на сторінці маршрутизатора — вхід виконується автоматично, окремий пароль не потрібен.
Усе налаштовується мишкою:
- Firewall — правила, групи та політики фільтрації трафіку.
- VPN (WireGuard) — підніміть тунель і підключіть свої пристрої.
- NAT і переадресація портів — публікація сервісів назовні.
- DHCP — діапазони адрес, що видаються у ваших мережах.
- Маршрутизація — статичні маршрути, а також BGP і OSPF для складних топологій.
- інтерфейси маршрутизатора.
Панель покриває щоденні завдання без командного рядка. Для всього іншого й для автоматизації є API — воно дає доступ до будь-якого параметра VyOS без обмежень.
Керування через API
Маршрутизатор налаштовується через HTTPS API — це зручно для автоматизації та разових завдань. Нижче наведено готові приклади (curl) для типових сценаріїв.
Що знадобиться
- Адреса маршрутизатора — його публічна IP (сторінка маршрутизатора, поле Public IP).
- Ваш API-ключ — сторінка маршрутизатора, блок Router Information, поле API Key (кнопка Copy).
У прикладах нижче: <ROUTER-IP> — ваша публічна IP, <API-KEY> — ваш ключ.
Як працює запит
Будь-яка зміна виконується у два кроки:
- Apply — POST-запит на
/configureз набором команд (застосовуються атомарно). - Save — POST-запит на
/config-file— інакше зміни буде втрачено після перезавантаження маршрутизатора (див. «Збереження змін» нижче).
Конфігурацію можна будь-коли прочитати — POST-запитом на /retrieve. Прапорець -k у curl дозволяє прийняти самопідписаний сертифікат маршрутизатора.
1. Читання конфігурації
curl -k -X POST "https://<ROUTER-IP>/retrieve" \
--form 'data={"op":"showConfig","path":[]}' \
--form 'key=<API-KEY>'
Щоб переглянути лише частину, вкажіть шлях, наприклад NAT: "path":["nat"], інтерфейси: "path":["interfaces"].
2. Переадресація порту на внутрішній сервер (DNAT)
Перенаправте порт публічної IP маршрутизатора на сервер у приватній мережі. Приклад: зовнішній порт 8080 → сервер 10.0.0.50:80, лише з вашої IP 203.0.113.5.
curl -k -X POST "https://<ROUTER-IP>/configure" --form 'key=<API-KEY>' --form 'data=[
{"op":"set","path":["nat","destination","rule","1000","description"],"value":"web-to-10.0.0.50"},
{"op":"set","path":["nat","destination","rule","1000","inbound-interface","name"],"value":"eth0"},
{"op":"set","path":["nat","destination","rule","1000","protocol"],"value":"tcp"},
{"op":"set","path":["nat","destination","rule","1000","destination","port"],"value":"8080"},
{"op":"set","path":["nat","destination","rule","1000","source","address"],"value":"203.0.113.5"},
{"op":"set","path":["nat","destination","rule","1000","translation","address"],"value":"10.0.0.50"},
{"op":"set","path":["nat","destination","rule","1000","translation","port"],"value":"80"}
]'
Потім збережіть (див. «Збереження змін» нижче). Використовуйте номери правил від 1000 , щоб вони не конфліктували з автоматичними. Поле source.address обмежує доступ вашою IP; приберіть його, якщо порт має бути відкритим для всіх.
3. Правило файрвола
Приклад: заблокувати TCP-порт 23 до ваших серверів, залишивши решту трафіку відкритою.
curl -k -X POST "https://<ROUTER-IP>/configure" --form 'key=<API-KEY>' --form 'data=[
{"op":"set","path":["firewall","ipv4","forward","filter","default-action"],"value":"accept"},
{"op":"set","path":["firewall","ipv4","forward","filter","rule","100","action"],"value":"drop"},
{"op":"set","path":["firewall","ipv4","forward","filter","rule","100","protocol"],"value":"tcp"},
{"op":"set","path":["firewall","ipv4","forward","filter","rule","100","destination","port"],"value":"23"}
]'
Рядок default-action: accept важливий — він зберігає роботу всього іншого трафіку й блокує лише задане правило. Файрвол також можна налаштувати мишкою в панелі VyManager.
4. WireGuard VPN
Найпростіше — панель VyManager : вона має вбудоване налаштування WireGuard і сама генерує ключі. Через API налаштування багатокрокове: згенеруйте ключі на маршрутизаторі, потім визначте інтерфейс і пір. Структура команд:
set interfaces wireguard wg0 address '10.10.0.1/24'
set interfaces wireguard wg0 port '51820'
set interfaces wireguard wg0 peer my-laptop public-key '<your device's public key>'
set interfaces wireguard wg0 peer my-laptop allowed-ips '10.10.0.2/32'
Генерацію ключів маршрутизатора й повний посібник наведено в документації VyOS (розділ WireGuard).
5. Діапазон DHCP у мережі
Назву вашої мережі видно в конфігурації (див. «Читання конфігурації» вище) у форматі LAN-eth1, LAN-eth2. Приклад — видавати адреси з діапазону 10.0.0.100-10.0.0.200:
curl -k -X POST "https://<ROUTER-IP>/configure" --form 'key=<API-KEY>' --form 'data=[
{"op":"set","path":["service","dhcp-server","shared-network-name","LAN-eth1","subnet","10.0.0.0/24","range","0","start"],"value":"10.0.0.100"},
{"op":"set","path":["service","dhcp-server","shared-network-name","LAN-eth1","subnet","10.0.0.0/24","range","0","stop"],"value":"10.0.0.200"}
]'
6. Збереження змін
Після будь-якого /configure:
curl -k -X POST "https://<ROUTER-IP>/config-file" \
--form 'data={"op":"save"}' \
--form 'key=<API-KEY>'
7. Скасування правила
Видаліть його повністю (наприклад, переадресацію порту з розділу 2), потім знову збережіть:
curl -k -X POST "https://<ROUTER-IP>/configure" \
--form 'data={"op":"delete","path":["nat","destination","rule","1000"]}' \
--form 'key=<API-KEY>'
Повний довідник
Усі команди VyOS із прикладами для кожної функції наведено в офіційній документації: docs.vyos.io.