Spravujeme síťová připojení v Linuxu pomocí konzolového nástroje nmcli

Využijte všechny možnosti nástroje pro správu síťových připojení NetworkManager v příkazovém řádku Linux pomocí utility nmcli.

Spravujeme síťová připojení v Linuxu pomocí konzolového nástroje nmcli

Nástroj nmcli přímo přistupuje k API pro využívání funkcí NetworkManager.

Ten se objevil v roce 2010 a pro mnohé se stal alternativním způsobem nastavení síťových rozhraní a připojení. I když někteří stále používají ifconfig. Protože nmcli je nástroj příkazového rozhraní (CLI) určený k použití v oknech terminálů a skriptech, je ideální pro systémové administrátory, kteří pracují bez GUI.

Syntaxe příkazů nmcli

Obecně vypadá syntaxe takto:

$ nmcli  

  • options – to jsou parametry, které určují jemnosti fungování nmcli,
  • section (sekce) – určuje, jakými funkcemi utility použít,
  • action (akce) – umožňuje určit, co vlastně je třeba udělat.

Existuje celkem 8 sekcí, z nichž každá je spojena s nějakou sadou příkazů (akcí):

  • Nápověda vybírá nápovědu k příkazům nmcli a jejich použití.
  • Obecné vrací stav NetworkManager a globální konfiguraci.
  • Síťování obsahuje příkazy pro dotazování stavu síťového připojení a zapínání / vypínání připojení.
  • Radio obsahuje příkazy pro dotazování stavu připojení k síti WiFi a zapínání / vypínání připojení.
  • Monitor obsahuje příkazy pro sledování aktivity NetworkManager a pozorování změn stavu síťových připojení.
  • Connection obsahuje příkazy pro správu síťových rozhraní, pro přidávání nových připojení a odstraňování existujících.
  • Device převážně se používá k úpravě parametrů spojených se zařízeními (například názvem rozhraní) nebo k připojení zařízení pomocí existujícího připojení.
  • Secret registrovat nmcli jako "tajného agenta" NetworkManager, který odposlouchává tajné zprávy. Tato sekce se používá zřídka, protože nmcli při připojování k sítím ve výchozím nastavení pracuje právě takto.

Jednoduché příklady

Před zahájením práce se ujistěte, že NetworkManager je spuštěn a nmcli s ním může komunikovat:

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

Práci často začínáme přehledem všech profilů síťových připojení:

$ 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

Tento příkaz používá akci show pro sekci Connection.

Na testovacím zařízení běží Ubuntu 20.04. V tomto případě jsme našli tři drátová připojení: enp0s3, enp0s8 a enp0s9.

Správa připojení

Je důležité si uvědomit, že v nmcli pod termínem Connection rozumíme entitu, která obsahuje všechny informace o připojení. Jinými slovy, je to konfigurace sítě. Connection encapsuluje všechny informace související s připojeními, včetně datové a IP adresace. To jsou úroveň 2 a úroveň 3 v síťovém modelu OSI.

Když konfiguruje síť v Linuxu, obvykle nastavujete připojení, která budou nakonec přiřazena k síťovým zařízením, která jsou zase síťovými rozhraními nainstalovanými na počítači. Když zařízení používá připojení, považuje se za aktivní nebo spuštěné. Pokud se připojení nepoužívá, je neaktivní nebo deaktivováno.

Přidání síťových připojení

Nástroj ncmli umožňuje rychle přidávat a ihned konfigurovat připojení. Například, abyste přidali Wired connection 2 (s enp0s8), je třeba jako superuživatel spustit následující příkaz:

$ sudo nmcli connection add type ethernet ifname enp0s8
Connection 'ethernet-enp0s8' (09d26960-25a0-440f-8b20-c684d7adc2f5) bylo úspěšně přidáno.

V parametru type uvádíme, že se jedná o Ethernetové připojení, a v parametru ifname (název rozhraní) uvádíme síťové rozhraní, které chceme použít.

Toto bude po spuštění příkazu:

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

Bylo vytvořeno nové připojení, ethernet-enp0s8. Bylo mu přiřazeno UUID, typ připojení — Ethernet. Aktivujeme jej pomocí příkazu up:

$ nmcli connection up ethernet-enp0s8
Connection bylo úspěšně aktivováno (D-Bus aktivní cesta: /org/freedesktop/NetworkManager/ActiveConnection/4)

Ještě jednou zkontrolujeme seznam aktivních připojení:

$ 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

Bylo přidáno nové ethernetové spojení ethernet-enp0s8, které je aktivní a používá síťové rozhraní enp0s8.

Nastavení připojení

Nástroj ncmli umožňuje snadno měnit parametry již existujících připojení. Například potřebujete změnit dynamickou (DHCP) na statickou IP adresu.

Představme si, že chceme nastavit IP adresu na 192.168.4.26. K tomu použijeme dva příkazy. První přímo nastaví IP adresu, druhý přepne metodu nastavení IP adresy na "ruční" (manual):

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

Nezapomeňte také nastavit masku podsítě. Pro naše testovací připojení je to 255.255.255.0, nebo s /24 pro beztřídní směrování (CIDR).

Aby změny nabyly účinnosti, je třeba spojení deaktivovat a poté znovu aktivovat:

$ 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

Pokud potřebujete naopak nastavit DHCP, použijte místo manual auto:

$ nmcli connection modify ethernet-enp0s8 ipv4.method auto

Práce s zařízeními

K tomu používáme sekci Zařízení.

Kontrola stavu zařízení

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

Žádost o informace o zařízení

K tomu používáme akci show ze sekce Zařízení (nutno zadat název zařízení). Nástroj zobrazuje dostatek informací, často na několika stránkách.
Podívejme se na rozhraní enp0s8, které využívá naše nové spojení. Ujistíme se, že používá přesně tu IP adresu, kterou jsme dříve nastavili:

$ 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

Informací je dostatek. Vybereme to hlavní:

  • Název síťového rozhraní: enp0s8.
  • Typ připojení: drátové Ethernetové připojení.
  • Vidíme MAC adresu zařízení.
  • Uvedena Maximum transmission unit (MTU) — maximální velikost užitečného bloku dat jednoho paketu, který může být přenesen protokolem bez fragmentace.
  • Zařízení v tuto chvíli připojeno.
  • Název připojení, které používá zařízení: ethernet-enp0s8.
  • Zařízení používá ten IP adresa, který jsme nastavili dříve: 192.168.4.26/24.

Další informace se týkají výchozích parametrů směrování a brány připojení. Ty závisí na konkrétní síti.

Interaktivní editor nmcli

nmcli má také jednoduchý interaktivní editor, ve kterém může být pro někoho práce pohodlnější. Chcete-li jej spustit, například pro připojení ethernet-enp0s8, použijte akci edit:

$ nmcli connection edit ethernet-enp0s8

Má také malou nápovědu, která však velikostí ustupuje konzolové verzi:

===| nmcli interaktivní editor připojení |===
Úprava existujícího '802-3-ethernet' připojení: 'ethernet-enp0s8'
Napište 'help' nebo '?' pro dostupné příkazy.
Napište 'print', abyste zobrazili všechny vlastnosti připojení.
Napište 'describe [<setting>.<prop>]', abyste dostali podrobný popis vlastnosti.
Můžete upravit následující nastavení: připojení, 802-3-ethernet (ethernet), 802-1x, dcb, sriov, ethtool, match, ipv4, ipv6, tc, proxy
nmcli>

Pokud zadáte příkaz print a stisknete Enter, nmcli zobrazí všechny vlastnosti připojení:

===============================================================================
                 Detaily profilu připojení (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 (výchozí)
connection.multi-connect:               0 (výchozí)
connection.auth-retries:                -1
connection.timestamp:                   1593967212
connection.read-only:                   no
connection.permissions:                 --
connection.zone:                        --
connection.master:                      --
connection.slave-type:                  --
connection.autoconnect-slaves:          -1 (výchozí)
connection.secondaries:                 --

Například pro nastavení vlastnosti DHCP pro připojení zadejte goto ipv4 a stiskněte Enter:

nmcli> goto ipv4
Můžete upravit následující vlastnosti: 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>

Poté zadejte set method auto a stiskněte Enter:

nmcli ipv4> set method auto
Chcete také vymazat 'ipv4.addresses'? [yes]:

Pokud chcete vymazat statickou IP adresu, stiskněte EnterPokud ne, zadejte no a stiskněte Enter. Můžete ho uložit, pokud si myslíte, že ho budete potřebovat v budoucnu. Ale i když je statická IP adresa uložena, DHCP se použije, pokud je metoda nastavena na auto.

Použijte příkaz save k uložení změn:

nmcli ipv4> save
Připojení 'ethernet-enp0s8' (09d26960-25a0-440f-8b20-c684d7adc2f5) bylo úspěšně aktualizováno.
nmcli ipv4>

Zadejte quit pro ukončení interaktivního editoru nmcli. Pokud jste si to rozmysleli, použijte příkaz back.

A to rozhodně není vše

Otevřete interaktivní editor nmcli a podívejte se, kolik nastavení existuje a jaké vlastnosti má každé nastavení. Interaktivní editor je skvělý nástroj, ale pokud chcete používat nmcli v jednorázových příkazech nebo skriptech, budete potřebovat běžnou verzi pro příkazový řádek.

Teď, když máte základy, podívejte se na stránku nápovědy nmcli, abyste zjistili, čím dalším vám může pomoci.

Na základě reklamy

Epic servery — to je virtuální servery na Windows nebo Linux s výkonnými procesory rodiny AMD EPYC a velmi rychlými NVMe disky Intel. Neváhejte si objednat!

Spravujeme síťová připojení v Linuxu pomocí konzolového nástroje nmcli

Zdroj: habr.com

Koupit spolehlivý hosting pro webové stránky s ochranou proti DDoS, VPS VDS servery 🔥 Koupit spolehlivý hosting pro webové stránky s ochranou proti DDoS, VPS VDS servery | ProHoster