Vyhledávání na webu

Jak nakonfigurovat IP sítě pomocí 'nmcli' v Linuxu


Jako správce Linuxu máte různé nástroje, které můžete použít ke konfiguraci síťových připojení, jako je nmtui, váš NetworkManager s grafickým uživatelským rozhraním GNOME a samozřejmě nmcli (nástroj příkazového řádku správce sítě).

Všiml jsem si, že mnoho správců používá nmtui pro jeho jednoduchost. Používání nmcli vám však šetří čas, zvyšuje vaši důvěru, umožňuje integraci do skriptů a je primárním nástrojem pro odstraňování problémů se sítí linuxových serverů, který rychle obnovuje jeho funkčnost.

Poté, co jsem si všiml mnoha komentářů hledajících pomoc s nmcli, rozhodl jsem se napsat tento článek. Samozřejmě byste si měli vždy pečlivě přečíst manuálové stránky (jsou pro vás zdrojem číslo 1). Mým cílem je ušetřit vám čas a poskytnout vám několik užitečných rad.

Syntaxe příkazu nmcli

Syntaxe nmcli je:

nmcli [OPTIONS] OBJECT {COMMAND | help}

Kde OBJECT je obecný, síť, rádio, připojení, zařízení a agent.

Zkontrolujte stav síťového zařízení v systému Linux

Dobrým výchozím bodem by bylo zkontrolovat naše zařízení:

nmcli dev status

DEVICE      TYPE      STATE         CONNECTION 
docker0     bridge    connected     docker0    
virbr0      bridge    connected     virbr0     
enp0s3      ethernet  connected     enp0s3     
virbr0-nic  ethernet  disconnected  --         
lo          loopback  unmanaged     --         

Jak vidíme v prvním sloupci, je zde seznam našich síťových zařízení. Máme jednu síťovou kartu s názvem enp0s3. Na vašem počítači můžete vidět různá jména.

Pojmenování závisí na typu síťové karty (zda je integrovaná, PCI karta atd.). V posledním sloupci vidíme naše konfigurační soubory, které používají naše zařízení pro připojení k síti

Je snadné pochopit, že naše zařízení sama o sobě nic nezmohou. Potřebují, abychom vytvořili konfigurační soubor, který jim poskytne pokyny, jak dosáhnout síťové konektivity. Tyto soubory se také nazývají ‚profily připojení‘ a najdeme je v adresáři /etc/sysconfig/network-scripts.

cd /etc/sysconfig/network-scripts/
ls
Ukázkový výstup
ifcfg-enp0s3  ifdown-isdn      ifup          ifup-plip      ifup-tunnel
ifcfg-lo      ifdown-post      ifup-aliases  ifup-plusb     ifup-wireless
ifdown        ifdown-ppp       ifup-bnep     ifup-post      init.ipv6-global
ifdown-bnep   ifdown-routes    ifup-eth      ifup-ppp       network-functions
ifdown-eth    ifdown-sit       ifup-ib       ifup-routes    network-functions-ipv6
ifdown-ib     ifdown-Team      ifup-ippp     ifup-sit
ifdown-ippp   ifdown-TeamPort  ifup-ipv6     ifup-Team
ifdown-ipv6   ifdown-tunnel    ifup-isdn     ifup-TeamPort

Jak můžete vidět zde, soubory s názvy začínajícími 'ifcfg-' (konfigurace rozhraní) jsou profily připojení. Když vytvoříme nové připojení nebo upravíme stávající pomocí nmcli nebo nmtui, výsledky se zde uloží jako profily připojení.

Ukážu vám dva z nich z mého počítače, jeden s konfigurací dhcp a jeden se statickou IP.

cat ifcfg-static1
cat ifcfg-Myoffice1

Uvědomujeme si, že některé vlastnosti mají různé hodnoty a některé jiné neexistují, pokud nejsou nutné.

Pojďme se rychle podívat na ty nejdůležitější.

  • TYPE – zde máme typ Ethernet. Mohli bychom mít také WiFi, tým, dluhopisy a další.
  • DEVICE – název síťového zařízení přidruženého k tomuto profilu.
  • BOOTPROTO – pokud má hodnotu “dhcp ”, pak náš profil připojení získá dynamickou IP od DHCP serveru. Pokud má hodnotu “none “, pak nepoužívá dynamickou IP a pravděpodobně mu přiřadíme statickou IP.
  • IPADDR – je statická IP adresa, kterou přiřadíme našemu profilu.
  • PREFIX – maska podsítě. Hodnota 24 znamená 255.255.255.0. Masce podsítě můžete lépe porozumět, když si zapíšete její binární formát. Například hodnoty 16, 24 a 26 znamenají, že prvních 16, 24< nebo 26 bitů je nastaveno na 1 a zbytek je 0. Toto definuje síťovou adresu a rozsah IP adres, které lze přiřadit.
  • GATEWAY – IP brány.
  • DNS1, DNS2 – dva DNS servery, které chceme použít.
  • ONBOOT – pokud má hodnotu “ano ” znamená to, že při startu náš počítač načte tento profil a pokusí se jej přiřadit ke svému zařízení.

Zkontrolujte síťové připojení v Linuxu

Nyní pojďme dál a zkontrolujte naše spojení:

nmcli con show

Poslední sloupec zařízení nám pomáhá pochopit, které připojení je „UP“ a které ne. Na obrázku výše můžete vidět dvě aktivní připojení: Myoffice1 a enp0s8.

Tip: Pokud chcete zobrazit pouze aktivní připojení, zadejte:

nmcli con show -a

Tip: Při použití nmcli můžete použít automatické dokončování stisknutím Tab, ale je lepší použít minimální formát příkazu.

Následující příkazy jsou tedy stejné:

nmcli connection show
nmcli con show
nmcli c s

Zkontrolujte IP adresu v Linuxu

Pokud zkontroluji IP adresy svých zařízení:

ip a

Vidím, že moje zařízení enp0s3 převzalo IP adresu 192.168.1.6 ze serveru dhcp, protože profil připojení Myoffice1, který je v provozu, má konfiguraci dhcp.

Pokud přivedu “up ” svůj profil připojení s názvem static1, mé zařízení bude mít statickou IP 192.168.1.40, jak je definováno v profil připojení.

nmcli con down Myoffice1 ; nmcli con up static1
nmcli con show

Podívejme se znovu na IP adresu:

ip a

Můžeme vytvořit náš první profil připojení. Minimální vlastnosti, které musíme definovat, jsou type, ifname a con-name:

  • type – pro typ připojení.
  • ifname – pro název zařízení, které je přiřazeno našemu připojení.
  • con-name – název připojení.

Vytvoření nového ethernetového připojení v Linuxu

Vytvořme nové ethernetové připojení s názvem Myhome1, přiřazeným k zařízení enp0s3:

nmcli con add type ethernet con-name Myhome1 ifname enp0s3

Zkontrolujte jeho konfiguraci:

cat ifcfg-Myhome1

Jak můžete vidět, má BOOTPROTO=dhcp, protože jsme nezadali žádnou statickou IP adresu.

Nápověda: Jakékoli spojení můžeme upravit pomocí příkazu “nmcli con mod“. Pokud však upravíte připojení dhcp a změníte ho na statické, nezapomeňte jej změnit “ipv4.method “ z „auto“ na „manual“ . Jinak skončíte se dvěma IP adresami: jednou ze serveru dhcp a statickou.

Vytvoříme nový profil ethernetového připojení s názvem static2, který bude přiřazen zařízení enp0s3, se statickou IP 192.168.1.50, podsíť maska 255.255.255.0=24, a brána 192.168.1.1.

nmcli con add type ethernet con-name static2 ifname enp0s3 ip4 192.168.1.50/24 gw4 192.168.1.1

Zkontrolujte jeho konfiguraci:

cat ifcfg-static2

Upravte DNS servery v Linuxu

Upravíme poslední profil připojení a přidáme dva servery DNS.

nmcli con mod static2 ipv4.dns “8.8.8.8 8.8.4.4”

Tip: Zde je něco, na co musíte věnovat pozornost: vlastnosti pro IP adresu a bránu mají různé názvy, když přidáváte a když upravujete připojení. Když přidáváte připojení, používáte “ip4 “ a “gw4 ”, zatímco když je upravujete, používáte „ipv4 “ a “ gwv4 “.

Vyvolejte připojení Ethernet v Linuxu

Nyní vyvolejte tento profil připojení:

nmcli con down static1 ; nmcli con up static2

Jak vidíte, zařízení enp0s3 má nyní IP adresu 192.168.1.50.

ip a

Tip: Existuje mnoho vlastností, které můžete upravit. Pokud si je nepamatujete zpaměti, můžete si pomoci zadáním “nmcli con show ” a poté název připojení:

nmcli con show static2

Všechny tyto vlastnosti můžete upravit malými písmeny.

Například: když snížíte profil připojení, NetworkManager vyhledá jiný profil připojení a automaticky jej vyvolá. (Nechávám to jako cvičení pro kontrolu). Pokud nechcete, aby se váš profil připojení automaticky připojoval:

nmcli con mod static2 connection.autoconnect no

Poslední cvičení je velmi užitečné: vytvořili jste profil připojení, ale chcete, aby jej používali konkrétní uživatelé. Je dobré své uživatele klasifikovat!

V Linuxu nastavte Oprávnění k ethernetovému připojení na Uživatel

Tento profil umožňujeme pouze uživateli stella:

nmcli con mod static2 connection.permissions stella

Tip: Pokud chcete udělit oprávnění více než jednomu uživateli, musíte zadat user:user1,user2 bez mezery mezi nimi:

nmcli con mod static2 connection.permissions user:stella,john

Pokud se přihlásíte jako jiný uživatel, nemůžete „nahoru“ vyvolat tento profil připojení:

nmcli con show
nmcli con up static2
ls /etc/sysconfig/network-scripts

Chybová zpráva říká, že připojení ‚static2‘ neexistuje, i když vidíme, že existuje. Je to proto, že aktuální uživatel nemá oprávnění k vytvoření tohoto připojení.

Závěr: neváhejte použít nmcli. Je to snadné a užitečné.