Kā konfigurēt un pārvaldīt tīkla savienojumus, izmantojot nmcli rīku


Kā Linux administrators jums ir dažādi rīki, kas jāizmanto, lai konfigurētu tīkla savienojumus, piemēram: nmtui, jūsu NetworkManager ar GNOME grafisko lietotāja saskarni un, protams, nmcli (tīkla pārvaldnieka komandrindas rīks).

Esmu redzējis, ka daudzi administratori vienkāršības labad izmanto nmtui. Tomēr nmcli izmantošana ietaupa jūsu laiku, dod pārliecību, to var izmantot skriptos, un tas ir pirmais rīks, kas jāizmanto, lai novērstu Linux servera tīkla problēmas un ātri atjaunotu tā funkcionalitāti.

Redzot daudzus komentārus, lūdzot palīdzību par nmcli, es nolēmu uzrakstīt šo rakstu. Protams, jums vienmēr rūpīgi jāizlasa manas lapas (tā ir palīdzība Nr. 1). Mans mērķis ir ietaupīt jūsu laiku un parādīt dažus padomus.

Nmcli sintakse ir:

# nmcli [OPTIONS] OBJECT {COMMAND | help}

Kur OBJECT ir viens no šiem: vispārīgais, tīkls, radio, savienojums, ierīce, aģents.

Labs sākumpunkts būtu pārbaudīt mūsu ierīces:

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

Kā redzam pirmajā slejā, ir mūsu tīkla ierīču saraksts. Mums ir viena tīkla karte ar nosaukumu enp0s3 . Jūsu mašīnā varēja redzēt citus vārdus.

Nosaukšana ir atkarīga no tīkla kartes veida (ja tā ir borta, PCI karte utt.). Pēdējā slejā mēs redzam konfigurācijas failus, kurus mūsu ierīces izmanto, lai izveidotu savienojumu ar tīklu.

Ir vienkārši saprast, ka mūsu ierīces pašas par sevi neko nevar darīt. Viņiem ir nepieciešams, lai mēs izveidotu konfigurācijas failu, lai pastāstītu viņiem, kā panākt tīkla savienojamību. Mēs šos failus saucam arī par “savienojuma profiliem”. Mēs tos atrodam direktorijā/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

Kā redzat šeit, faili ar nosaukumu, kas sākas ar ifcfg- (saskarnes konfigurācija), ir savienojuma profili. Kad mēs izveidojam jaunu savienojumu vai pārveidojam esošu ar nmcli vai nmtui, rezultāti šeit tiek saglabāti kā savienojuma profili.

Ι ‘Parādīšu jums divus no manas mašīnas, vienu ar dhcp konfigurāciju un otru ar statisko ip.

# cat ifcfg-static1
# cat ifcfg-Myoffice1

Mēs saprotam, ka dažām īpašībām ir atšķirīgas vērtības, un dažām citām nav, ja tas nav nepieciešams. Apskatīsim svarīgākos no tiem.

  1. TYPE , mums šeit ir Ethernet tips. Mums varētu būt wifi, komanda, obligācijas un citi.
  2. DEVICE , ar šo profilu saistītās tīkla ierīces nosaukums.
  3. BOOTPROTO , ja tā vērtība ir “dhcp”, tad mūsu savienojuma profils paņem dinamisko IP no dhcp servera, ja tam ir vērtība “none”, tad tam nav nepieciešams dinamisks IP un, iespējams, mēs piešķiram statisku IP .
  4. IPADDR ir statiskais IP, ko piešķiram savam profilam.
  5. PREFIX , apakštīkla maska. Vērtība 24 nozīmē 255.255.255.0. Jūs labāk varat saprast apakštīkla masku, ja pierakstāt tās bināro formātu. Piemēram, vērtības 16, 24, 26 nozīmē, ka pirmie attiecīgi 16, 24 vai 26 biti ir 1 un pārējie 0, precīzi nosakot, kāda ir tīkla adrese un kāds ir IP diapazons, kuru var piešķirt.
  6. GATEWAY , vārtejas IP.
  7. DNS1 , DNS2 , divi DNS serveri, kurus vēlamies izmantot.
  8. ONBOOT , ja tam ir vērtība “jā”, tas nozīmē, ka, startējot, mūsu dators nolasīs šo profilu un mēģinās to piešķirt savai ierīcei.

Pārejam tālāk un pārbaudīsim mūsu savienojumus:

# nmcli con show

Pēdējā ierīču kolonna palīdz mums saprast, kurš savienojums ir “UP” un darbojas un kurš ne. Iepriekš redzamajā attēlā varat redzēt divus aktīvos savienojumus: Myoffice1 un enp0s8.

Padoms. Ja vēlaties redzēt tikai aktīvos savienojumus, ierakstiet:

# nmcli con show -a

Padoms: kad izmantojat nmcli, varat izmantot automātiskās pabeigšanas sitienu Tab, bet labāk ir izmantot minimālu komandas formātu. Tādējādi šādas komandas ir vienādas:

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

Ja pārbaudu savu ierīču IP adreses:

# ip a

Es redzu, ka mana ierīce enp0s3 paņēma 192.168.1.6 IP no dhcp servera, jo augšējā savienojuma profilā Myoffice1 ir dhcp konfigurācija. Ja es atvedu “up” savu savienojuma profilu ar nosaukumu static1 , tad mana ierīce izmantos statisko IP 192.168.1.40, kā tas ir noteikts savienojuma profilā.

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

Apskatīsim IP adresi vēlreiz:

# ip a

Mēs varam izveidot savu pirmo savienojuma profilu. Minimālās īpašības, kas mums jādefinē, ir tips, ifname un con-name:

  1. type - savienojuma veidam.
  2. ifname - ierīces nosaukumam, kuram piešķirts mūsu savienojums.
  3. con-name - savienojuma nosaukumam.

Izveidosim jaunu Ethernet savienojumu ar nosaukumu Myhome1 , kas piešķirts ierīcei enp0s3 :

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

Pārbaudiet tā konfigurāciju:

# cat ifcfg-Myhome1

Kā redzat, tam ir BOOTPROTO = dhcp , jo mēs nenorādījām statisku IP adresi.

Padoms. Mēs varam modificēt jebkuru savienojumu ar komandu “nmcli con mod” . Tomēr, ja modificējat dhcp savienojumu un maināt to uz statisku, neaizmirstiet mainīt tā “ipv4.metode” no “auto” uz “manual” . Pretējā gadījumā jums būs divas IP adreses: viena no dhcp servera un statiskā.

Izveidosim jaunu Ethernet savienojuma profilu ar nosaukumu static2 , kas tiks piešķirts ierīcei enp0s3 , ar statisko IP 192.168.1.50, apakštīkla masku 255.255.255.0 = 24 un vārteju 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

Pārbaudiet tā konfigurāciju:

# cat ifcfg-static2

Pārveidosim pēdējo savienojuma profilu un pievienosim divus DNS serverus.

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

Padoms: Šeit ir jāpievērš uzmanība: pievienojot un modificējot savienojumu, IP adreses un vārtejas rekvizītiem ir atšķirīgi nosaukumi. Pievienojot savienojumus, izmantojat “ip4” un “gw4” , savukārt, modificējot tos, izmantojat “ipv4” un “ gwv4 ”.

Tagad parādīsim šo savienojuma profilu:

# nmcli con down static1 ; nmcli con up static2

Kā redzat, ierīcei enp0s3 tagad ir IP adrese 192.168.1.50.

# ip a

Padoms. Ir daudz īpašību, kuras varat modificēt. Ja neatceraties tos no galvas, varat sev palīdzēt, ierakstot “nmcli con show” un pēc tam savienojuma nosaukumu:

# nmcli con show static2

Jūs varat modificēt visus šos rekvizītus, kas rakstīti ar mazajiem burtiem.

Piemēram: kad nolaižat savienojuma profilu, NetworkManager meklē citu savienojuma profilu un automātiski to uzrāda. (Es to atstāju kā vingrinājumu, lai to pārbaudītu). Ja nevēlaties, lai savienojuma profils automātiski izveidotu savienojumu:

# nmcli con mod static2 connection.autoconnect no

Pēdējais vingrinājums ir ļoti noderīgs: izveidojāt savienojuma profilu, bet vēlaties, lai to izmantotu konkrēti lietotāji. Ir labi klasificēt savus lietotājus!

Mēs ļāvām šo profilu izmantot tikai lietotājiem stella:

# nmcli con mod static2 connection.permissions stella

Padoms. Ja vēlaties piešķirt atļaujas vairākiem lietotājiem, jums jāievada user: user1, user2 bez atstarpes starp viņiem:

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

Ja piesakāties kā cits lietotājs, nevarat izveidot šo savienojuma profilu:

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

Kļūdas ziņojumā teikts, ka savienojums ‘static2’ neeksistē, pat ja redzam, ka tas pastāv. Tas ir tāpēc, ka pašreizējam lietotājam nav atļauju izveidot šo savienojumu.

Secinājums: nevilcinieties izmantot nmcli. Tas ir viegli un noderīgi.