Naudokite visas „NetworkManager“ komandinės eilutės tinklo ryšio valdymo įrankio funkcijas Linux naudojant „nmcli“ įrankį.

Naudingumas tiesiogiai iškviečia API, kad pasiektų NetworkManager funkcijas.
Jis pasirodė 2010 m. ir daugeliui tapo alternatyviu tinklo sąsajų ir jungčių konfigūravimo būdu. Nors kai kurie žmonės vis dar naudoja . Kadangi nmcli yra komandų eilutės sąsajos (CLI) įrankis, skirtas naudoti terminalo languose ir scenarijuose, jis idealiai tinka sistemos administratoriams, dirbantiems be GUI.
ncmli komandos sintaksė
Apskritai sintaksė atrodo taip:
$ nmcli <options> <section> <action>- parinktys yra parametrai, nustatantys nmcli veikimo subtilybes,
- skyrius (sekcija) - nustato, kurias naudingumo funkcijas naudoti,
- veiksmas – leidžia nurodyti, ką iš tikrųjų reikia padaryti.
Iš viso yra 8 skyriai, kurių kiekvienas yra susietas su tam tikru komandų (veiksmų) rinkiniu:
- Pagalba teikia pagalbą apie ncmcli komandas ir jų naudojimą.
- bendras grąžina NetworkManager būseną ir visuotinę konfigūraciją.
- Tinklų apima komandas, skirtas užklausai tinklo ryšio būsenai ir jungtims įjungti / išjungti.
- radijo apima komandas, leidžiančias užklausti „WiFi“ tinklo ryšio būseną ir įjungti / išjungti ryšius.
- monitorius apima komandas, skirtas stebėti NetworkManager veiklą ir stebėti tinklo jungčių būklės pokyčius.
- Ryšys apima komandas, skirtas valdyti tinklo sąsajas, pridėti naujų jungčių ir ištrinti esamas.
- Įrenginio dažniausiai naudojamas su prietaisu susijusiems parametrams (pvz., sąsajos pavadinimui) pakeisti arba įrenginiams prijungti naudojant esamą ryšį.
- Paslaptis registruoja nmcli kaip NetworkManager „slaptąjį agentą“, kuris klauso slaptų pranešimų. Ši skiltis naudojama retai, nes nmcli taip veikia pagal nutylėjimą jungiantis prie tinklų.
Paprasti pavyzdžiai
Prieš pradėdami įsitikinkite, kad „NetworkManager“ veikia ir „nmcli“ gali susisiekti su ja:
$ nmcli general
STATE CONNECTIVITY WIFI-HW WIFI WWAN-HW WWAN
connected full enabled enabled enabled enabledDarbas dažnai pradedamas peržiūrint visus tinklo ryšio profilius:
$ nmcli connection show
NAME UUID TYPE DEVICE
Wired connection 1 ac3241e4-b424-35d6-aaa7-07498561688d ethernet enp0s3
Wired connection 2 2279d917-fa02-390c-8603-3083ec5a1d3e ethernet enp0s8
Wired connection 3 52d89737-de92-35ec-b082-8cf2e5ac36e6 ethernet enp0s9Ši komanda naudoja veiksmas rodyti skyriui Ryšys.
Jis sukasi bandymo mašinoje Ubuntu 04/20 Šiuo atveju radome tris laidinius ryšius: enp0s3, enp0s8 ir enp0s9.
Tvarkyti ryšius
Svarbu suprasti, kad nmcli terminu Ryšys reiškia objektą, kuriame yra visa informacija apie ryšį. Kitaip tariant, tai yra tinklo konfigūracija. Ryšys apima visą su ryšiu susijusią informaciją, įskaitant sąsajos sluoksnį ir IP adresų informaciją. Tai yra 2 ir 3 lygmenys OSI tinklo modelyje.
Kai nustatote tinklą Linux, paprastai konfigūruojate ryšius, kurie galiausiai bus susieti su tinklo įrenginiais, kurie savo ruožtu yra kompiuteryje įdiegtos tinklo sąsajos. Kai įrenginys naudoja ryšį, jis laikomas aktyviu arba veikiančiu. Jei ryšys nenaudojamas, jis yra neaktyvus arba nutrūkęs.
Tinklo jungčių pridėjimas
Ncmli programa leidžia greitai pridėti ir iš karto konfigūruoti ryšius. Pavyzdžiui, norėdami pridėti laidinį ryšį 2 (su enp0s8), turite paleisti šią komandą kaip supervartotoją:
$ sudo nmcli connection add type ethernet ifname enp0s8
Connection 'ethernet-enp0s8' (09d26960-25a0-440f-8b20-c684d7adc2f5) successfully added.Tipo parinktyje nurodome, kad tai bus eterneto ryšys, o parinktyje ifname (sąsajos pavadinimas) nurodome tinklo sąsają, kurią norime naudoti.
Štai kas atsitiks paleidus komandą:
$ nmcli connection show
NAME UUID TYPE DEVICE
Wired connection 1 ac3241e4-b424-35d6-aaa7-07498561688d ethernet enp0s3
Wired connection 2 2279d917-fa02-390c-8603-3083ec5a1d3e ethernet enp0s8
Wired connection 3 52d89737-de92-35ec-b082-8cf2e5ac36e6 ethernet enp0s9
ethernet-enp0s8 09d26960-25a0-440f-8b20-c684d7adc2f5 ethernet -- Sukurtas naujas ryšys, ethernet-enp0s8. Jam buvo priskirtas UUID, o ryšio tipas buvo Ethernet. Pakelkime jį naudodami komandą aukštyn:
$ nmcli connection up ethernet-enp0s8
Connection successfully activated (D-Bus active path: /org/freedesktop/NetworkManager/ActiveConnection/4)Dar kartą patikrinkime aktyvių ryšių sąrašą:
$ nmcli connection show --active
NAME UUID TYPE DEVICE
Wired connection 1 ac3241e4-b424-35d6-aaa7-07498561688d ethernet enp0s3
ethernet-enp0s8 09d26960-25a0-440f-8b20-c684d7adc2f5 ethernet enp0s8
Wired connection 3 52d89737-de92-35ec-b082-8cf2e5ac36e6 ethernet enp0s9Pridėtas naujas ryšys ethernet-enp0s8, jis yra aktyvus ir naudoja enp0s8 tinklo sąsają.
Ryšių nustatymas
Ncmli programa leidžia lengvai pakeisti esamų jungčių parametrus. Pavyzdžiui, turite pakeisti savo dinaminį (DHCP) IP adresą į statinį IP adresą.
Tarkime, kad turime nustatyti IP adresą į 192.168.4.26. Norėdami tai padaryti, naudojame dvi komandas. Pirmasis tiesiogiai nustatys IP adresą, o antrasis pakeis IP adreso nustatymo metodą rankiniu būdu:
$ nmcli connection modify ethernet-enp0s8 ipv4.address 192.168.4.26/24
$ nmcli connection modify ethernet-enp0s8 ipv4.method manualNepamirškite nustatyti ir potinklio kaukės. Mūsų bandomajam ryšiui tai yra 255.255.255.0 arba /24, jei naudojamas maršrutas be klasių (CIDR).
Kad pakeitimai įsigaliotų, turite išjungti ir vėl suaktyvinti ryšį:
$ nmcli connection down ethernet-enp0s8
Connection 'ethernet-enp0s8' successfully deactivated (D-Bus active path: /org/freedesktop/NetworkManager/ActiveConnection/4)
$ nmcli connection up ethernet-enp0s8
Connection successfully activated (D-Bus active path: /org/freedesktop/NetworkManager/ActiveCJei, priešingai, reikia įdiegti DHCP, naudokite automatinį, o ne rankinį:
$ nmcli connection modify ethernet-enp0s8 ipv4.method autoDarbas su įrenginiais
Tam naudojame skyrių Įrenginys.
Tikrinama įrenginio būsena
$ nmcli device status
DEVICE TYPE STATE CONNECTION
enp0s3 ethernet connected Wired connection 1
enp0s8 ethernet connected ethernet-enp0s8
enp0s9 ethernet connected Wired connection 3
lo loopback unmanaged -- Įrenginio informacijos užklausa
Norėdami tai padaryti, naudokite veiksmą Rodyti iš įrenginio skyriaus (turite nurodyti įrenginio pavadinimą). Priemonė rodo daug informacijos, dažnai keliuose puslapiuose.
Pažvelkime į enp0s8 sąsają, kurią naudoja mūsų naujasis ryšys. Įsitikinkite, kad jis naudoja tiksliai tą IP adresą, kurį nustatėme anksčiau:
$ nmcli device show enp0s8
GENERAL.DEVICE: enp0s8
GENERAL.TYPE: ethernet
GENERAL.HWADDR: 08:00:27:81:16:20
GENERAL.MTU: 1500
GENERAL.STATE: 100 (connected)
GENERAL.CONNECTION: ethernet-enp0s8
GENERAL.CON-PATH: /org/freedesktop/NetworkManager/ActiveConnection/6
WIRED-PROPERTIES.CARRIER: on
IP4.ADDRESS[1]: 192.168.4.26/24
IP4.GATEWAY: --
IP4.ROUTE[1]: dst = 192.168.4.0/24, nh = 0.0.0.0, mt = 103
IP6.ADDRESS[1]: fe80::6d70:90de:cb83:4491/64
IP6.GATEWAY: --
IP6.ROUTE[1]: dst = fe80::/64, nh = ::, mt = 103
IP6.ROUTE[2]: dst = ff00::/8, nh = ::, mt = 256, table=255Informacijos yra gana daug. Pabrėžkime pagrindinį dalyką:
- Tinklo sąsajos pavadinimas: enp0s8.
- Ryšio tipas: laidinis Ethernet ryšys.
- Matome įrenginio MAC adresą.
- Nurodytas maksimalus perdavimo vienetas (MTU). — didžiausias vieno paketo naudingų duomenų bloko dydis, kurį protokolas gali perduoti be suskaidymo.
- Įrenginys šiuo metu prijungtas.
- Ryšio pavadinimaskuris įrenginys naudoja: ethernet-enp0s8.
- Prietaisas naudoja IP adresas, kurį įdiegėme anksčiau: 192.168.4.26/24.
Kita informacija susijusi su numatytaisiais maršruto parinkimo ir ryšio šliuzo parametrais. Jie priklauso nuo konkretaus tinklo.
Interaktyvus nmcli redaktorius
nmcli taip pat turi paprastą interaktyvų rengyklę, su kuria kai kuriems gali būti patogiau dirbti. Pavyzdžiui, norėdami paleisti jį naudodami ethernet-enp0s8 ryšį, naudokite veiksmas Redaguoti:
$ nmcli connection edit ethernet-enp0s8Jis taip pat turi nedidelę pagalbą, tačiau jos dydis yra mažesnis nei konsolės versija:
===| nmcli interactive connection editor |===
Editing existing '802-3-ethernet' connection: 'ethernet-enp0s8'
Type 'help' or '?' for available commands.
Type 'print' to show all the connection properties.
Type 'describe [<setting>.<prop>]' for detailed property description.
You may edit the following settings: connection, 802-3-ethernet (ethernet), 802-1x, dcb, sriov, ethtool, match, ipv4, ipv6, tc, proxy
nmcli>Jei įvesite spausdinimo komandą ir paspausite Enter, nmcli parodys visas ryšio ypatybes:
===============================================================================
Connection profile details (ethernet-enp0s8)
===============================================================================
connection.id: ethernet-enp0s8
connection.uuid: 09d26960-25a0-440f-8b20-c684d7adc2f5
connection.stable-id: --
connection.type: 802-3-ethernet
connection.interface-name: enp0s8
connection.autoconnect: yes
connection.autoconnect-priority: 0
connection.autoconnect-retries: -1 (default)
connection.multi-connect: 0 (default)
connection.auth-retries: -1
connection.timestamp: 1593967212
connection.read-only: no
connection.permissions: --
connection.zone: --
connection.master: --
connection.slave-type: --
connection.autoconnect-slaves: -1 (default)
connection.secondaries: --Pavyzdžiui, norėdami nustatyti DHCP ryšį, įveskite goto ipv4 ir spustelėkite įeiti:
nmcli> goto ipv4
You may edit the following properties: method, dns, dns-search,
dns-options, dns-priority, addresses, gateway, routes, route-metric,
route-table, routing-rules, ignore-auto-routes, ignore-auto-dns,
dhcp-client-id, dhcp-iaid, dhcp-timeout, dhcp-send-hostname,
dhcp-hostname, dhcp-fqdn, dhcp-hostname-flags, never-default, may-fail,
dad-timeout
nmcli ipv4>Tada parašykite set method auto ir spustelėkite įeiti:
nmcli ipv4> set method auto
Do you also want to clear 'ipv4.addresses'? [yes]:Jei norite išvalyti statinį IP adresą, spustelėkite įeiti. Kitu atveju įveskite ne ir paspauskite Enter. Galite jį išsaugoti, jei manote, kad jums jo prireiks ateityje. Bet net ir su išsaugotu statiniu IP adresu, DHCP bus naudojamas, jei metodas nustatytas kaip automatinis.
Norėdami išsaugoti pakeitimus, naudokite išsaugojimo komandą:
nmcli ipv4> save
Connection 'ethernet-enp0s8' (09d26960-25a0-440f-8b20-c684d7adc2f5) successfully updated.
nmcli ipv4>Įveskite quit, kad išeitumėte iš interaktyvios nmcli redaktoriaus. Jei apsigalvosite apie išvykimą, naudokite komandą atgal.
Ir tai dar ne viskas
Atidarykite nmcli Interactive Editor ir pažiūrėkite, kiek nustatymų yra ir kiek ypatybių turi kiekvienas nustatymas. Interaktyvusis redaktorius yra puikus įrankis, bet jei norite naudoti nmcli vienos eilutės eilutėse arba scenarijuose, jums reikės įprastos komandinės eilutės versijos.
Dabar, kai turite pagrindus, patikrinkite nmcli, kad sužinotumėte, kaip dar jis gali jums padėti.
Dėl reklamos teisių
Epiniai serveriai - yra arba Linux Su galingais AMD EPYC procesoriais ir itin greitais „Intel NVMe“ diskais. Užsisakykite dabar!
Šaltinis: www.habr.com
