Linux hálózati kapcsolatok kezelése a nmcli konzolutilitás segítségével

Használja ki a NetworkManager hálózati kapcsolatok kezelésére szolgáló eszköz összes lehetőségét a Linux parancssorban az nmcli segédprogram segítségével.

Linux hálózati kapcsolatok kezelése a nmcli konzolutilitás segítségével

Eszköz nmcli közvetlenül az API-hoz fordul a NetworkManager funkcióinak eléréséhez.

2010-ben jelent meg, és sokak számára alternatív módot kínált a hálózati interfészek és kapcsolatok konfigurálására. Bár valaki még mindig használja ifconfig. Mivel az nmcli egy parancssori felület (CLI) eszköz, amely terminálablakokban és szkriptekben való használatra készült, tökéletesen alkalmas a GUI nélkül dolgozó rendszergazdák számára.

Az ncmli parancsok szintaxisa

Általánosságban a szintaxis így néz ki:

$ nmcli  

  • options — ezek a paraméterek határozzák meg az nmcli működési finomságait,
  • section (szakasz) — meghatározza, hogy a segédprogram mely lehetőségeit használja,
  • action (művelet) — lehetővé teszi, hogy megmondja, mit kell tulajdonképpen tennie.

Összesen 8 szakasz létezik, mindegyik kapcsolódik valamilyen parancskészlethez (művelethez):

  • Segítség kibocsátja az ncmcli parancsokról és azok használatáról készült tájékoztatót.
  • Általános visszaadja a NetworkManager állapotát és globális konfigurációt.
  • Hálózatkezelés bekapcsolja a hálózati kapcsolat állapotának lekérdezésére és kapcsolatok bekapcsolására/kikapcsolására szolgáló parancsokat.
  • Rádió bekapcsolja a WiFi hálózathoz való csatlakozás állapotának lekérdezéséhez és kapcsolatok bekapcsolására/kikapcsolására szolgáló parancsokat.
  • Monitor bekapcsolja a NetworkManager aktivitásának figyelésére és a hálózati kapcsolatok állapotának változásaira vonatkozó parancsokat.
  • Connection bekapcsolja a hálózati interfészek kezeléséhez, új kapcsolatok hozzáadásához és meglévő kapcsolatok törléséhez szükséges parancsokat.
  • Device főként az eszközökhöz kapcsolódó paraméterek (például az interfész neve) megváltoztatására vagy meglévő kapcsolaton keresztül eszközök csatlakoztatására használják.
  • Titkos kulcs regisztrálja az nmcli-t a NetworkManager «titkos ügynökeként», amely titkos üzeneteket hallgat. Ezt a szakaszt ritkán használják, mert az nmcli alapértelmezés szerint így működik, amikor kapcsolatokhoz csatlakozik.

Egyszerű példák

Munka megkezdése előtt győződjön meg arról, hogy a NetworkManager fut, és az nmcli képes kommunikálni vele:

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

Gyakran a munkát az összes hálózati kapcsolat profiljának megtekintésével kezdik:

$ 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

Ez a parancs használja az action-t a Connection szekcióhoz.

A tesztgépen az Ubuntu 20.04 fut. Ebben az esetben három vezetékes kapcsolódást találtunk: enp0s3, enp0s8, és enp0s9.

Kapcsolatok kezelése

Fontos megérteni, hogy az nmcli alatt a Connection kifejezéssel olyan entitást értünk, amely tartalmazza az összes információt a kapcsolatról. Más szavakkal, ez a hálózati beállítás. A Connection encapsulates contains all information related to connections, including link-layer and IP addressing information. Ez az OSI hálózati modell 2. és 3. szintje.

Amikor hálózatot állít be Linuxban, általában olyan kapcsolatokat konfigurál, amelyek végül hálózati eszközökhöz lesznek kötve, amelyek viszont a számítógépen telepített hálózati interfészek. Amikor egy eszköz használ egy kapcsolatot, aktívnak vagy felhúzottnak számít. Ha a kapcsolatot nem használják, akkor inaktív vagy leszerelt.

Hálózati kapcsolatok hozzáadása

Az ncmli segédprogram lehetővé teszi a kapcsolatok gyors hozzáadását és azonnali konfigurálását. Például, hogy hozzáadja a Wired connection 2-t (enp0s8), a következő parancsot kell futtatnia root jogosultsággal:

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

A type opcióban megadjuk, hogy Ethernet kapcsolat lesz, az ifname (interface name) opcióban pedig megadjuk a kívánt hálózati interfészt.

Íme, mi fog történni a parancs futtatása után:

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

Új kapcsolat jött létre, ethernet-enp0s8. UUID-t kapott, a kapcsolat típusa - Ethernet. Aktiváljuk a parancs segítségével:

$ nmcli connection up ethernet-enp0s8
A kapcsolat sikeresen aktiválva (D-Bus aktív útvonal: /org/freedesktop/NetworkManager/ActiveConnection/4)

Még egyszer ellenőrizzük az aktív kapcsolatok listáját:

$ 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

Új ethernet-enp0s8 kapcsolat került hozzáadásra, aktív és az enp0s8 hálózati interfészt használja.

Kapcsolatok beállítása

Az ncmli segédprogram lehetővé teszi, hogy könnyen módosítsuk a meglévő kapcsolatok paramétereit. Például, ha a dinamikus (DHCP) IP-címet statikusra szeretnénk váltani.

Tegyük fel, hogy az IP-címet 192.168.4.26-ra szeretnénk beállítani. Ehhez két parancsot használunk. Az első közvetlenül beállítja az IP-címet, a második pedig a beállítási módszert "kézi" (manual) értékre váltja:

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

Ne felejtsük el megadni az alhálózati maszkot sem. A tesztkapcsolatunk esetében ez 255.255.255.0 vagy /24 a nem osztályozott forgalmi irányítás (CIDR) szerint.

A módosítások érvénybe lépéséhez le kell deaktiválni majd aktiválni a kapcsolatot:

$ nmcli connection down ethernet-enp0s8
A 'ethernet-enp0s8' kapcsolat sikeresen deaktiválva (D-Bus aktív útvonal: /org/freedesktop/NetworkManager/ActiveConnection/4)
$ nmcli connection up ethernet-enp0s8
A kapcsolat sikeresen aktiválva (D-Bus aktív útvonal: /org/freedesktop/NetworkManager/ActiveC

Ha éppen ellenkezőleg, DHCP-t szeretne beállítani, a manual helyett az auto-t használja:

$ nmcli connection modify ethernet-enp0s8 ipv4.method auto

Munkavégzés eszközökkel

Ehhez a Device szekciót használjuk.

Eszközök állapotának ellenőrzése

$ nmcli device status
ESZKÖZ    TÍPUS       ÁLLAPOT       KAPCSOLAT        
enp0s3    ethernet    csatlakozva    Wired connection 1
enp0s8    ethernet    csatlakozva    ethernet-enp0s8    
enp0s9    ethernet    csatlakozva    Wired connection 3
lo        loopback    nem kezelt    --  

Információ lekérése az eszközről

Ehhez a Device szekció show akcióját használjuk (meg kell adni az eszköz nevét). A segédprogram elegendő információt mutat, gyakran több oldalon keresztül.
Nézzük meg az enp0s8 interfészt, amely a mi új kapcsolatunkat használja. Ellenőrizzük, hogy pontosan azt az IP-címet használja-e, amelyet korábban beállítottunk:

$ nmcli device show enp0s8
GENERAL.DEVICE:                         enp0s8
GENERAL.TYPE:                           ethernet
GENERAL.HWADDR:                         08:00:27:81:16:20
GENERAL.MTU:                            1500
GENERAL.STATE:                          100 (csatlakozva)
GENERAL.CONNECTION:                     ethernet-enp0s8
GENERAL.CON-PATH:                       /org/freedesktop/NetworkManager/ActiveConnection/6
WIRED-PROPERTIES.CARRIER:               be
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

Bőséges információ áll rendelkezésre. Emeljük ki a legfontosabbat:

  • A hálózati interfész neve: enp0s8.
  • Kapcsolat típusa: vezetékes Ethernet-kapcsolat.
  • Látjuk az eszköz MAC-címét.
  • Meg van adva a Maximum transmission unit (MTU) — az egyetlen csomagban átvitt hasznos adatblokk maximális mérete, amelyet a protokoll töredezettség nélkül át tud adni.
  • A készülék jelenleg csatlakoztatva.
  • A kapcsolat neve, amelyet az eszköz használ: ethernet-enp0s8.
  • Az eszköz azt használja IP-cím, amit korábban állítottunk be: 192.168.4.26/24.

A többi információ a kapcsolat alapértelmezett irányítási és átjáró beállításaira vonatkozik. Ezek a konkrét hálózattól függenek.

Interaktív szerkesztő nmcli

Az nmcli-nek van egy egyszerű interaktív szerkesztője is, amelyben kényelmesebben lehet dolgozni. Például a ethernet-enp0s8 kapcsolat indításához használja az action-t edit:

$ nmcli connection edit ethernet-enp0s8

Emellett van egy kicsi súgója is, amely bár méretben elmarad a konzolos verziótól:

===| nmcli interaktív kapcsolat szerkesztő |===
Meglévő '802-3-ethernet' kapcsolat szerkesztése: 'ethernet-enp0s8'
Írja be a 'help'-et vagy a '?'-t a rendelkezésre álló parancsokhoz.
Írja be a 'print'-et az összes kapcsolat tulajdonságának megjelenítéséhez.
Írja be a 'describe [<setting>.<prop>]' parancsot a részletes tulajdonságok leírásához.
Az alábbi beállításokat szerkesztheti: connection, 802-3-ethernet (ethernet), 802-1x, dcb, sriov, ethtool, match, ipv4, ipv6, tc, proxy
nmcli>

Ha beírja a print parancsot, és megnyomja az Enter billentyűt, az nmcli megjeleníti az összes kapcsolat tulajdonságát:

===============================================================================
                 Kapcsolati profil adatai (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 (alapértelmezett)
connection.multi-connect:               0 (alapértelmezett)
connection.auth-retries:                -1
connection.timestamp:                   1593967212
connection.read-only:                   no
connection.permissions:                 --
connection.zone:                        --
connection.master:                      --
connection.slave-type:                  --
connection.autoconnect-slaves:          -1 (alapértelmezett)
connection.secondaries:                 --

Például, ha DHCP-tulajdonságot szeretne beállítani a kapcsolathoz, írja be a goto ipv4 parancsot, és nyomja meg Enter:

nmcli> goto ipv4
Szerkesztheti az alábbi tulajdonságokat: 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>

Ezután írja be a set method auto parancsot, és nyomja meg Enter:

nmcli ipv4> set method auto
Szeretné törölni az 'ipv4.addresses'-t is? [igen]:

Ha szeretné törölni a statikus IP-címet, nyomja meg Enter. Ha nem, írja be a no szót, majd nyomja meg az Entert. Megtarthatja, ha úgy gondolja, hogy a jövőben szüksége lesz rá. De még a statikus IP-cím elmentésével is használni fogja a DHCP-t, ha a method beállítása auto-ra van állítva.

Használja a save parancsot a módosítások mentéséhez:

nmcli ipv4> save
A 'ethernet-enp0s8' (09d26960-25a0-440f-8b20-c684d7adc2f5) kapcsolat sikeresen frissítve lett.
nmcli ipv4>

Írja be a quit parancsot a nmcli interaktív szerkesztőből való kilépéshez. Ha meggondolta magát — használja a back parancsot.

És ez még nem minden

Nyissa meg a nmcli interaktív szerkesztőjét, és nézze meg, hány beállítás létezik, és milyen tulajdonságai vannak mindegyik beállításnak. Az interaktív szerkesztő nagyszerű eszköz, de ha a nmcli-t egysoros parancsokban vagy szkriptekben szeretné használni, szüksége lesz a hagyományos parancssori verzióra.

Most, hogy megvannak az alapok, ismerkedjen meg a manuális oldallal nmcli, hogy megtudja, mivel tud még segíteni Önnek.

Hirdetés

Epikus szerverek — ez Windows vagy Linux virtuális szerverek, az AMD EPYC család erőteljes processzoraival és nagyon gyors Intel NVMe meghajtókkal. Ne habozzon rendelni! 🥇A hálózati kapcsolatok kezelése Linux alatt a nmcli parancssori eszközzel | ProHoster

Linux hálózati kapcsolatok kezelése a nmcli konzolutilitás segítségével

Forrás: habr.com

Megbízható hosting vásárlása weboldalak számára, DDoS védelemmel, VPS VDS szerverek. 🔥 Megbízható webtárhely vásárlása DDoS védelemmel, VPS VDS szerverek | ProHoster