IP-verkon määrittäminen "nmcli":llä Linuxissa


Linux-järjestelmänvalvojana sinulla on useita työkaluja verkkoyhteyksien määrittämiseen, kuten nmtui, NetworkManager GNOME-graafisella käyttöliittymällä ja tietysti >nmcli (verkonhallinnan komentorivityökalu).

Olen huomannut, että monet järjestelmänvalvojat käyttävät nmtuia sen yksinkertaisuuden vuoksi. nmcli säästää kuitenkin aikaasi, lisää itseluottamustasi, mahdollistaa integroinnin komentosarjoihin ja on ensisijainen työkalu Linux-palvelinverkkojen vianmääritykseen ja palauttaa sen toimivuuden nopeasti.

Huomasin lukuisia kommentteja, joissa haettiin apua nmcli:n kanssa, päätin kirjoittaa tämän artikkelin. Tietenkin sinun tulee aina lukea man-sivut huolellisesti (ne ovat sinulle tärkein resurssi). Tavoitteeni on säästää aikaasi ja antaa sinulle hyödyllisiä vinkkejä.

nmcli-komentosyntaksi

nmcli:n syntaksi on:

nmcli [OPTIONS] OBJECT {COMMAND | help}

Missä OBJECT on jokin seuraavista: verkko, radio, yhteys, laite ja agentti.

Tarkista verkkolaitteen tila Linuxissa

Hyvä lähtökohta olisi tarkistaa laitteemme:

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

Kuten voimme nähdä ensimmäisessä sarakkeessa, siellä on luettelo verkkolaitteistamme. Meillä on yksi verkkokortti, jonka nimi on enp0s3. Koneellasi saatat nähdä erilaisia nimiä.

Nimeäminen riippuu verkkokortin tyypistä (onko se sisäinen, PCI-kortti jne.). Viimeisessä sarakkeessa näemme määritystiedostomme, joita laitteemme käyttävät muodostaakseen yhteyden verkkoon

On helppo ymmärtää, että laitteemme eivät yksinään voi tehdä mitään. He tarvitsevat meitä luomaan määritystiedoston, joka opastaa heitä verkkoyhteyden muodostamisessa. Näitä tiedostoja kutsutaan myös yhteysprofiileiksi, ja löydämme ne hakemistosta /etc/sysconfig/network-scripts.

cd /etc/sysconfig/network-scripts/
ls
Näytelähtö
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

Kuten näet tästä, tiedostot, joiden nimet alkavat kirjaimella 'ifcfg-' (rajapinnan kokoonpano), ovat yhteysprofiileja. Kun luomme uuden yhteyden tai muokkaamme olemassa olevaa yhteyttä nmcli- tai nmtui -sovelluksella, tulokset tallennetaan tähän yhteysprofiileina.

Näytän sinulle kaksi niistä koneeltani, joista toisessa on dhcp-asetukset ja toisessa staattinen ip.

cat ifcfg-static1
cat ifcfg-Myoffice1

Ymmärrämme, että joillakin kiinteistöillä on erilaiset arvot, ja toisia ei ole olemassa, jos ne eivät ole välttämättömiä.

Katsotaanpa nopeasti tärkeimmät.

  • TYYPPI – meillä on täällä Ethernet-tyyppi. Meillä voisi olla myös WiFi, tiimi, joukkovelkakirja ja muut.
  • LAITE – tähän profiiliin liitetyn verkkolaitteen nimi.
  • BOOTPROTO – jos sen arvo on "dhcp", yhteysprofiilimme saa dynaamisen IP-osoitteen DHCP-palvelimelta. Jos sen arvo on "ei mitään", se ei käytä dynaamista IP-osoitetta ja määritämme todennäköisesti staattisen IP-osoitteen.
  • IPADDR – on profiilillemme määrittämämme staattinen IP-osoite.
  • PREFIX – aliverkon peite. Arvo 24 tarkoittaa 255.255.255.0. Voit ymmärtää aliverkon peitteen paremmin kirjoittamalla sen binäärimuodon. Esimerkiksi arvot 16, 24 ja 26 tarkoittavat, että ensimmäinen 16, 24<- tai 26-bittien arvoksi on asetettu 1 ja loput ovat 0. Tämä määrittää verkko-osoitteen ja IP-osoitteiden alueen, jotka voidaan määrittää.
  • GATEWAY – yhdyskäytävän IP-osoite.
  • DNS1, DNS2 – kaksi dns-palvelinta, joita haluamme käyttää.
  • ONBOOT – jos sen arvo on "kyllä", se tarkoittaa, että tietokoneemme lukee käynnistyksen yhteydessä tämän profiilin ja yrittää määrittää sen laitteelleen.

Tarkista verkkoyhteys Linuxissa

Jatketaan nyt ja tarkistetaan yhteydet:

nmcli con show

Viimeinen laitesarake auttaa ymmärtämään, mikä yhteys on YLÖS ja käynnissä ja mikä ei. Yllä olevassa kuvassa näet kaksi aktiivista yhteyttä: Myoffice1 ja enp0s8.

Vihje: jos haluat nähdä vain aktiiviset yhteydet, kirjoita:

nmcli con show -a

Vihje: voit käyttää automaattista täydennystä painamalla Sarkain, kun käytät nmcli -ohjelmaa, mutta on parempi käyttää komennon minimimuoto.

Siten seuraavat komennot ovat samat:

nmcli connection show
nmcli con show
nmcli c s

Tarkista IP-osoite Linuxissa

Jos tarkistan laitteideni IP-osoitteet:

ip a

Näen, että laitteeni enp0s3 otti 192.168.1.6 IP-osoitteen dhcp-palvelimelta, koska ylhäällä olevalla yhteysprofiililla Myoffice1 on dhcp-määritykset.

Jos tuon "up " yhteysprofiilini nimellä staattinen1, laitteeni käyttää staattista IP-osoitetta 192.168.1.40 sellaisena kuin se on määritelty yhteysprofiili.

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

Katsotaanpa vielä IP-osoite:

ip a

Voimme tehdä ensimmäisen yhteysprofiilimme. Vähimmäisominaisuudet, jotka meidän on määritettävä, ovat type, ifname, ja con-name:

  • tyyppi – yhteystyypille.
  • ifname – yhteydellemme määritetylle laitteen nimelle.
  • con-name – yhteyden nimi.

Uuden Ethernet-yhteyden luominen Linuxissa

Tehdään uusi Ethernet-yhteys nimellä Myhome1, joka on määritetty laitteelle enp0s3:

nmcli con add type ethernet con-name Myhome1 ifname enp0s3

Tarkista sen kokoonpano:

cat ifcfg-Myhome1

Kuten näet, siinä on BOOTPROTO=dhcp, koska emme antaneet staattista IP-osoitetta.

Vihje: Voimme muokata mitä tahansa yhteyttä "nmcli con mod"-komennolla. Jos kuitenkin muokkaat dhcp-yhteyttä ja muutat sen staattiseksi, älä unohda muuttaa sen “ipv4.method ” arvosta “auto” muotoon “manuaalinen” . Muuten saat kaksi IP-osoitetta: yksi dhcp-palvelimelta ja staattinen.

Tehdään uusi Ethernet-yhteysprofiili, jonka nimi on static2, joka määritetään laitteelle enp0s3, jonka staattinen IP on 192.168.1.50, aliverkko maski 255.255.255.0=24 ja yhdyskäytävä 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

Tarkista sen kokoonpano:

cat ifcfg-static2

Muokkaa DNS-palvelimia Linuxissa

Muokataan viimeistä yhteysprofiilia ja lisätään kaksi dns-palvelinta.

nmcli con mod static2 ipv4.dns “8.8.8.8 8.8.4.4”

Vihje: Tässä on jotain, johon sinun on kiinnitettävä huomiota: IP-osoitteen ja yhdyskäytävän ominaisuuksilla on eri nimet, kun lisäät ja kun muokkaat yhteyttä. Kun lisäät yhteyksiä, käytät "ip4 " ja "gw4 ", kun taas muokkaat niitä "ipv4 " ja " gwv4 ”.

Ota Ethernet-yhteys käyttöön Linuxissa

Otetaan nyt tämä yhteysprofiili esiin:

nmcli con down static1 ; nmcli con up static2

Kuten näet, laitteen enp0s3 IP-osoite on nyt 192.168.1.50.

ip a

Vihje: Voit muokata monia ominaisuuksia. Jos et muista niitä ulkoa, voit auttaa itseäsi kirjoittamalla "nmcli con show" ja sen jälkeen yhteyden nimen:

nmcli con show static2

Voit muokata kaikkia näitä ominaisuuksia pienillä kirjaimilla.

Esimerkki: kun avaat yhteysprofiilin, NetworkManager etsii toista yhteysprofiilia ja tuo sen automaattisesti esiin. (Jätän sen harjoitukseksi tarkistaaksesi sen). Jos et halua yhteysprofiilisi muodostavan yhteyttä automaattisesti:

nmcli con mod static2 connection.autoconnect no

Viimeinen harjoitus on erittäin hyödyllinen: loit yhteysprofiilin, mutta haluat tiettyjen käyttäjien käytettävän sitä. On hyvä luokitella käyttäjäsi!

Aseta Ethernet-yhteyden käyttöoikeudet käyttäjälle Linuxissa

Annamme vain käyttäjän stella käyttää tätä profiilia:

nmcli con mod static2 connection.permissions stella

Vihje: Jos haluat antaa käyttöoikeudet useammalle kuin yhdelle käyttäjälle, sinun on kirjoitettava user:user1,user2 ilman välilyöntejä:

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

Jos kirjaudut sisään toisena käyttäjänä, et voi tuoda "ylös" tätä yhteysprofiilia:

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

Virheilmoitus kertoo, että yhteyttä "staattinen2" ei ole olemassa, vaikka näemme sen olevan olemassa. Tämä johtuu siitä, että nykyisellä käyttäjällä ei ole lupaa tuoda tätä yhteyttä.

Johtopäätös: älä epäröi käyttää nmcliä. Se on helppoa ja hyödyllistä.