Tvarkykite tinklo ryšius Linux naudojant nmcli konsolės įrankį

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

Tvarkykite tinklo ryšius Linux naudojant nmcli konsolės įrankį

Naudingumas nmcli 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 ifconfig. 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  enabled

Darbas 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  enp0s9

Pridė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 manual

Nepamirš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/ActiveC

Jei, priešingai, reikia įdiegti DHCP, naudokite automatinį, o ne rankinį:

$ nmcli connection modify ethernet-enp0s8 ipv4.method auto

Darbas 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=255

Informacijos 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-enp0s8

Jis 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 Vyro puslapis nmcli, kad sužinotumėte, kaip dar jis gali jums padėti.

Dėl reklamos teisių

Epiniai serveriai - yra virtualūs serveriai įjungta Windows arba Linux Su galingais AMD EPYC procesoriais ir itin greitais „Intel NVMe“ diskais. Užsisakykite dabar!

Tvarkykite tinklo ryšius Linux naudojant nmcli konsolės įrankį

Šaltinis: www.habr.com

Pirkite patikimą prieglobą svetainėms su DDoS apsauga, VPS VDS serveriais 🔥 Įsigykite patikimą svetainių talpinimą su DDoS apsauga, VPS VDS serveriais | ProHoster