Kako konfigurirati IP umrežavanje s 'nmcli' u Linuxu
Kao Linux administrator, imate razne alate koje možete koristiti za konfiguriranje mrežnih veza, kao što je nmtui, vaš NetworkManager sa GNOME grafičkim korisničkim sučeljem i naravno nmcli (alat komandne linije za upravljanje mrežom).
Vidio sam da mnogi administratori koriste nmtui zbog svoje jednostavnosti. Međutim, korištenje nmcli štedi vam vrijeme, povećava vaše samopouzdanje, omogućava integraciju u skripte i primarni je alat za rješavanje problema s umrežavanjem Linux servera, brzo vraćajući njegovu funkcionalnost.
Primijetivši brojne komentare koji traže pomoć sa nmcli, odlučio sam napisati ovaj članak. Naravno, uvijek treba pažljivo čitati man stranice (one su izvor broj 1 za vas). Moj cilj je da vam uštedim vrijeme i dam vam neke korisne savjete.
Sintaksa komande nmcli
Sintaksa nmcli je:
nmcli [OPTIONS] OBJECT {COMMAND | help}
Gdje je OBJECT
jedan od općih, umrežavanje, radio, veza, uređaj i agent.
Provjerite status mrežnog uređaja u Linuxu
Dobra početna tačka bi bila da provjerite naše uređaje:
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 --
Kao što vidimo u prvoj koloni, postoji lista naših mrežnih uređaja. Imamo jednu mrežnu karticu pod nazivom enp0s3
. Na vašoj mašini možete vidjeti različita imena.
Imenovanje ovisi o vrsti mrežne kartice (da li je ugrađena, PCI kartica, itd.). U posljednjoj koloni vidimo naše konfiguracijske datoteke koje koriste naši uređaji za povezivanje na mrežu
Lako je shvatiti da naši uređaji sami po sebi ne mogu ništa. Potrebno im je da kreiramo konfiguracionu datoteku kako bismo ih uputili kako da ostvare mrežno povezivanje. Ove datoteke se također nazivaju "profili veze" i nalazimo ih u direktoriju /etc/sysconfig/network-scripts.
cd /etc/sysconfig/network-scripts/
ls
Sample Output
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
Kao što možete vidjeti ovdje, fajlovi čiji nazivi počinju sa 'ifcfg-'
(konfiguracija interfejsa) su profili veze. Kada kreiramo novu vezu ili modificiramo postojeću pomoću nmcli ili nmtui, rezultati se ovdje pohranjuju kao profili veze.
Pokazaću vam dva od njih sa moje mašine, jedan sa dhcp konfiguracijom i jedan sa statičkim IP-om.
cat ifcfg-static1
cat ifcfg-Myoffice1
Shvaćamo da neka svojstva imaju različite vrijednosti, a neka druga ne postoje ako nisu neophodna.
Pogledajmo na brzinu najvažnije.
TYPE
– ovdje imamo tip Ethernet. Mogli bismo imati i WiFi, tim, vezu i druge.DEVICE
– naziv mrežnog uređaja povezanog sa ovim profilom.BOOTPROTO
– ako ima vrijednost “dhcp ”, tada naš profil veze dobija dinamičku IP adresu od DHCP servera. Ako ima vrijednost “none ”, onda ne koristi dinamičku IP adresu i vjerovatno ćemo dodijeliti statičku IP adresu.IPADDR
– je statička IP adresa koju dodjeljujemo našem profilu.PREFIX
– maska podmreže. Vrijednost 24 znači 255.255.255.0. Možete bolje razumjeti masku podmreže ako zapišete njen binarni format. Na primjer, vrijednosti 16, 24 i 26 znače da prvih 16, 24<, odnosno 26 bita su postavljeni na 1, a ostali su na 0. Ovo definiše mrežnu adresu i opseg IP adresa koje se mogu dodijeliti.GATEWAY
– IP pristupnika.DNS1
,DNS2
– dva dns servera koja želimo da koristimo.ONBOOT
– ako ima vrijednost “da ” to znači da će pri pokretanju naš računar pročitati ovaj profil i pokušati ga dodijeliti svom uređaju.
Provjerite mrežnu vezu u Linuxu
Sada idemo dalje i provjerimo naše veze:
nmcli con show
Posljednja kolona uređaja pomaže nam da shvatimo koja je veza „UP“ i radi, a koja nije. Na gornjoj slici možete vidjeti dvije aktivne veze: Myoffice1 i enp0s8.
Savjet: Ako želite vidjeti samo aktivne veze, upišite:
nmcli con show -a
Savjet: Možete koristiti automatsko dovršavanje pritiskom na Tab
kada koristite nmcli, ali je bolje koristiti minimalni format naredbe.
Dakle, sljedeće komande su jednake:
nmcli connection show
nmcli con show
nmcli c s
Provjerite IP adresu u Linuxu
Ako provjerim ip adrese svojih uređaja:
ip a
Vidim da je moj uređaj enp0s3
uzeo 192.168.1.6 IP sa dhcp servera jer profil veze Myoffice1
koji je gore ima dhcp konfiguraciju.
Ako “gore ”
svoj profil veze pod imenom static1
tada će moj uređaj uzeti statički IP 192.168.1.40 kako je definirano u profil veze.
nmcli con down Myoffice1 ; nmcli con up static1
nmcli con show
Pogledajmo ponovo IP adresu:
ip a
Možemo napraviti naš prvi profil veze. Minimalna svojstva koja moramo definirati su type, ifname, i con-name:
type
– za tip veze.ifname
– za naziv uređaja koji je dodijeljen našoj vezi.con-name
– za naziv veze.
Kreiranje nove Ethernet veze u Linuxu
Napravimo novu ethernet vezu s imenom Myhome1
, dodijeljenom uređaju enp0s3
:
nmcli con add type ethernet con-name Myhome1 ifname enp0s3
Provjerite njegovu konfiguraciju:
cat ifcfg-Myhome1
Kao što vidite ima BOOTPROTO=dhcp
, jer nismo dali nikakvu statičku IP adresu.
Savjet: Možemo izmijeniti bilo koju vezu pomoću naredbe “nmcli con mod“
. Međutim, ako modificirate dhcp vezu i promijenite je u statičku, ne zaboravite je promijeniti “ipv4.method ”
iz “auto ”
u ”ručno ”
. U suprotnom, na kraju ćete dobiti dvije IP adrese: jednu sa dhcp servera i statičku.
Napravimo novi profil Ethernet veze sa imenom static2
, koji će biti dodijeljen uređaju enp0s3
, sa statičkom IP-om 192.168.1.50, podmrežom maska 255.255.255.0=24, i pristupnik 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
Provjerite njegovu konfiguraciju:
cat ifcfg-static2
Izmijenite DNS servere u Linuxu
Izmijenimo zadnji profil veze i dodamo dva dns servera.
nmcli con mod static2 ipv4.dns “8.8.8.8 8.8.4.4”
Savjet: Ovdje morate obratiti pažnju na nešto: svojstva za IP adresu i gateway imaju različita imena kada dodajete i kada mijenjate vezu. Kada dodajete veze koristite “ip4 ”
i “gw4 ”
, dok kada ih modificirate koristite “ipv4 ”
i “ gwv4 ”
.
Pokrenite Ethernet vezu u Linuxu
Sada otvorimo ovaj profil veze:
nmcli con down static1 ; nmcli con up static2
Kao što možete vidjeti, uređaj enp0s3
sada ima IP adresu 192.168.1.50.
ip a
Savjet: Postoji mnogo svojstava koja možete izmijeniti. Ako ih se ne sjećate napamet, možete si pomoći upisivanjem “nmcli con show ”
i nakon toga naziv veze:
nmcli con show static2
Možete izmijeniti sva ova svojstva napisana malim slovima.
Na primjer: kada spustite profil veze, NetworkManager traži drugi profil veze i automatski ga prikazuje. (Ostavljam to kao vježbu za provjeru). Ako ne želite da se vaš profil veze automatski povezuje:
nmcli con mod static2 connection.autoconnect no
Posljednja vježba je vrlo korisna: napravili ste profil veze, ali želite da ga koriste određeni korisnici. Dobro je klasificirati svoje korisnike!
Postavite dozvole za Ethernet vezu na Korisnik u Linuxu
Dozvoljavamo samo korisniku stella da koristi ovaj profil:
nmcli con mod static2 connection.permissions stella
Savjet: Ako želite dati dozvole više od jednog korisnika, morate upisati user:user1,user2
bez razmaka između njih:
nmcli con mod static2 connection.permissions user:stella,john
Ako se prijavite kao drugi korisnik, ne možete “podignuti ” ovaj profil veze:
nmcli con show
nmcli con up static2
ls /etc/sysconfig/network-scripts
Poruka o grešci kaže da veza ‘static2’ ne postoji, čak i ako vidimo da postoji. To je zato što trenutni korisnik nema dozvolu za pokretanje ove veze.
Zaključak: ne ustručavajte se koristiti nmcli. Lako je i korisno.