Upravljanje mrežnim vezama u Linuxu pomoću konzolnog uslužnog programa nmcli

Iskoristite sve prednosti alata za upravljanje mrežom NetworkManager na Linux komandnoj liniji koristeći uslužni program nmcli.

Upravljanje mrežnim vezama u Linuxu pomoću konzolnog uslužnog programa nmcli

Utility nmcli direktno poziva API za pristup funkcijama NetworkManagera.

Pojavio se 2010. godine i za mnoge je postao alternativni način konfiguracije mrežnih sučelja i veza. Iako neki ljudi još uvijek koriste ifconfig. Budući da je nmcli alat za interfejs komandne linije (CLI) dizajniran za upotrebu u prozorima terminala i skriptama, idealan je za sistemske administratore koji rade bez GUI.

sintaksa komande ncmli

Generalno, sintaksa izgleda ovako:

$ nmcli <options> <section> <action>

  • opcije su parametri koji određuju suptilnosti nmcli operacije,
  • odjeljak (odjeljak) - određuje koje karakteristike uslužnog programa treba koristiti,
  • akcija - omogućava vam da navedete šta zapravo treba da se uradi.

Ukupno ima 8 sekcija, od kojih je svaki povezan sa određenim skupom naredbi (akcija):

  • pomoći pruža pomoć o ncmcli naredbama i njihovoj upotrebi.
  • Opšti vraća status NetworkManagera i globalnu konfiguraciju.
  • umrežavanje uključuje naredbe za ispitivanje statusa mrežne veze i omogućavanje/onemogućavanje veza.
  • radio uključuje komande za ispitivanje statusa WiFi mrežne veze i omogućavanje/onemogućavanje veza.
  • monitor uključuje komande za praćenje aktivnosti NetworkManager-a i praćenje promjena u stanju mrežnih veza.
  • priključak uključuje komande za upravljanje mrežnim sučeljima, dodavanje novih veza i brisanje postojećih.
  • uređaj uglavnom se koristi za promjenu parametara povezanih s uređajem (kao što je naziv interfejsa) ili za povezivanje uređaja koristeći postojeću vezu.
  • tajna registruje nmcli kao NetworkManager "tajnog agenta" koji osluškuje tajne poruke. Ovaj odeljak se retko koristi, jer nmcli radi na ovaj način podrazumevano kada se povezuje na mreže.

Jednostavni primjeri

Prije nego što počnete, provjerite je li NetworkManager pokrenut i nmcli može komunicirati s njim:

$ nmcli general
STATE      CONNECTIVITY  WIFI-HW  WIFI     WWAN-HW  WWAN    
connected  full          enabled  enabled  enabled  enabled

Rad često počinje pregledom svih profila mrežne veze:

$ 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

Ova komanda koristi akcija prikaži za odeljak Veza.

Test mašina radi na Ubuntu 20.04. U ovom slučaju smo pronašli tri žičane veze: enp0s3, enp0s8 i enp0s9.

Upravljajte vezama

Važno je razumjeti da u nmcli-u pod pojmom Connection podrazumijevamo entitet koji sadrži sve informacije o vezi. Drugim riječima, ovo je mrežna konfiguracija. Veza obuhvata sve informacije vezane za vezu, uključujući sloj veze i informacije o IP adresiranju. To su sloj 2 i sloj 3 u OSI mrežnom modelu.

Kada postavljate mrežu u Linuxu, obično postavljate veze koje će na kraju biti vezane za mrežne uređaje, koji su zauzvrat mrežni interfejsi instalirani na računaru. Kada uređaj koristi vezu, smatra se aktivnim ili povišenim. Ako veza nije u upotrebi, ona je neaktivna ili se resetuje.

Dodavanje mrežnih veza

Uslužni program ncmli vam omogućava da brzo dodate i odmah konfigurišete veze. Na primjer, da dodate žičanu vezu 2 (sa enp0s8), morate pokrenuti sljedeću naredbu kao superkorisnik:

$ sudo nmcli connection add type ethernet ifname enp0s8
Connection 'ethernet-enp0s8' (09d26960-25a0-440f-8b20-c684d7adc2f5) successfully added.

U opciji tipa označavamo da će to biti Ethernet veza, au opciji ifname (ime sučelja) označavamo mrežno sučelje koje želimo koristiti.

Evo šta će se dogoditi nakon pokretanja naredbe:

$ 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  --  

Nova veza je kreirana, ethernet-enp0s8. Dodijeljen mu je UUID i tip veze je bio Ethernet. Podignimo ga pomoću naredbe up:

$ nmcli connection up ethernet-enp0s8
Connection successfully activated (D-Bus active path: /org/freedesktop/NetworkManager/ActiveConnection/4)

Ponovo provjerimo listu aktivnih veza:

$ 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

Dodata je nova veza ethernet-enp0s8, aktivna je i koristi enp0s8 mrežni interfejs.

Postavljanje veza

Uslužni program ncmli vam omogućava da lako promijenite parametre postojećih veza. Na primjer, trebate promijeniti svoju dinamičku (DHCP) IP adresu u statičku IP adresu.

Recimo da trebamo postaviti IP adresu na 192.168.4.26. Za to koristimo dvije naredbe. Prvi će direktno postaviti IP adresu, a drugi će način podešavanja IP adrese prebaciti na ručni:

$ nmcli connection modify ethernet-enp0s8 ipv4.address 192.168.4.26/24
$ nmcli connection modify ethernet-enp0s8 ipv4.method manual

Ne zaboravite postaviti i masku podmreže. Za našu testnu vezu ovo je 255.255.255.0, ili sa /24 za bezklasno rutiranje (CIDR).

Da bi promjene stupile na snagu, morate deaktivirati, a zatim ponovo aktivirati vezu:

$ 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

Ako, naprotiv, trebate instalirati DHCP, koristite automatski umjesto ručnog:

$ nmcli connection modify ethernet-enp0s8 ipv4.method auto

Rad sa uređajima

Za to koristimo odjeljak Uređaj.

Provjera statusa uređaja

$ 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  --  

Traženje informacija o uređaju

Da biste to učinili, koristite radnju prikaži iz odjeljka Uređaj (morate navesti naziv uređaja). Uslužni program prikazuje mnogo informacija, često na nekoliko stranica.
Pogledajmo enp0s8 interfejs koji koristi naša nova veza. Uvjerimo se da koristi upravo onu IP adresu koju smo ranije postavili:

$ 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

Ima dosta informacija. Istaknimo glavnu stvar:

  • Naziv mrežnog interfejsa: enp0s8.
  • Vrsta veze: žičana Ethernet veza.
  • Vidimo MAC adresu uređaja.
  • Specificirana maksimalna jedinica prijenosa (MTU). — maksimalna veličina korisnog bloka podataka jednog paketa koji se može prenijeti putem protokola bez fragmentacije.
  • Uređaj trenutno povezan.
  • Ime vezekoji uređaj koristi: ethernet-enp0s8.
  • Uređaj koristi IP adresa, koji smo ranije instalirali: 192.168.4.26/24.

Ostale informacije se odnose na zadane parametre rutiranja i mrežnog prolaza. Zavise od specifične mreže.

Interaktivni nmcli editor

nmcli takođe ima jednostavan interaktivni uređivač, koji bi nekima mogao biti udobniji za rad. Da biste ga, na primjer, pokrenuli na ethernet-enp0s8 vezi, koristite akcija uredi:

$ nmcli connection edit ethernet-enp0s8

Ima i malu pomoć, koja je, međutim, manja od konzolne verzije:

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

Ako upišete naredbu print i pritisnete Enter, nmcli će prikazati sva svojstva veze:

===============================================================================
                 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:                 --

Na primjer, da postavite vezu na DHCP, unesite goto ipv4 i kliknite ući:

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>

Zatim napišite set method auto i kliknite ući:

nmcli ipv4> set method auto
Do you also want to clear 'ipv4.addresses'? [yes]:

Ako želite da obrišete statičku IP adresu, kliknite ući. U suprotnom upišite ne i pritisnite Enter. Možete ga sačuvati ako mislite da će vam trebati u budućnosti. Ali čak i sa sačuvanom statičkom IP adresom, DHCP će se koristiti ako je metod postavljen na automatski.

Koristite naredbu save da sačuvate svoje promjene:

nmcli ipv4> save
Connection 'ethernet-enp0s8' (09d26960-25a0-440f-8b20-c684d7adc2f5) successfully updated.
nmcli ipv4>

Otkucajte quit da izađete iz nmcli interaktivnog uređivača. Ako se predomislite o odlasku, koristite naredbu za povratak.

I to nije sve

Otvorite nmcli Interactive Editor i pogledajte koliko postavki ima i koliko svojstava ima svaka postavka. Interaktivni uređivač je odličan alat, ali ako želite koristiti nmcli u jednostrukim redovima ili skriptama, trebat će vam redovna verzija komandne linije.

Sada kada imate osnove, provjerite man stranica nmcli da vidite kako vam još može pomoći.

O pravima reklame

Epic serveri Je virtuelni serveri na Windows-u ili Linux sa moćnim procesorima porodice AMD EPYC i veoma brzim Intel NVMe drajvovima. Požurite da naručite!

Upravljanje mrežnim vezama u Linuxu pomoću konzolnog uslužnog programa nmcli

izvor: www.habr.com

Dodajte komentar