Ukulawula uqhakamshelwano lwenethiwekhi kwiLinux usebenzisa into eluncedo ye-console ye-nmcli

Thatha inzuzo epheleleyo yeNethiwekhi yolawulo isixhobo sothungelwano kumgca womyalelo weLinux usebenzisa into eluncedo ye-nmcli.

Ukulawula uqhakamshelwano lwenethiwekhi kwiLinux usebenzisa into eluncedo ye-console ye-nmcli

Uncedo nmcli ngqo ubiza API ukufikelela NetworkManager imisebenzi.

Ivele ngo-2010 kwaye kwabaninzi iye yaba yenye indlela yokuqwalasela ujongano lwenethiwekhi kunye noqhagamshelwano. Nangona abanye abantu basasebenzisa ifconfig. Ngenxa yokuba i-nmcli sisixhobo sojongano lwelayini yomyalelo (CLI) eyenzelwe ukusetyenziswa kwiterminal windows kunye nezikripthi, ifanelekile kubalawuli benkqubo abasebenza ngaphandle kweGUI.

ncmli umyalelo wesintaksi

Ngokubanzi, i-syntax ibonakala ngolu hlobo:

$ nmcli <options> <section> <action>

  • iinketho zi parameters ezimisela ubucukubhede bokusebenza kwe-nmcli,
  • icandelo (icandelo) - limisela ukuba zeziphi iimpawu zosetyenziso oluza kusetyenziswa,
  • intshukumo - ikuvumela ukuba uchaze ukuba yintoni kanye ekufuneka yenziwe.

Kukho amacandelo asi-8 ewonke, ngalinye linxulunyaniswa neseti yemiyalelo (izenzo):

  • Nceda inikeza uncedo malunga nemiyalelo ye-ncmcli kunye nokusetyenziswa kwayo.
  • ngokubanzi ibuyisela imo ye-NetworkManager kunye noqwalaselo lwehlabathi jikelele.
  • iNethiwekhi iquka imiyalelo yokubuza ubume boqhagamshelwano lwenethiwekhi kwaye uvule/uvale imidibaniso.
  • unomathotholo iquka imiyalelo yokubuza ubume boqhagamshelwano lwenethiwekhi yeWiFi kwaye uvule/ucime uqhagamshelo.
  • Monitor iquka imiyalelo yokubeka iliso kumsebenzi weNetworkManager kunye nokujonga utshintsho kwimeko yoqhagamshelo lwenethiwekhi.
  • Uxhumano iquka imiyalelo yokulawula ujongano lomsebenzi womnatha, ukongeza imidibaniso emitsha kunye nokucima esele ikho.
  • isixhobo isetyenziswa ikakhulu ukutshintsha icebo eliyeleleneyo iparamitha (ezifana negama lojongano) okanye ukuqhagamshela izixhobo usebenzisa uqhagamshelwano olukhoyo.
  • imfihlelo ibhalisa i-nmcli njenge-NetworkManager "i-arhente eyimfihlo" emamela imiyalezo eyimfihlo. Eli candelo alifane lisetyenziswe, kuba i-nmcli isebenza ngolu hlobo ngokungagqibekanga xa idibanisa kuthungelwano.

Imizekelo elula

Ngaphambi kokuba uqale, qiniseka ukuba i-NetworkManager iyasebenza kwaye i-nmcli inokunxibelelana nayo:

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

Umsebenzi uhlala uqala ngokujonga zonke iiprofayili zoqhagamshelo lwenethiwekhi:

$ 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

Lo myalelo usebenzisa nyathelo bonisa icandelo loQhagamshelwano.

Umatshini wovavanyo usebenzisa Ubuntu 20.04. Kule meko, sifumene uqhagamshelo oluneentambo ezintathu: enp0s3, enp0s8, kunye ne-enp0s9.

Lawula imidibaniso

Kubalulekile ukuqonda ukuba kwi-nmcli, ngegama elithi Connection sithetha iqumrhu eliqulethe lonke ulwazi malunga noqhagamshelwano. Ngamanye amazwi, olu luqwalaselo lwenethiwekhi. Uqhagamshelo lufakela lonke ulwazi olunxulumene nonxibelelwano, kubandakanywa umgca wekhonkco kunye nolwazi lwedilesi ye-IP. Ezi ziLayer 2 kunye neLayer 3 kwimodeli yothungelwano yeOSI.

Xa useta uthungelwano kwi-Linux, uqhele ukuseta uqhagamshelo oluya kugqiba lubotshelelwe kwizixhobo zothungelwano, ezithi zona zibe zidibaniso zenethiwekhi ezifakwe kwikhompyuter. Xa isixhobo sisebenzisa uqhagamshelwano, sithathwa ngokuba siyasebenza okanye siphakamile. Ukuba uqhagamshelwano alusebenzi, alusebenzi okanye lusetwe ngokutsha.

Ukongeza imidibaniso yenethiwekhi

Umsebenzi we-ncmli ikuvumela ukuba wongeze ngokukhawuleza kwaye uqwalasele ngokukhawuleza imidibaniso. Umzekelo, ukongeza uQhagamshelwano oluNxibelelwano lwe-2 (nge-enp0s8), kufuneka usebenzise lo myalelo ulandelayo njengomsebenzisi omkhulu:

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

Kuhlobo lwenketho sibonisa ukuba oku kuya kuba ludibaniso lwe-Ethernet, kwaye kwi-ifname (igama le-interface) sibonisa ujongano lwenethiwekhi esifuna ukuyisebenzisa.

Nantsi into eza kwenzeka emva kokwenza umyalelo:

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

Uqhagamshelo olutsha lwenziwe, i-ethernet-enp0s8. Yabelwa i-UUID kwaye uhlobo loqhagamshelwano lwaluyi-Ethernet. Masiyiphakamise sisebenzisa umyalelo ophezulu:

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

Masijonge uluhlu loqhakamshelwano olusebenzayo kwakhona:

$ 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

Uqhagamshelwano olutsha lwe-ethernet-enp0s8 longeziwe, luyasebenza kwaye lusebenzisa ujongano lwenethiwekhi ye-enp0s8.

Ukuseta imidibaniso

Into eluncedo ye-ncmli ikuvumela ukuba utshintshe ngokulula iiparameters zoqhagamshelwano olukhoyo. Umzekelo, kufuneka utshintshe idilesi ye-IP eguqukayo (DHCP) kwidilesi ye-IP engatshintshiyo.

Masithi kufuneka sisete idilesi ye-IP ku-192.168.4.26. Ukwenza oku sisebenzisa imiyalelo emibini. Eyokuqala iyakuseta ngokuthe ngqo idilesi ye-IP, kwaye eyesibini iya kutshintsha indlela yokuseta idilesi ye-IP kwincwadana:

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

Ungalibali ukuseta imaski ye-subnet. Uqhagamshelo lwethu lovavanyo luyi-255.255.255.0, okanye nge /24 yomzila ongenaklasi (CIDR).

Ukuze utshintsho lusebenze, kufuneka uluvale uze uvule uqhagamshelwano kwakhona:

$ 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

Ukuba, ngokuchaseneyo, kufuneka ufake i-DHCP, sebenzisa i-auto endaweni yencwadana:

$ nmcli connection modify ethernet-enp0s8 ipv4.method auto

Ukusebenza ngezixhobo

Kule nto sisebenzisa icandelo leSixhobo.

Ijonga imeko yesixhobo

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

Ukucela ulwazi lwesixhobo

Ukwenza oku, sebenzisa isenzo sokubonisa esivela kwicandelo leSixhobo (kufuneka uchaze igama lesixhobo). Uncedo lubonisa ulwazi oluninzi, rhoqo kumaphepha amaninzi.
Makhe sijonge ujongano lwe-enp0s8 olusetyenziswa ngumdibaniso wethu omtsha. Masiqinisekise ukuba isebenzisa kanye idilesi ye-IP ebesiyiseta ngaphambili:

$ 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

Luninzi kakhulu ulwazi. Masiqaqambise eyona nto iphambili:

  • Igama lojongano lwenethiwekhi: enp0s8.
  • Uhlobo loqhagamshelo: uqhagamshelo lwe-Ethernet enentambo.
  • Sibona idilesi ye-MAC yesixhobo.
  • Ubuninzi beyunithi yothumelo (MTU) ichaziwe β€” ubungakanani obukhulu bebhloko yedatha eluncedo yepakethi enye enokuhanjiswa ngeprotocol ngaphandle kokwahlulwa.
  • I sixhobo ngoku iqhagamshelwe.
  • Igama loqhagamshelosesiphi isixhobo esisebenzisayo: i-ethernet-enp0s8.
  • Isixhobo sisebenzisa i Idilesi ye-IP, esiyifake ngaphambili: 192.168.4.26/24.

Olunye ulwazi lunxulumene nendlela engagqibekanga kunye neeparamitha zesango loqhagamshelwano. Zixhomekeke kwinethiwekhi ethile.

Umhleli we-nmcli osebenzayo

I-nmcli inomhleli olula osebenzisanayo, onokukhululeka ngakumbi ukuba abanye basebenze naye. Ukuyiqhuba kuqhagamshelo lwe-ethernet-enp0s8 umzekelo, sebenzisa nyathelo hlela:

$ nmcli connection edit ethernet-enp0s8

Ikwanalo noncedo oluncinci, oluthi, nangona kunjalo, luncinci ngobukhulu kunenguqulo ye-console:

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

Ukuba uchwetheza umyalelo wokushicilela kwaye ucinezele u-Enter, i-nmcli iya kubonisa zonke iimpawu zoqhagamshelwano:

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

Umzekelo, ukuseta uqhagamshelo kwiDHCP, chwetheza goto ipv4 kwaye ucofe faka:

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>

Emva koko bhala indlela yokuseta ngokuzenzekelayo kwaye ucofe faka:

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

Ukuba ufuna ukucima idilesi ye-IP engatshintshiyo, cofa faka. Kungenjalo, chwetheza hayi kwaye ucinezele u-Enter. Ungayigcina ukuba ucinga ukuba uza kuyidinga kwixesha elizayo. Kodwa nangona idilesi ye-IP engatshintshiyo egciniweyo, i-DHCP iya kusetyenziswa ukuba indlela imiselwe kwi-auto.

Sebenzisa umyalelo wokugcina ukugcina utshintsho lwakho:

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

Chwetheza ukuyeka ukuphuma kwi-nmcli Interactive Editor. Ukuba utshintsha ingqondo yakho malunga nokuhamba, sebenzisa umyalelo ongasemva.

Kwaye akuphelelanga apho

Vula i-nmcli Interactive Umhleli kwaye ubone ukuba zingaphi iisetingi ezikhoyo kwaye zingaphi iipropati esinazo isicwangciso ngasinye. Umhleli osebenzisanayo sisixhobo esihle, kodwa ukuba ufuna ukusebenzisa i-nmcli kwimigca enye okanye izikripthi, uya kufuna uguqulelo oluqhelekileyo lomgca womyalelo.

Ngoku ukuba unayo iziseko, khangela iphepha lomntu nmcli ukubona ukuba ingakunceda njani na.

Njengentengiso

Iiseva ze-Epic - yi le iiseva zenyani kwiWindows okanye iLinux eneeprosesa zeentsapho ze-AMD EPYC ezinamandla kunye ne-Intel NVMe ekhawulezayo. Khawuleza uyokwenza iodolo!

Ukulawula uqhakamshelwano lwenethiwekhi kwiLinux usebenzisa into eluncedo ye-console ye-nmcli

umthombo: www.habr.com

Yongeza izimvo