Table of Contents

Maršrutizatoriaus valdymas: VyManager skydelis arba API

Maršrutizatorių galite valdyti dviem būdais – per grafinį skydelį VyManager (pele) arba per API (programiškai). Rinkitės, kas jums patogiau: skydelis puikiai tinka vizualiai konfigūracijai, API – automatizavimui ir užduotims, kurių skydelis dar neapima.


VyManager – grafinis skydelis

Paprasčiausias būdas valdyti maršrutizatorių yra grafinis skydelis VyManager . Atidarykite jį mygtuku Open VyManager maršrutizatoriaus puslapyje – prisijungsite automatiškai, atskiro slaptažodžio nereikia.

Viskas konfigūruojama pele:

  • Firewall – taisyklės, grupės ir srauto filtravimo politikos.
  • VPN (WireGuard) – tunelio sukūrimas ir jūsų įrenginių prijungimas.
  • NAT ir prievadų peradresavimas – paslaugų paskelbimas išorėje.
  • DHCP – adresų intervalai, išduodami jūsų tinkluose.
  • Maršrutizavimas – statiniai maršrutai, taip pat BGP ir OSPF sudėtingoms topologijoms.
  • Maršrutizatoriaus tinklo sąsajos.

Skydelis apima kasdienes užduotis be komandinės eilutės. Viskam kitam ir automatizavimui yra API – jis suteikia prieigą prie bet kurio VyOS nustatymo be apribojimų.


Valdymas per API

Maršrutizatorius konfigūruojamas per HTTPS API – patogu automatizavimui ir vienkartinėms užduotims. Toliau pateikti paruošti pavyzdžiai (curl) dažniems scenarijams.

Ko jums reikės

  • Maršrutizatoriaus adreso – jo viešojo IP (maršrutizatoriaus puslapis, laukas Public IP).
  • Jūsų API rakto – maršrutizatoriaus puslapis, blokas Router Information, laukas API Key (mygtukas Copy).

Toliau pateiktuose pavyzdžiuose: <ROUTER-IP> yra jūsų viešasis IP, <API-KEY> yra jūsų raktas.

Kaip veikia užklausa

Bet koks pakeitimas atliekamas dviem žingsniais:

  1. Apply – POST į /configure su komandų rinkiniu (taikoma atomiškai).
  2. Save – POST į /config-file, kitaip pakeitimai bus prarasti persikrovus maršrutizatoriui (žr. „Pakeitimų išsaugojimas“ toliau).

Konfigūraciją galite perskaityti bet kada – POST į /retrieve. Parinktis -k curl priima maršrutizatoriaus savarankiškai pasirašytą sertifikatą.


1. Konfigūracijos skaitymas

curl -k -X POST "https://<ROUTER-IP>/retrieve" \
  --form 'data={"op":"showConfig","path":[]}' \
  --form 'key=<API-KEY>'

Norėdami peržiūrėti tik dalį, nurodykite kelią, pavyzdžiui, NAT: "path":["nat"], sąsajas: "path":["interfaces"].


2. Prievado peradresavimas į vidinį serverį (DNAT)

Nukreipkite maršrutizatoriaus viešojo IP prievadą į serverį privačiame tinkle. Pavyzdys: išorinis prievadas 8080 → serveris 10.0.0.50:80, tik iš jūsų 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"}
]'

Tada išsaugokite (žr. „Pakeitimų išsaugojimas“ toliau). Naudokite taisyklių numerius nuo 1000 ir daugiau , kad jie nesikirstų su automatinėmis. Laukas source.address riboja prieigą jūsų IP; pašalinkite jį, jei prievadas turi būti atviras visiems.


3. Ugniasienės taisyklė

Pavyzdys: blokuoti TCP prievadą 23 į jūsų serverius, paliekant likusį srautą atvirą.

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"}
]'

Eilutė default-action: accept yra svarbi – ji užtikrina, kad visas kitas srautas veiktų, o blokuojama tik jūsų nustatyta taisyklė. Ugniasienę taip pat galima sukonfigūruoti pele VyManager skydelyje.


4. WireGuard VPN

Paprasčiausia naudoti skydelį VyManager – jame integruotas WireGuard nustatymas ir raktai sugeneruojami už jus. Per API nustatymas kelių žingsnių: sugeneruokite raktus maršrutizatoriuje, tada apibrėžkite sąsają ir partnerį (peer). Komandų struktūra:

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'

Maršrutizatoriaus raktų generavimas ir visas vadovas pateikti VyOS dokumentacijoje (skyrius WireGuard).


5. DHCP intervalas tinkle

Jūsų tinklo pavadinimas matomas konfigūracijoje (žr. „Konfigūracijos skaitymas“ aukščiau) tokiu pavidalu: LAN-eth1, LAN-eth2. Pavyzdys – išduoti adresus iš intervalo 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. Pakeitimų išsaugojimas

Po kiekvieno /configure:

curl -k -X POST "https://<ROUTER-IP>/config-file" \
  --form 'data={"op":"save"}' \
  --form 'key=<API-KEY>'

7. Taisyklės atšaukimas

Ištrinkite ją visą (pavyzdžiui, prievado peradresavimą iš 2 skyriaus) ir vėl išsaugokite:

curl -k -X POST "https://<ROUTER-IP>/configure" \
  --form 'data={"op":"delete","path":["nat","destination","rule","1000"]}' \
  --form 'key=<API-KEY>'

Pilnas žinynas

Visos VyOS komandos su kiekvienos funkcijos pavyzdžiais pateiktos oficialioje dokumentacijoje: docs.vyos.io.