Kaip sukonfigūruoti IP tinklą naudojant „nmcli“ sistemoje „Linux“.
Kaip Linux administratorius, turite įvairių įrankių, kuriuos galite naudoti tinklo ryšiams konfigūruoti, pvz., nmtui, NetworkManager su GNOME grafine vartotojo sąsaja ir, žinoma, >nmcli (tinklo tvarkyklės komandų eilutės įrankis).
Pastebėjau, kad daugelis administratorių naudoja nmtui dėl jo paprastumo. Tačiau naudojant nmcli sutaupote laiko, padidinate pasitikėjimą savimi, leidžiate integruoti į scenarijus ir yra pagrindinis įrankis, padedantis pašalinti „Linux“ serverių tinklo triktis, greitai atkuriantis jo funkcijas.
Pastebėjęs daugybę komentarų, kuriuose ieškoma pagalbos naudojant nmcli, nusprendžiau parašyti šį straipsnį. Žinoma, visada turėtumėte atidžiai perskaityti man puslapius (jie jums yra pagrindinis šaltinis). Mano tikslas yra sutaupyti jūsų laiką ir pateikti keletą naudingų patarimų.
nmcli komandų sintaksė
nmcli sintaksė yra tokia:
nmcli [OPTIONS] OBJECT {COMMAND | help}
Kur OBJEKTAS
yra bendrasis, tinklo, radijo, ryšio, įrenginio ir agento.
Patikrinkite tinklo įrenginio būseną sistemoje „Linux“.
Geras atspirties taškas būtų patikrinti mūsų įrenginius:
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 --
Kaip matome pirmame stulpelyje, yra mūsų tinklo įrenginių sąrašas. Turime vieną tinklo plokštę pavadinimu enp0s3
. Įrenginyje galite matyti skirtingus pavadinimus.
Pavadinimas priklauso nuo tinklo plokštės tipo (ar ji įmontuota, ar PCI kortelė ir pan.). Paskutiniame stulpelyje matome mūsų konfigūracijos failus, kuriuos mūsų įrenginiai naudoja prisijungdami prie tinklo
Nesunku suprasti, kad patys mūsų įrenginiai nieko negali padaryti. Jiems reikia, kad sukurtume konfigūracijos failą, kad nurodytume, kaip pasiekti tinklo ryšį. Šie failai taip pat vadinami ryšio profiliais ir juos randame kataloge /etc/sysconfig/network-scripts.
cd /etc/sysconfig/network-scripts/
ls
Pavyzdžio išvestis
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
Kaip matote čia, failai, kurių pavadinimai prasideda 'ifcfg-'
(sąsajos konfigūracija), yra ryšio profiliai. Kai sukuriame naują ryšį arba modifikuojame esamą naudodami nmcli arba nmtui, rezultatai išsaugomi čia kaip ryšio profiliai.
Parodysiu du iš jų iš savo kompiuterio, vieną su dhcp konfigūracija, o kitą su statiniu IP.
cat ifcfg-static1
cat ifcfg-Myoffice1
Suprantame, kad kai kurios savybės turi skirtingas vertes, o kai kurios kitos neegzistuoja, jei jos nėra būtinos.
Greitai pažvelkime į svarbiausius.
TIPAS
– čia yra Ethernet tipas. Taip pat galėtume turėti „WiFi“, komandą, ryšį ir kt.DEVICE
– su šiuo profiliu susieto tinklo įrenginio pavadinimas.BOOTPROTO
– jei jo reikšmė yra “dhcp ”, mūsų ryšio profilis gauna dinaminį IP iš DHCP serverio. Jei jo reikšmė yra „nėra“, tada jame nenaudojamas dinaminis IP ir greičiausiai priskirsime statinį IP.IPADDR
– tai statinis IP, kurį priskiriame savo profiliui.PREFIX
– potinklio kaukė. Vertė 24 reiškia 255.255.255.0. Galite geriau suprasti potinklio kaukę užrašę dvejetainį formatą. Pavyzdžiui, reikšmės 16, 24 ir 26 reiškia, kad pirmoji 16, 24< arba 26 bitai yra atitinkamai nustatyti į 1, o kiti yra 0. Tai apibrėžia tinklo adresą ir IP adresų, kuriuos galima priskirti, diapazoną.GATEWAY
– šliuzo IP.DNS1
,DNS2
– du DNS serveriai, kuriuos norime naudoti.ONBOOT
– jei jo reikšmė yra "yes", tai reiškia, kad įkrovos metu mūsų kompiuteris perskaitys šį profilį ir bandys priskirti jį savo įrenginiui.
Patikrinkite tinklo ryšį „Linux“.
Dabar eikime toliau ir patikrinkime savo ryšius:
nmcli con show
Paskutinis įrenginių stulpelis padeda suprasti, kuris ryšys yra „UP“ ir veikia, o kuris ne. Aukščiau pateiktame paveikslėlyje galite matyti du aktyvius ryšius: Myoffice1 ir enp0s8.
Patarimas: jei norite matyti tik aktyvius ryšius, įveskite:
nmcli con show -a
Patarimas: kai naudojate nmcli, galite naudoti automatinį užbaigimą paspaudę Tab
, bet geriau naudoti minimalus komandos formatas.
Taigi šios komandos yra lygios:
nmcli connection show
nmcli con show
nmcli c s
Patikrinkite IP adresą Linux
Jei patikrinu savo įrenginių IP adresus:
ip a
Matau, kad mano įrenginys enp0s3
paėmė 192.168.1.6 IP iš dhcp serverio, nes prisijungimo profilyje Myoffice1
yra dhcp konfigūracija.
Jei pateiksiu „up ”
savo ryšio profilį pavadinimu static1
, mano įrenginys naudos statinį IP 192.168.1.40, kaip apibrėžta ryšio profilis.
nmcli con down Myoffice1 ; nmcli con up static1
nmcli con show
Dar kartą pažiūrėkime IP adresą:
ip a
Galime sukurti pirmąjį ryšio profilį. Minimalios ypatybės, kurias turime apibrėžti, yra type, ifname, ir con-name:
tipas
– ryšio tipui.ifname
– įrenginio pavadinimui, priskirtam mūsų ryšiui.con-name
– ryšio pavadinimui.
Naujo eterneto ryšio sukūrimas sistemoje „Linux“.
Užmegzkime naują eterneto ryšį pavadinimu Myhome1
, priskirtu įrenginiui enp0s3
:
nmcli con add type ethernet con-name Myhome1 ifname enp0s3
Patikrinkite jo konfigūraciją:
cat ifcfg-Myhome1
Kaip matote, jis turi BOOTPROTO=dhcp
, nes nenurodėme jokio statinio IP adreso.
Patarimas: galime keisti bet kokį ryšį naudodami komandą „nmcli con mod“
. Tačiau, jei pakeisite dhcp ryšį ir pakeisite jį į statinį, nepamirškite jo pakeisti “ipv4.method ”
iš “auto ”
į „manual“
. Priešingu atveju gausite du IP adresus: vieną iš dhcp serverio ir statinį.
Sukurkime naują Ethernet ryšio profilį pavadinimu static2
, kuris bus priskirtas įrenginiui enp0s3
, kurio statinis IP 192.168.1.50, potinklis kaukė 255.255.255.0=24 ir šliuzas 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
Patikrinkite jo konfigūraciją:
cat ifcfg-static2
Keiskite DNS serverius Linux sistemoje
Pakeiskime paskutinį ryšio profilį ir pridėkime du dns serverius.
nmcli con mod static2 ipv4.dns “8.8.8.8 8.8.4.4”
Patarimas: čia yra kažkas, į ką turite atkreipti dėmesį: IP adreso ir šliuzo ypatybės turi skirtingus pavadinimus, kai pridedate ir kai keičiate ryšį. Kai pridedate ryšius, naudojate „ip4 ”
ir „gw4 ”
, o kai juos modifikuojate, naudojate „ipv4 ”
ir “ gwv4 ”
.
Sukurkite Ethernet ryšį Linux sistemoje
Dabar parodykime šį ryšio profilį:
nmcli con down static1 ; nmcli con up static2
Kaip matote, įrenginio enp0s3
IP adresas dabar yra 192.168.1.50.
ip a
Patarimas: yra daug ypatybių, kurias galite keisti. Jei neprisimenate jų mintinai, galite padėti sau įvesdami “nmcli con show ”
ir po to ryšio pavadinimą:
nmcli con show static2
Galite keisti visas šias ypatybes, parašytas mažosiomis raidėmis.
Pavyzdys: kai paleidžiate ryšio profilį, NetworkManager ieško kito ryšio profilio ir automatiškai jį iškviečia. (Palieku tai kaip pratimą patikrinti). Jei nenorite, kad jūsų ryšio profilis prisijungtų automatiškai:
nmcli con mod static2 connection.autoconnect no
Paskutinis pratimas yra labai naudingas: sukūrėte ryšio profilį, bet norite, kad jį naudotų konkretūs vartotojai. Verta klasifikuoti savo vartotojus!
Nustatykite Ethernet ryšio leidimus naudotojui sistemoje Linux
Šį profilį leidžiame naudoti tik naudotojui stella:
nmcli con mod static2 connection.permissions stella
Patarimas: jei norite suteikti leidimus daugiau nei vienam naudotojui, turite įvesti user:user1,user2
be tuščių tarpų tarp jų:
nmcli con mod static2 connection.permissions user:stella,john
Jei prisijungiate kaip kitas vartotojas, negalėsite „iškelti“ šio ryšio profilio:
nmcli con show
nmcli con up static2
ls /etc/sysconfig/network-scripts
Klaidos pranešimas sako, kad ryšys „static2“ neegzistuoja, net jei matome, kad jis yra. Taip yra todėl, kad dabartinis vartotojas neturi leidimo sukurti šio ryšio.
Išvada: nedvejodami naudokite nmcli. Tai lengva ir naudinga.