Verkkoyhteyksien hallinta Linuxissa nmcli-konsoliapuohjelman avulla

Hyödynnä NetworkManager-verkonhallintatyökalua täysimääräisesti Linuxin komentorivillä käyttämällä nmcli-apuohjelmaa.

Verkkoyhteyksien hallinta Linuxissa nmcli-konsoliapuohjelman avulla

Apuohjelma nmcli kutsuu suoraan API:ta päästäkseen NetworkManager-toimintoihin.

Se ilmestyi vuonna 2010, ja monille siitä on tullut vaihtoehtoinen tapa määrittää verkkoliitäntöjä ja yhteyksiä. Vaikka jotkut vielä käyttävät ifconfig. Koska nmcli on komentorivikäyttöliittymä (CLI) -työkalu, joka on suunniteltu käytettäväksi pääteikkunoissa ja komentosarjoissa, se on ihanteellinen järjestelmänvalvojille, jotka työskentelevät ilman graafista käyttöliittymää.

ncml-komennon syntaksi

Yleisesti ottaen syntaksi näyttää tältä:

$ nmcli <options> <section> <action>

  • vaihtoehdot ovat parametreja, jotka määrittävät nmcli-toiminnan hienoudet,
  • osio (osio) - määrittää, mitä apuohjelman ominaisuuksia käytetään,
  • toiminta - voit määrittää, mitä todella on tehtävä.

Osioita on yhteensä 8, joista jokainen liittyy tiettyyn komentosarjaan (toimintoon):

  • Apu: tarjoaa apua ncmcli-komentoihin ja niiden käyttöön.
  • general palauttaa NetworkManager-tilan ja yleisen kokoonpanon.
  • Networking sisältää komennot verkkoyhteyden tilan kyselyyn ja yhteyksien käyttöönottoon/poistamiseen.
  • radio sisältää komennot WiFi-verkkoyhteyden tilan ja yhteyksien ottamiseksi käyttöön/poistamiseksi käytöstä.
  • monitori sisältää komennot NetworkManager-toiminnan seurantaan ja verkkoyhteyksien tilan muutosten tarkkailemiseen.
  • Yhteys sisältää komennot verkkoliitäntöjen hallintaan, uusien yhteyksien lisäämiseen ja olemassa olevien poistamiseen.
  • Laite käytetään pääasiassa laitteisiin liittyvien parametrien (kuten liitännän nimen) muuttamiseen tai laitteiden yhdistämiseen olemassa olevan yhteyden avulla.
  • salaisuus rekisteröi nmcli:n NetworkManagerin "salaiseksi agentiksi", joka kuuntelee salaisia ​​viestejä. Tätä osiota käytetään harvoin, koska nmcli toimii oletusarvoisesti tällä tavalla, kun muodostat yhteyden verkkoihin.

Yksinkertaisia ​​esimerkkejä

Ennen kuin aloitat, varmista, että NetworkManager on käynnissä ja nmcli voi kommunikoida sen kanssa:

$ nmcli general
STATE      CONNECTIVITY  WIFI-HW  WIFI     WWAN-HW  WWAN    
connected  full          enabled  enabled  enabled  enabled

Työ alkaa usein katsomalla kaikkia verkkoyhteysprofiileja:

$ nmcli connection show
NAME                UUID                                  TYPE      DEVICE
Wired connection 1  ac3241e4-b424-35d6-aaa7-07498561688d  ethernet  enp0s3
Wired connection 2  2279d917-fa02-390c-8603-3083ec5a1d3e  ethernet  enp0s8
Wired connection 3  52d89737-de92-35ec-b082-8cf2e5ac36e6  ethernet  enp0s9

Tämä komento käyttää vaikutus näytä Yhteys-osiosta.

Testikoneessa on Ubuntu 20.04. Tässä tapauksessa löysimme kolme langallista yhteyttä: enp0s3, enp0s8 ja enp0s9.

Hallitse yhteyksiä

On tärkeää ymmärtää, että nmcli:ssä termillä Yhteys tarkoitamme kokonaisuutta, joka sisältää kaiken tiedon yhteydestä. Toisin sanoen tämä on verkkokokoonpano. Yhteys kapseloi kaikki yhteyteen liittyvät tiedot, mukaan lukien linkkikerroksen ja IP-osoitetiedot. Nämä ovat Layer 2 ja Layer 3 OSI-verkkomallissa.

Kun määrität verkon Linuxissa, määrität yleensä yhteyksiä, jotka lopulta sidotaan verkkolaitteisiin, jotka puolestaan ​​ovat tietokoneeseen asennettuja verkkoliittymiä. Kun laite käyttää yhteyttä, sitä pidetään aktiivisena tai korotettuna. Jos yhteys ei ole käytössä, se on passiivinen tai nollattu.

Verkkoyhteyksien lisääminen

Ncmli-apuohjelman avulla voit nopeasti lisätä ja määrittää yhteyksiä välittömästi. Jos haluat esimerkiksi lisätä langallisen yhteyden 2:n (enp0s8:n kanssa), sinun on suoritettava seuraava komento pääkäyttäjänä:

$ sudo nmcli connection add type ethernet ifname enp0s8
Connection 'ethernet-enp0s8' (09d26960-25a0-440f-8b20-c684d7adc2f5) successfully added.

Tyyppivaihtoehdossa ilmoitamme, että kyseessä on Ethernet-yhteys, ja ifname (rajapinnan nimi) -vaihtoehdossa ilmoitetaan verkkoliitäntä, jota haluamme käyttää.

Näin tapahtuu komennon suorittamisen jälkeen:

$ nmcli connection show
NAME                UUID                                  TYPE      DEVICE
Wired connection 1  ac3241e4-b424-35d6-aaa7-07498561688d  ethernet  enp0s3
Wired connection 2  2279d917-fa02-390c-8603-3083ec5a1d3e  ethernet  enp0s8
Wired connection 3  52d89737-de92-35ec-b082-8cf2e5ac36e6  ethernet  enp0s9
ethernet-enp0s8     09d26960-25a0-440f-8b20-c684d7adc2f5  ethernet  --  

Uusi yhteys on luotu, ethernet-enp0s8. Sille annettiin UUID ja yhteystyyppi oli Ethernet. Nostetaan se ylös komennolla:

$ nmcli connection up ethernet-enp0s8
Connection successfully activated (D-Bus active path: /org/freedesktop/NetworkManager/ActiveConnection/4)

Tarkistetaan vielä luettelo aktiivisista yhteyksistä:

$ nmcli connection show --active
NAME                UUID                                  TYPE      DEVICE
Wired connection 1  ac3241e4-b424-35d6-aaa7-07498561688d  ethernet  enp0s3
ethernet-enp0s8     09d26960-25a0-440f-8b20-c684d7adc2f5  ethernet  enp0s8
Wired connection 3  52d89737-de92-35ec-b082-8cf2e5ac36e6  ethernet  enp0s9

Uusi yhteys ethernet-enp0s8 on lisätty, se on aktiivinen ja käyttää enp0s8 verkkoliitäntää.

Liitäntöjen määrittäminen

Ncmli-apuohjelman avulla voit helposti muuttaa olemassa olevien yhteyksien parametreja. Sinun on esimerkiksi vaihdettava dynaaminen (DHCP) IP-osoitteesi staattiseksi IP-osoitteeksi.

Oletetaan, että meidän on asetettava IP-osoitteeksi 192.168.4.26. Tätä varten käytämme kahta komentoa. Ensimmäinen asettaa IP-osoitteen suoraan ja toinen vaihtaa IP-osoitteen asetustavan manuaaliseksi:

$ nmcli connection modify ethernet-enp0s8 ipv4.address 192.168.4.26/24
$ nmcli connection modify ethernet-enp0s8 ipv4.method manual

Muista asettaa myös aliverkon peite. Testiyhteydellemme tämä on 255.255.255.0 tai /24 luokkattomassa reitityksessä (CIDR).

Jotta muutokset tulevat voimaan, sinun on deaktivoitava yhteys ja aktivoitava se uudelleen:

$ nmcli connection down ethernet-enp0s8
Connection 'ethernet-enp0s8' successfully deactivated (D-Bus active path: /org/freedesktop/NetworkManager/ActiveConnection/4)
$ nmcli connection up ethernet-enp0s8
Connection successfully activated (D-Bus active path: /org/freedesktop/NetworkManager/ActiveC

Jos päinvastoin sinun on asennettava DHCP, käytä automaattista manuaalisen sijaan:

$ nmcli connection modify ethernet-enp0s8 ipv4.method auto

Laitteiden kanssa työskentely

Tätä varten käytämme Laite-osiota.

Tarkistetaan laitteen tilaa

$ nmcli device status
DEVICE  TYPE      STATE      CONNECTION        
enp0s3  ethernet  connected  Wired connection 1
enp0s8  ethernet  connected  ethernet-enp0s8    
enp0s9  ethernet  connected  Wired connection 3
lo      loopback  unmanaged  --  

Laitetietojen pyytäminen

Voit tehdä tämän käyttämällä Näytä-toimintoa Laite-osiossa (sinun on määritettävä laitteen nimi). Apuohjelma näyttää paljon tietoa, usein useilla sivuilla.
Katsotaanpa enp0s8-käyttöliittymää, jota uusi yhteytemme käyttää. Varmistetaan, että se käyttää täsmälleen aiemmin määrittämäämme IP-osoitetta:

$ nmcli device show enp0s8
GENERAL.DEVICE:                         enp0s8
GENERAL.TYPE:                           ethernet
GENERAL.HWADDR:                         08:00:27:81:16:20
GENERAL.MTU:                            1500
GENERAL.STATE:                          100 (connected)
GENERAL.CONNECTION:                     ethernet-enp0s8
GENERAL.CON-PATH:                       /org/freedesktop/NetworkManager/ActiveConnection/6
WIRED-PROPERTIES.CARRIER:               on
IP4.ADDRESS[1]:                         192.168.4.26/24
IP4.GATEWAY:                            --
IP4.ROUTE[1]:                           dst = 192.168.4.0/24, nh = 0.0.0.0, mt = 103
IP6.ADDRESS[1]:                         fe80::6d70:90de:cb83:4491/64
IP6.GATEWAY:                            --
IP6.ROUTE[1]:                           dst = fe80::/64, nh = ::, mt = 103
IP6.ROUTE[2]:                           dst = ff00::/8, nh = ::, mt = 256, table=255

Tietoa on aika paljon. Korostetaan pääasia:

  • Verkkoliitännän nimi: enp0s8.
  • Liitäntätyyppi: langallinen Ethernet-yhteys.
  • Näemme laitteen MAC-osoitteen.
  • Suurin lähetysyksikkö (MTU) määritetty — yhden paketin hyödyllisen datalohkon enimmäiskoko, jonka protokolla voi lähettää ilman pirstoutumista.
  • laite tällä hetkellä yhteydessä.
  • Yhteyden nimimikä laite käyttää: ethernet-enp0s8.
  • Laite käyttää IP-osoite, jonka asensimme aiemmin: 192.168.4.26/24.

Muut tiedot liittyvät oletusreititys- ja yhteysyhdyskäytävän parametreihin. Ne riippuvat tietystä verkosta.

Interaktiivinen nmcli-editori

nmclissä on myös yksinkertainen interaktiivinen editori, jonka kanssa työskentely saattaa olla mukavampaa. Jos haluat käyttää sitä esimerkiksi ethernet-enp0s8-yhteydessä, käytä vaikutus edit:

$ nmcli connection edit ethernet-enp0s8

Siinä on myös pieni apu, joka on kuitenkin kooltaan pienempi kuin konsoliversio:

===| nmcli interactive connection editor |===
Editing existing '802-3-ethernet' connection: 'ethernet-enp0s8'
Type 'help' or '?' for available commands.
Type 'print' to show all the connection properties.
Type 'describe [<setting>.<prop>]' for detailed property description.
You may edit the following settings: connection, 802-3-ethernet (ethernet), 802-1x, dcb, sriov, ethtool, match, ipv4, ipv6, tc, proxy
nmcli>

Jos kirjoitat print-komennon ja painat Enter-näppäintä, nmcli näyttää kaikki yhteysominaisuudet:

===============================================================================
                 Connection profile details (ethernet-enp0s8)
===============================================================================
connection.id:                          ethernet-enp0s8
connection.uuid:                        09d26960-25a0-440f-8b20-c684d7adc2f5
connection.stable-id:                   --
connection.type:                        802-3-ethernet
connection.interface-name:              enp0s8
connection.autoconnect:                 yes
connection.autoconnect-priority:        0
connection.autoconnect-retries:         -1 (default)
connection.multi-connect:               0 (default)
connection.auth-retries:                -1
connection.timestamp:                   1593967212
connection.read-only:                   no
connection.permissions:                 --
connection.zone:                        --
connection.master:                      --
connection.slave-type:                  --
connection.autoconnect-slaves:          -1 (default)
connection.secondaries:                 --

Jos haluat esimerkiksi määrittää yhteyden DHCP:hen, kirjoita goto ipv4 ja napsauta enter:

nmcli> goto ipv4
You may edit the following properties: method, dns, dns-search, 
dns-options, dns-priority, addresses, gateway, routes, route-metric, 
route-table, routing-rules, ignore-auto-routes, ignore-auto-dns, 
dhcp-client-id, dhcp-iaid, dhcp-timeout, dhcp-send-hostname, 
dhcp-hostname, dhcp-fqdn, dhcp-hostname-flags, never-default, may-fail, 
dad-timeout
nmcli ipv4>

Kirjoita sitten set method auto ja napsauta enter:

nmcli ipv4> set method auto
Do you also want to clear 'ipv4.addresses'? [yes]:

Jos haluat tyhjentää staattisen IP-osoitteen, napsauta enter. Muussa tapauksessa kirjoita ei ja paina Enter. Voit tallentaa sen, jos uskot tarvitsevasi sitä tulevaisuudessa. Mutta jopa tallennetun staattisen IP-osoitteen kanssa, DHCP:tä käytetään, jos menetelmäksi on asetettu automaattinen.

Tallenna muutokset käyttämällä save-komentoa:

nmcli ipv4> save
Connection 'ethernet-enp0s8' (09d26960-25a0-440f-8b20-c684d7adc2f5) successfully updated.
nmcli ipv4>

Poistu nmcli Interactive Editorista kirjoittamalla quit. Jos muutat mieltäsi lähteäksesi, käytä takaisin-komentoa.

Eikä siinä vielä kaikki

Avaa nmcli Interactive Editor ja katso kuinka monta asetusta on ja kuinka monta ominaisuutta kullakin asetuksella on. Vuorovaikutteinen editori on loistava työkalu, mutta jos haluat käyttää nmcliä yksirivisissä tai skripteissä, tarvitset tavallisen komentoriviversion.

Nyt kun sinulla on perusasiat, tarkista miessivu nmcli nähdäksesi, kuinka se voi muuten auttaa sinua.

Mainonnan oikeuksista

Epic palvelimet - Onko virtuaalipalvelimet Windowsissa tai Linux tehokkailla AMD EPYC -perheen prosessoreilla ja erittäin nopeilla Intel NVMe -asemilla. Kiirehdi tilaamaan!

Verkkoyhteyksien hallinta Linuxissa nmcli-konsoliapuohjelman avulla

Lähde: will.com

Lisää kommentti