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.
-
TYPE
, tukaj imamo vrsto etherneta. Lahko bi imeli wifi, ekipo, obveznice in druge. -
NAPRAVA
, ime omrežne naprave, ki je povezana s tem profilom. -
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. -
IPADDR
, je statični IP, ki ga dodelimo našemu profilu. -
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. -
GATEWAY
, IP prehoda. -
DNS1
,DNS2
, dva strežnika dns, ki ju želimo uporabiti. -
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:
-
type
- za vrsto povezave. -
ifname
- za ime naprave, ki je dodeljeno naši povezavi. -
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.