Využívejte všechny funkce nástroje pro správu síťových připojení z příkazového řádku NetworkManager Linux pomocí utility nmcli.

Užitečnost přímo volá API pro přístup k funkcím NetworkManageru.
Objevil se v roce 2010 a pro mnoho lidí se stal alternativním způsobem konfigurace síťových rozhraní a připojení. I když někteří lidé ho stále používají. Protože nmcli je nástroj rozhraní příkazového řádku (CLI) určený pro použití v terminálových oknech a skriptech, je ideální pro systémové administrátory pracující bez grafického rozhraní.
Syntaxe příkazu ncmli
Obecně syntaxe vypadá takto:
$ nmcli <options> <section> <action>- volby jsou parametry, které určují detaily operace nmcli,
- sekce (sekce) - určuje, které užitné funkce se mají použít,
- akce (action) - umožňuje specifikovat, co je vlastně třeba udělat.
Celkem je 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 a globální konfiguraci NetworkManageru.
- networking Zahrnuje příkazy pro dotazování stavu síťového připojení a povolení/zakázání připojení.
- Rádio Zahrnuje příkazy pro dotazování na stav připojení k síti WiFi a povolení/zakázání připojení.
- monitor Zahrnuje příkazy pro monitorování aktivity NetworkManageru a pozorování změn ve 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 (například názvu rozhraní) nebo k připojení zařízení pomocí existujícího připojení.
- Tajemství Registruje nmcli jako „tajného agenta“ NetworkManageru, který naslouchá tajným zprávám. Tato sekce se používá jen zřídka, protože nmcli se při připojování k sítím standardně chová takto.
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 enabledPráce často začíná zobrazením všech profilů síťového 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 enp0s9Tento příkaz používá akce zobrazit pro sekci Připojení.
Točí se to na testovacím stroji Ubuntu 04/20 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 se termín „připojení“ vztahuje k entitě, která obsahuje všechny informace o připojení. Jinými slovy, jedná se o konfiguraci sítě. Připojení zapouzdřuje všechny informace související s připojením, včetně informací o vrstvě datového spojení a IP adresování. Jedná se o vrstvu 2 a vrstvu 3 síťového modelu OSI.
Když nastavujete síť v Linux, obvykle konfigurujete připojení, která budou nakonec vázána na síťová zařízení, což jsou síťová rozhraní nainstalovaná v počítači. Když zařízení používá připojení, je považováno za aktivní nebo v provozu. Pokud se připojení nepoužívá, je neaktivní nebo ukončeno.
Přidávání síťových připojení
Nástroj ncmli umožňuje rychle přidávat a okamžitě konfigurovat připojení. Například pro přidání kabelového připojení 2 (s enp0s8) spusťte následující příkaz jako root:
$ sudo nmcli connection add type ethernet ifname enp0s8
Connection 'ethernet-enp0s8' (09d26960-25a0-440f-8b20-c684d7adc2f5) successfully added.V parametru type určíme, že se bude jednat o ethernetové připojení, a v parametru ifname (název rozhraní) určíme síťové rozhraní, které chceme použít.
Toto se stane 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 a typ připojení je Ethernet. Vyvolejme ho pomocí příkazu up:
$ nmcli connection up ethernet-enp0s8
Connection successfully activated (D-Bus active path: /org/freedesktop/NetworkManager/ActiveConnection/4)Znovu se podívejme 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 enp0s9Bylo přidáno nové připojení ethernet-enp0s8, které je aktivní a používá síťové rozhraní enp0s8.
Nastavení připojení
Nástroj ncmli umožňuje snadno změnit nastavení stávajících připojení. Například může být nutné změnit dynamickou (DHCP) IP adresu na statickou.
Řekněme, že potřebujeme nastavit IP adresu na 192.168.4.26. K tomu použijeme dva příkazy. První nastaví IP adresu přímo a druhý přepne metodu 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 manualNezapomeňte nastavit masku podsítě. Pro naše testovací připojení je to 255.255.255.0, neboli /24 pro beztřídní směrování (CIDR).
Aby se změny projevily, je nutné 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/ActiveCPokud potřebujete nastavit DHCP místo manuálního nastavení, použijte automatické nastavení:
$ nmcli connection modify ethernet-enp0s8 ipv4.method autoPráce se 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 -- Vyžádat si informace o zařízení
K tomu použijte akci show ze sekce Device (musíte zadat název zařízení). Nástroj zobrazí poměrně dost informací, často na více stránkách.
Podívejme se na rozhraní enp0s8, které používá naše nové připojení. Ujistěte se, že používá stejnou 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=255Existuje poměrně dost informací. Pojďme si zdůraznit ty hlavní:
- Název síťového rozhraní: enp0s8.
- Typ připojení: kabelové ethernetové připojení.
- Vidíme MAC adresu zařízení.
- Je specifikována maximální přenosová jednotka (MTU). — maximální velikost užitečného datového bloku jednoho paketu, který může být protokolem přenesen bez fragmentace.
- Zařízení aktuálně připojeno.
- Název připojení, který používá zařízení: ethernet-enp0s8.
- Zařízení to používá IP adresa, kterou jsme dříve nastavili: 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, který může některým lidem připadat pohodlnější. Pro jeho spuštění například pro připojení ethernet-enp0s8 použijte akce Upravit:
$ nmcli connection edit ethernet-enp0s8Má také malý soubor s nápovědou, který je však 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 napíšete 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: --Například chcete-li nastavit vlastnost připojení na DHCP, zadejte goto ipv4 a stiskně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>Pak napište set method auto a stiskně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 vstoupitJinak zadejte ne a stiskněte Enter. Můžete si ji uložit, pokud si myslíte, že ji budete v budoucnu potřebovat. I s uloženou statickou IP adresou se však DHCP použije, pokud je metoda nastavena na automatickou.
Pro uložení změn použijte příkaz save:
nmcli ipv4> save
Connection 'ethernet-enp0s8' (09d26960-25a0-440f-8b20-c684d7adc2f5) successfully updated.
nmcli ipv4>Stisknutím příkazu quit ukončíte interaktivní editor nmcli. Pokud si to rozmyslíte, použijte příkaz back.
A to není všechno
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 nmcli používat v jednořádkových esejích nebo skriptech, budete potřebovat běžnou verzi pro příkazový řádek.
Teď, když máte základy, podívejte se nmcli, abyste zjistili, jak vám to ještě může pomoci.
Jako reklama
Epické servery - Je nebo Linux S výkonnými procesory AMD EPYC a ultrarychlými disky Intel NVMe. Objednejte si hned!
Zdroj: www.habr.com
