Kako nastaviti in upravljati omrežne povezave z orodjem nmcli


Kot skrbnik Linuxa imate na voljo različna orodja za konfiguriranje svojih omrežnih povezav, kot so: nmtui, vaš NetworkManager z grafičnim uporabniškim vmesnikom GNOME in seveda nmcli (orodje ukazne vrstice upravitelja omrežja).

Videl sem že veliko skrbnikov, ki uporabljajo nmtui za poenostavitev. Vendar uporaba nmcli prihrani vaš čas, vam daje samozavest, lahko ga uporablja v skriptih in je prvo orodje za odpravljanje težav z omrežjem strežnika Linux in hitro vrnitev njegovih funkcij.

Ko sem videl veliko komentarjev, ki so prosili za pomoč glede nmcli, sem se odločil napisati ta članek. Seveda morate vedno natančno prebrati strani z navodili (to je No1 za vas). Moj cilj je prihraniti vaš čas in vam pokazati nekaj namigov.

Sintaksa nmcli je:

# nmcli [OPTIONS] OBJECT {COMMAND | help}

Kjer je OBJECT eden izmed: splošno, omrežje, radio, povezava, naprava, agent.

Dobro izhodišče bi bilo preveriti naše naprave:

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

Kot lahko vidimo v prvem stolpcu je seznam naših omrežnih naprav. Imamo eno omrežno kartico z imenom enp0s3 . V vaši napravi lahko vidite druga imena.

Poimenovanje je odvisno od vrste omrežne kartice (če je vgrajena, kartica PCI itd.). V zadnjem stolpcu vidimo konfiguracijske datoteke, ki jih naše naprave uporabljajo za povezavo z omrežjem.

Preprosto je razumeti, da naše naprave same po sebi ne morejo storiti ničesar. Za izdelavo konfiguracijske datoteke potrebujejo, da jim povemo, kako doseči omrežno povezljivost. Te datoteke imenujemo tudi\"povezavni profili". Najdemo jih v imeniku/etc/sysconfig/network-scripts.

# cd /etc/sysconfig/network-scripts/
# ls
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

Kot lahko vidite tukaj, so datoteke z imenom, ki se začne z ifcfg- (konfiguracija vmesnika), profili povezave. Ko ustvarimo novo povezavo ali spremenimo obstoječo z nmcli ali nmtui, se rezultati tukaj shranijo kot profili povezave.

Pokazal vam bom dva iz mojega računalnika, enega s konfiguracijo dhcp in drugega s statičnim ip.

# cat ifcfg-static1
# cat ifcfg-Myoffice1

Zavedamo se, da imajo nekatere lastnosti različne vrednosti, nekatere druge pa ne obstajajo, če to ni potrebno. Na hitro si oglejmo najpomembnejše izmed njih.

  1. TYPE , tukaj imamo vrsto etherneta. Lahko bi imeli wifi, ekipo, obveznice in druge.
  2. NAPRAVA , ime omrežne naprave, ki je povezana s tem profilom.
  3. BOOTPROTO , če ima vrednost\"dhcp", potem naš profil povezave vzame dinamični IP s strežnika dhcp, če ima vrednost\"none", potem ne potrebuje dinamičnega IP-ja in verjetno, če dodeli statični IP.
  4. IPADDR , je statični IP, ki ga dodelimo našemu profilu.
  5. PREFIX , maska podomrežja. Vrednost 24 pomeni 255.255.255.0. Masko podomrežja lahko bolje razumete, če zapišete njeno binarno obliko. Na primer vrednosti 16, 24, 26 pomenijo, da je prvih 16, 24 oziroma 26 bitov 1 in preostalih 0, natančno pa določa, kateri omrežni naslov je in kakšen je obseg ip, ki ga lahko dodelimo.
  6. GATEWAY , IP prehoda.
  7. DNS1 , DNS2 , dva strežnika dns, ki ju želimo uporabiti.
  8. ONBOOT , če ima vrednost\"yes", pomeni, da bo naš računalnik ob zagonu prebral ta profil in ga poskušal dodeliti svoji napravi.

Zdaj pa pojdimo naprej in preverimo naše povezave:

# nmcli con show

Zadnji stolpec naprav nam pomaga razumeti, katera povezava je "UP" in deluje in katera ne. Na zgornji sliki lahko vidite dve aktivni povezavi: Myoffice1 in enp0s8.

Namig: če želite videti samo aktivne povezave, vnesite:

# nmcli con show -a

Namig: Ko uporabljate nmcli, lahko uporabite zavihek s samodejnim dokončanjem, vendar je bolje uporabiti minimalno obliko ukaza. Tako so naslednji ukazi enaki:

# nmcli connection show
# nmcli con show
# nmcli c s

Če preverim ip naslove svojih naprav:

# ip a

Vidim, da je moja naprava enp0s3 prevzela IP 192.168.1.6 s strežnika dhcp, ker ima profil povezave Myoffice1 , ki je na voljo, konfiguracijo dhcp. Če prikličem \"up" svoj profil povezave z imenom static1 , bo moja naprava sprejela statični IP 192.168.1.40, kot je definiran v profilu povezave.

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

Ponovno si oglejmo naslov IP:

# ip a

Lahko naredimo svoj prvi profil povezave. Najmanjše lastnosti, ki jih moramo definirati, so type, ifname in con-name:

  1. type - za vrsto povezave.
  2. ifname - za ime naprave, ki je dodeljeno naši povezavi.
  3. con-name - za ime povezave.

Vzpostavimo novo ethernet povezavo z imenom Myhome1 , dodeljeno napravi enp0s3 :

# nmcli con add type ethernet con-name Myhome1 ifname enp0s3

Preverite njegovo konfiguracijo:

# cat ifcfg-Myhome1

Kot lahko vidite, ima BOOTPROTO = dhcp , ker nismo podali nobenega statičnega naslova ip.

Namig: Z ukazom \"nmcli con mod \" lahko spremenimo katero koli povezavo. Če pa spremenite povezavo dhcp in jo spremenite v statično, ne pozabite spremeniti njene \"ipv4.method" iz \"auto" v \" priročnik ". V nasprotnem primeru boste dobili dva naslova IP: enega s strežnika dhcp in statičnega.

Naredimo nov profil Ethernet povezave z imenom static2 , ki bo dodeljen napravi enp0s3 , s statičnim IP 192.168.1.50, masko podomrežja 255.255.255.0 = 24 in prehodom 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

Preverite njegovo konfiguracijo:

# cat ifcfg-static2

Spremenimo zadnji profil povezave in dodamo dva strežnika dns.

# nmcli con mod static2 ipv4.dns “8.8.8.8 8.8.4.4”

Namig: Tukaj morate biti pozorni: lastnosti naslova IP in prehoda imajo različna imena, ko dodajate in spreminjate povezavo. Ko dodajate povezave, uporabite \"ip4” in \"gw4” , medtem ko jih spreminjate, uporabljate \"ipv4" in < koda>\"gwv4" .

Zdaj pa predstavimo ta profil povezave:

# nmcli con down static1 ; nmcli con up static2

Kot lahko vidite, ima naprava enp0s3 zdaj naslov IP 192.168.1.50.

# ip a

Namig: Veliko lastnosti lahko spremenite. Če se jih ne spomnite na pamet, si lahko pomagate tako, da vnesete \"nmcli con show" in za tem ime povezave:

# nmcli con show static2

Vse te lastnosti lahko spremenite z malimi črkami.

Na primer: ko odstranite profil povezave, NetworkManager poišče drug profil povezave in ga samodejno prikaže. (Pustim to kot vajo za preverjanje). Če ne želite, da se vaš profil povezave samodejno poveže:

# nmcli con mod static2 connection.autoconnect no

Zadnja vaja je zelo koristna: ustvarili ste profil povezave, vendar želite, da ga uporabljajo določeni uporabniki. Dobro je razvrstiti svoje uporabnike!

Ta profil lahko uporabljamo samo uporabnik stella:

# nmcli con mod static2 connection.permissions stella

Namig: Če želite dati dovoljenja več kot enemu uporabniku, morate vnesti user: user1, user2 brez praznega prostora med njimi:

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

Če se prijavite kot drug uporabnik, ne morete odpreti tega profila povezave:

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

Sporočilo o napaki pravi, da povezava 'static2' ne obstaja, tudi če vidimo, da obstaja. To pa zato, ker trenutni uporabnik nima dovoljenj za vzpostavitev te povezave.

Zaključek: ne oklevajte z uporabo nmcli. To je enostavno in koristno.