Jinsi ya Kusanidi na Kusimamia Viunganisho vya Mtandao Kwa Kutumia Zana ya nmcli


Kama msimamizi wa Linux una zana mbalimbali za kutumia ili kusanidi miunganisho ya mtandao wako, kama vile: nmtui, NetworkManager yako iliyo na kiolesura cha picha cha GNOME na bila shaka nmcli (zana ya amri ya msimamizi wa mtandao).

Nimeona wasimamizi wengi wakitumia nmtui kwa unyenyekevu. Walakini kutumia nmcli huokoa wakati wako, hukupa ujasiri, inaweza kuitumia katika hati na ndio zana ya kwanza kutumia ili kusuluhisha mtandao wako wa seva ya Linux na kurudisha utendakazi wake haraka.

Kuona maoni mengi yanayouliza msaada kuhusu nmcli, niliamua kuandika nakala hii. Kwa kweli unapaswa kusoma kwa uangalifu kurasa za mtu (msaada wa No1 kwako). Kusudi langu ni kuokoa wakati wako na kukuonyesha vidokezo.

Syntax ya nmcli ni:

# nmcli [OPTIONS] OBJECT {COMMAND | help}

Ambapo OBJECT ni mojawapo ya: jumla, mtandao, redio, muunganisho, kifaa, wakala.

Hatua nzuri ya kuanzia itakuwa kuangalia vifaa vyetu:

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

Kama tunavyoona kwenye safu ya kwanza kuna orodha ya vifaa vya mtandao wetu. Tuna kadi moja ya mtandao yenye jina enp0s3. Kwenye mashine yako unaweza kuona majina mengine.

Kutaja kunategemea aina ya kadi ya mtandao (ikiwa iko kwenye ubao, kadi ya pci, nk). Katika safu ya mwisho tunaona faili zetu za usanidi ambazo hutumiwa na vifaa vyetu ili kuunganisha kwenye mtandao.

Ni rahisi kuelewa kuwa vifaa vyetu peke yao haviwezi kufanya chochote. Wanahitaji tutengeneze faili ya usanidi ili kuwaambia jinsi ya kufikia muunganisho wa mtandao. Tunaziita faili hizi pia kama \wasifu wa muunganisho. Tunazipata katika saraka /etc/sysconfig/network-scripts.

# cd /etc/sysconfig/network-scripts/
# ls
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

Kama unavyoona hapa faili zilizo na jina linaloanza na ifcfg- (usanidi wa kiolesura) ni wasifu wa muunganisho. Tunapounda muunganisho mpya au kurekebisha uliopo na nmcli au nmtui, matokeo huhifadhiwa hapa kama wasifu wa muunganisho.

Nitakuonyesha mbili kati ya hizo kutoka kwa mashine yangu, moja iliyo na usanidi wa dhcp na moja iliyo na ip tuli.

# cat ifcfg-static1
# cat ifcfg-Myoffice1

Tunatambua kuwa baadhi ya sifa zina thamani tofauti na nyingine hazipo ikiwa si lazima. Wacha tuangalie kwa haraka zaidi muhimu zaidi kati yao.

  1. TYPE, tuna aina ya ethernet hapa. Tunaweza kuwa na wifi, timu, bondi na mengine.
  2. DEVICE, jina la kifaa cha mtandao ambacho kinahusishwa na wasifu huu.
  3. BOOTPROTO, ikiwa ina thamani \dhcp basi wasifu wetu wa muunganisho huchukua IP inayobadilika kutoka kwa seva ya dhcp, ikiwa ina thamani \hakuna basi haichukui IP inayobadilika na pengine kugawa IP tuli.
  4. IPADDR, ndiyo IP tuli tunayoweka kwa wasifu wetu.
  5. PREFIX, mask ya subnet. Thamani ya 24 inamaanisha 255.255.255.0. Unaweza kuelewa vyema mask ya subnet ikiwa utaandika umbizo lake la jozi. Kwa mfano thamani za 16, 24, 26 ina maana kwamba biti 16, 24 au 26 za kwanza mtawalia ni 1 na zilizosalia 0, kufafanua hasa anwani ya mtandao ni nini na ni aina gani ya ip inayoweza kukabidhiwa.
  6. GATEWAY, IP ya lango.
  7. DNS1, DNS2, seva mbili za dns tunazotaka kutumia.
  8. ONBOOT, ikiwa ina thamani \ndiyo inamaanisha, kuwa inapowasha kompyuta yetu itasoma wasifu huu na kujaribu kuukabidhi kwa kifaa chake.

Sasa, wacha tuendelee na tuangalie miunganisho yetu:

# nmcli con show

Safu wima ya mwisho ya vifaa hutusaidia kuelewa ni muunganisho upi \JUU na unaofanya kazi na ambao haufanyiki. Katika picha iliyo hapo juu unaweza kuona miunganisho miwili inayotumika: Myoffice1 na enp0s8.

Kidokezo: Ikiwa unataka kuona miunganisho inayotumika tu, chapa:

# nmcli con show -a

Kidokezo: Unaweza kutumia Kichupo cha kugonga kiotomatiki unapotumia nmcli, lakini ni bora kutumia umbizo la chini la amri. Kwa hivyo, amri zifuatazo ni sawa:

# nmcli connection show
# nmcli con show
# nmcli c s

Ikiwa nitaangalia anwani za ip za vifaa vyangu:

# ip a

Ninaona kwamba kifaa changu enp0s3 kilichukua 192.168.1.6 IP kutoka kwa seva ya dhcp, kwa sababu wasifu wa muunganisho Myoffice1 ulio juu una usanidi wa dhcp. Nikileta \juu wasifu wangu wa muunganisho wenye jina static1 basi kifaa changu kitachukua IP tuli 192.168.1.40 kama inavyofafanuliwa katika wasifu wa muunganisho.

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

Hebu tuone anwani ya IP tena:

# ip a

Tunaweza kutengeneza wasifu wetu wa kwanza wa muunganisho. Sifa za chini ambazo lazima tufafanue ni aina, ifname na con-name:

  1. aina - kwa aina ya muunganisho.
  2. ifname - kwa jina la kifaa ambalo limekabidhiwa muunganisho wetu.
  3. con-name - kwa jina la muunganisho.

Hebu tufanye muunganisho mpya wa ethaneti kwa jina Myhome1, lililowekwa kwenye kifaa enp0s3:

# nmcli con add type ethernet con-name Myhome1 ifname enp0s3

Angalia usanidi wake:

# cat ifcfg-Myhome1

Kama unavyoona ina BOOTPROTO=dhcp, kwa sababu hatukutoa anwani yoyote ya ip tuli.

Kidokezo: Tunaweza kurekebisha muunganisho wowote kwa \nmcli con mod\ amri. Hata hivyo ukirekebisha muunganisho wa dhcp na kuubadilisha kuwa tuli usisahau kubadilisha \ipv4.method yake kutoka \auto hadi \ mwongozo”. Vinginevyo utaishia na anwani mbili za IP: moja kutoka kwa seva ya dhcp na ile tuli.

Hebu tutengeneze wasifu mpya wa muunganisho wa Ethaneti kwa jina static2, ambayo itatumwa kwa kifaa enp0s3, yenye IP tuli 192.168.1.50, subnet mask 255.255.255.0=24 na lango 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

Angalia usanidi wake:

# cat ifcfg-static2

Hebu turekebishe wasifu wa mwisho wa uunganisho na uongeze seva mbili za dns.

# nmcli con mod static2 ipv4.dns “8.8.8.8 8.8.4.4”

Kidokezo: Kuna jambo hapa unapaswa kuzingatia: sifa za anwani ya IP na lango huwa na majina tofauti unapoongeza na unaporekebisha muunganisho. Unapoongeza miunganisho unatumia \ip4 na \gw4, wakati unapoirekebisha unatumia \ipv4 na < msimbo>\gwv4.

Sasa hebu tulete wasifu huu wa unganisho:

# nmcli con down static1 ; nmcli con up static2

Kama unavyoona, kifaa enp0s3 sasa kina anwani ya IP 192.168.1.50.

# ip a

Kidokezo: Kuna sifa nyingi unaweza kurekebisha. Ikiwa huzikumbuki kwa moyo unaweza kujisaidia kwa kuandika \nmcli con show na baada ya hapo jina la muunganisho:

# nmcli con show static2

Unaweza kurekebisha sifa hizi zote zilizoandikwa kwa herufi ndogo.

Kwa mfano: unaposhusha wasifu wa muunganisho, NetworkManager hutafuta wasifu mwingine wa muunganisho na kuuleta moja kwa moja. (Naiacha kama zoezi la kuiangalia). Ikiwa hutaki wasifu wako wa muunganisho uunganishwe kiotomatiki:

# nmcli con mod static2 connection.autoconnect no

Zoezi la mwisho ni la manufaa sana: ulitengeneza wasifu wa muunganisho lakini unataka utumike na watumiaji mahususi. Ni vizuri kuainisha watumiaji wako!

Tunamruhusu mtumiaji stella pekee kutumia wasifu huu:

# nmcli con mod static2 connection.permissions stella

Kidokezo: Ikiwa ungependa kutoa ruhusa kwa zaidi ya watumiaji mmoja, ni lazima uandike user:user1,user2 bila nafasi tupu kati yao:

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

Ukiingia kama mtumiaji mwingine huwezi kuleta \up wasifu huu wa muunganisho:

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

Ujumbe wa makosa unasema kwamba unganisho 'static2' haipo, hata ikiwa tunaona kuwa iko. Hiyo ni kwa sababu mtumiaji wa sasa hana ruhusa ya kuleta muunganisho huu.

Hitimisho: usisite kutumia nmcli. Ni rahisi na inasaidia.