Správa síťových připojení v systému Linux pomocí nástroje konzoly nmcli

Využijte naplno nástroj pro správu sítě NetworkManager na příkazovém řádku Linuxu pomocí nástroje nmcli.

Správa síťových připojení v systému Linux pomocí nástroje konzoly nmcli

Užitečnost nmcli přímo volá API pro přístup k funkcím NetworkManager.

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

syntaxe příkazu ncmli

Obecně syntaxe vypadá takto:

$ nmcli <options> <section> <action>

  • možnosti jsou parametry, které určují jemnosti provozu nmcli,
  • sekce (sekce) - určuje, které funkce nástroje použít,
  • akce - umožňuje specifikovat, co je vlastně potřeba udělat.

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

  • Pomoc poskytuje nápovědu k příkazům ncmcli a jejich použití.
  • obecně vrátí stav NetworkManager a globální konfiguraci.
  • networking obsahuje příkazy pro dotazování stavu síťového připojení a povolení/zakázaní připojení.
  • rádio obsahuje příkazy pro dotazování stavu připojení k WiFi síti a povolení/zakázaní připojení.
  • monitor obsahuje příkazy pro sledování aktivity NetworkManageru a sledování změn stavu síťových připojení.
  • přípojka obsahuje příkazy pro správu síťových rozhraní, přidávání nových připojení a mazání stávajících.
  • Přístroj používá se hlavně ke změně parametrů souvisejících se zařízením (jako je název rozhraní) nebo k připojení zařízení pomocí existujícího připojení.
  • Tajemství registruje nmcli jako „tajného agenta“ NetworkManager, který naslouchá tajným zprávám. Tato sekce se používá zřídka, protože nmcli takto standardně funguje při připojování k sítím.

Jednoduché příklady

Než začnete, ujistěte se, že je spuštěn NetworkManager a že s ním nmcli může komunikovat:

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

Práce často začíná zobrazením 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á akce zobrazit pro sekci Připojení.

Testovací stroj používá Ubuntu 20.04. V tomto případě jsme našli tři kabelová připojení: enp0s3, enp0s8 a enp0s9.

Správa připojení

Je důležité pochopit, že v nmcli pod pojmem Connection rozumíme entitu, která obsahuje všechny informace o spojení. Jinými slovy, toto je konfigurace sítě. Připojení zapouzdřuje všechny informace související s připojením, včetně linkové vrstvy a informací o IP adresování. Jedná se o vrstvu 2 a vrstvu 3 v síťovém modelu OSI.

Když nastavujete síť v Linuxu, obvykle nastavujete připojení, která budou nakonec vázána na síťová zařízení, což jsou zase síťová rozhraní nainstalovaná v počítači. Když zařízení používá připojení, je považováno za aktivní nebo zvýšené. Pokud se připojení nepoužívá, je neaktivní nebo je resetováno.

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

Nástroj ncmli umožňuje rychle přidávat a okamžitě konfigurovat připojení. Chcete-li například přidat kabelové připojení 2 (s enp0s8), musíte 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) successfully added.

Ve volbě type uvedeme, že se bude jednat o ethernetové připojení, a ve volbě ifname (název rozhraní) označíme síťové rozhraní, které chceme použít.

Po spuštění příkazu se stane toto:

$ 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řiděleno UUID a typ připojení byl Ethernet. Zvedneme to pomocí příkazu up:

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

Podívejme se znovu na 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é připojení ethernet-enp0s8, je aktivní a používá síťové rozhraní enp0s8.

Nastavení připojení

Obslužný program ncmli umožňuje snadno měnit parametry stávajících připojení. Například potřebujete změnit svou dynamickou (DHCP) IP adresu na statickou IP adresu.

Řekněme, že potřebujeme nastavit IP adresu na 192.168.4.26. K tomu používáme dva příkazy. První nastaví přímo IP adresu a druhý přepne způsob nastavení IP adresy na ruční:

$ 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 se změny projevily, musíte deaktivovat a poté znovu aktivovat připojení:

$ 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 naopak potřebujete nainstalovat DHCP, použijte auto místo ručního:

$ nmcli connection modify ethernet-enp0s8 ipv4.method auto

Práce s přístroji

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

Vyžádání informací o zařízení

Chcete-li to provést, použijte akci zobrazit ze sekce Zařízení (musíte zadat název zařízení). Nástroj zobrazuje mnoho informací, často na několika stránkách.
Podívejme se na rozhraní enp0s8, které používá naše nové připojení. Ujistěte se, že používá přesně tu IP adresu, kterou jsme nastavili dříve:

$ 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 poměrně hodně. Zdůrazněme to hlavní:

  • Název síťového rozhraní: enp0s8.
  • Typ připojení: kabelové ethernetové připojení.
  • Vidíme MAC adresu zařízení.
  • Určena maximální přenosová jednotka (MTU). — maximální velikost užitečného datového bloku jednoho paketu, který může být přenášen protokolem bez fragmentace.
  • Zařízení aktuálně připojeno.
  • Název připojeníkteré zařízení používá: ethernet-enp0s8.
  • Zařízení využívá IP adresa, který jsme nainstalovali dříve: 192.168.4.26/24.

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

Interaktivní editor nmcli

nmcli má také jednoduchý interaktivní editor, se kterým se někomu může lépe pracovat. Chcete-li jej spustit například na připojení ethernet-enp0s8, použijte akce Upravit:

$ nmcli connection edit ethernet-enp0s8

Má také malou nápovědu, která je však rozměrově menší než konzolová verze:

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

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

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

Chcete-li například nastavit připojení na DHCP, zadejte goto ipv4 a klikněte vstoupit:

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>

Poté napište set method auto a klikněte vstoupit:

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

Pokud chcete vymazat statickou IP adresu, klikněte na vstoupit. V opačném případě zadejte ne a stiskněte Enter. Můžete si ji uložit, pokud si myslíte, že ji budete v budoucnu potřebovat. Ale i s uloženou statickou IP adresou bude DHCP použit, pokud je metoda nastavena na auto.

Pro uložení změn použijte příkaz uložit:

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

Napište quit pro ukončení interaktivního editoru nmcli. Pokud si odchod rozmyslíte, použijte příkaz zpět.

A to není vše

Otevřete interaktivní editor nmcli a podívejte se, kolik nastavení existuje a kolik vlastností má každé nastavení. Interaktivní editor je skvělý nástroj, ale pokud chcete používat nmcli v jednoduchých řádcích nebo skriptech, budete potřebovat běžnou verzi příkazového řádku.

Nyní, když máte základy, podívejte se manuálová stránka nmcli, abyste viděli, jak jinak vám může pomoci.

Jako reklama

Epické servery - Je virtuální servery na Windows nebo Linux s výkonnými procesory rodiny AMD EPYC a velmi rychlými disky Intel NVMe. Pospěšte si s objednávkou!

Správa síťových připojení v systému Linux pomocí nástroje konzoly nmcli

Zdroj: www.habr.com

Přidat komentář