Administri retkonektojn en Linukso uzante la nmcli-konzola ilo

Plene profitu la ilon pri retan administrado NetworkManager sur la Linukso-komandlinio uzante la ilon nmcli.

Administri retkonektojn en Linukso uzante la nmcli-konzola ilo

Utileco nmcli rekte vokas la API por aliri NetworkManager-funkciojn.

Ĝi aperis en 2010 kaj por multaj fariĝis alternativa maniero agordi retajn interfacojn kaj konektojn. Kvankam iuj homoj ankoraŭ uzas ifconfig. Ĉar nmcli estas komandlinia interfaco (CLI) ilo dizajnita por uzo en finaj fenestroj kaj skriptoj, ĝi estas ideala por sistemadministrantoj laborantaj sen GUI.

ncmli komanda sintakso

Ĝenerale, la sintakso aspektas jene:

$ nmcli <options> <section> <action>

  • opcioj estas parametroj kiuj determinas la subtilecojn de nmcli operacio,
  • sekcio (sekcio) - determinas kiujn funkciojn de la ilo uzi,
  • ago - permesas al vi specifi tion, kio efektive devas esti farita.

Estas 8 sekcioj entute, ĉiu el kiuj estas asociita kun certa aro de komandoj (agoj):

  • helpi provizas helpon pri ncmcli-komandoj kaj ilia uzado.
  • Ĝenerala resendas la statuson de NetworkManager kaj tutmondan agordon.
  • interkonektanta inkluzivas komandojn por pridemandi staton de retkonekto kaj ebligi/malŝalti konektojn.
  • Radio inkluzivas komandojn por pridemandi statuson de WiFi-retkonekto kaj ebligi/malŝalti konektojn.
  • monitoro inkluzivas komandojn por monitori NetworkManager-agadon kaj observi ŝanĝojn en la stato de retaj konektoj.
  • konekto inkluzivas komandojn por administri retajn interfacojn, aldoni novajn konektojn kaj forigi ekzistantajn.
  • artefakto ĉefe uzata por ŝanĝi aparatojn rilatajn parametrojn (kiel interfaco nomo) aŭ por konekti aparatojn uzante ekzistantan konekton.
  • sekreta registras nmcli kiel NetworkManager "sekreta agento" kiu aŭskultas sekretajn mesaĝojn. Ĉi tiu sekcio malofte estas uzata, ĉar nmcli funkcias tiamaniere defaŭlte dum konekto al retoj.

Simplaj ekzemploj

Antaŭ ol komenci, certigu, ke NetworkManager funkcias kaj nmcli povas komuniki kun ĝi:

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

Laboro ofte komenciĝas per rigardado de ĉiuj retkonektprofiloj:

$ 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

Ĉi tiu komando uzas ago montru por la sekcio Konekto.

La testmaŝino funkcias Ubuntu 20.04. En ĉi tiu kazo, ni trovis tri kablajn konektojn: enp0s3, enp0s8 kaj enp0s9.

Administri konektojn

Gravas kompreni, ke en nmcli, per la termino Konekto ni signifas enton, kiu enhavas ĉiujn informojn pri la konekto. Alivorte, ĉi tio estas la reto-agordo. Konekto enkapsuligas ĉiujn lig-rilatajn informojn, inkluzive de ligtavolo kaj IP-adresinformoj. Ĉi tiuj estas Tavolo 2 kaj Tavolo 3 en la OSI-retmodelo.

Kiam vi agordas reton en Linukso, vi kutime agordas konektojn kiuj finos esti ligitaj al retaj aparatoj, kiuj siavice estas retaj interfacoj instalitaj sur la komputilo. Kiam aparato uzas konekton, ĝi estas konsiderata aktiva aŭ levita. Se konekto ne estas uzata, ĝi estas neaktiva aŭ rekomencigita.

Aldonante retajn konektojn

La ilo ncmli permesas al vi rapide aldoni kaj tuj agordi konektojn. Ekzemple, por aldoni Kablan konekton 2 (kun enp0s8), vi devas ruli la sekvan komandon kiel superuzanto:

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

En la tipo-opcio ni indikas, ke ĉi tio estos Ethernet-konekto, kaj en la opcio ifname (interfaconomo) ni indikas la retan interfacon, kiun ni volas uzi.

Jen kio okazos post rulado de la komando:

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

Nova konekto estis kreita, ethernet-enp0s8. Ĝi ricevis UUID kaj la konektotipo estis Ethernet. Ni levu ĝin uzante la supren komandon:

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

Ni kontrolu denove la liston de aktivaj konektoj:

$ 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

Nova konekto ethernet-enp0s8 estis aldonita, ĝi estas aktiva kaj uzas la retan interfacon enp0s8.

Agordi konektojn

La ilo ncmli permesas facile ŝanĝi la parametrojn de ekzistantaj konektoj. Ekzemple, vi devas ŝanĝi vian dinamikan (DHCP) IP-adreson al statika IP-adreso.

Ni diru, ke ni devas agordi la IP-adreson al 192.168.4.26. Por fari tion ni uzas du komandojn. La unua rekte agos la IP-adreson, kaj la dua ŝanĝos la metodon de agordo de IP-adreso al manlibro:

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

Ne forgesu ankaŭ agordi la subretan maskon. Por nia prova konekto ĉi tio estas 255.255.255.0, aŭ kun /24 por senklasa vojigo (CIDR).

Por ke la ŝanĝoj efektiviĝu, vi devas malaktivigi kaj poste reaktivigi la konekton:

$ 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

Se, male, vi bezonas instali DHCP, uzu aŭtomatan anstataŭ manlibron:

$ nmcli connection modify ethernet-enp0s8 ipv4.method auto

Laborante kun aparatoj

Por tio ni uzas la sekcion Aparato.

Kontrolante la staton de la aparato

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

Petante informojn pri aparato

Por fari tion, uzu la montran agon el la sekcio Aparato (vi devas specifi la nomon de la aparato). La ilo montras multajn informojn, ofte sur pluraj paĝoj.
Ni rigardu la interfacon enp0s8, kiun nia nova konekto uzas. Ni certigu, ke ĝi uzas ĝuste la IP-adreson, kiun ni antaŭe agordis:

$ 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

Estas sufiĉe multe da informoj. Ni reliefigu la ĉefan aferon:

  • Reta interfaco nomo: enp0s8.
  • Tipo de konekto: kablita Ethernet-konekto.
  • Ni vidas la MAC-adreson de la aparato.
  • Maksimuma dissenda unuo (MTU) specifita — la maksimuma grandeco de utila datumbloko de unu pakaĵeto kiu povas esti elsendita per la protokolo sen fragmentiĝo.
  • Aparato nuntempe konektita.
  • Nomo de konektokiu aparato uzas: ethernet-enp0s8.
  • La aparato uzas la IP-adreso, kiun ni instalis pli frue: 192.168.4.26/24.

Aliaj informoj rilatas al la defaŭltaj envojaj kaj konektaj enirejo-parametroj. Ili dependas de la specifa reto.

Interaga nmcli-redaktilo

nmcli ankaŭ havas simplan interagan redaktilon, kiu povas esti pli komforta por iuj labori kun. Por ruli ĝin sur ethernet-enp0s8-konekto ekzemple, uzu ago redakti:

$ nmcli connection edit ethernet-enp0s8

Ĝi ankaŭ havas malgrandan helpon, kiu tamen estas pli malgranda ol la konzola versio:

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

Se vi tajpas la presan komandon kaj premas Enter, nmcli montros ĉiujn konektajn ecojn:

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

Ekzemple, por agordi la konekton al DHCP, tajpu goto ipv4 kaj alklaku Enigu:

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>

Poste skribu agordan metodon aŭtomate kaj alklaku Enigu:

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

Se vi volas forigi la statikan IP-adreson, alklaku Enigu. Alie, tajpu ne kaj premu Enter. Vi povas konservi ĝin se vi pensas, ke vi bezonos ĝin estonte. Sed eĉ kun konservita statika IP-adreso, DHCP estos uzata se metodo estas agordita al aŭtomata.

Uzu la konservan komandon por konservi viajn ŝanĝojn:

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

Tajpu ĉesi por eliri la nmcli Interactive Editor. Se vi ŝanĝas vian opinion pri foriro, uzu la malantaŭan komandon.

Kaj tio ne estas ĉio

Malfermu la Interagan Redaktilon de nmcli kaj vidu kiom da agordoj estas kaj kiom da propraĵoj havas ĉiu agordo. La interaga redaktilo estas bonega ilo, sed se vi volas uzi nmcli en unu-linioj aŭ skriptoj, vi bezonos la regulan komandlinian version.

Nun ke vi havas la bazojn, kontrolu man paĝo nmcli por vidi kiel alie ĝi povas helpi vin.

Pri la Rajtoj de Reklamado

Epopeaj serviloj Estas virtualaj serviloj en Vindozo aŭ Linukso kun potencaj AMD EPYC-familiaj procesoroj kaj tre rapidaj Intel NVMe-diskoj. Rapidu mendi!

Administri retkonektojn en Linukso uzante la nmcli-konzola ilo

fonto: www.habr.com

Aldoni komenton