Pamamahala ng mga koneksyon sa network sa Linux gamit ang nmcli console utility

Samantalahin nang husto ang NetworkManager network management tool sa Linux command line gamit ang nmcli utility.

Pamamahala ng mga koneksyon sa network sa Linux gamit ang nmcli console utility

Kagamitan nmcli direktang tumatawag sa API para ma-access ang mga function ng NetworkManager.

Ito ay lumitaw noong 2010 at para sa marami ay naging isang alternatibong paraan upang i-configure ang mga interface at koneksyon ng network. Bagaman ang ilang mga tao ay gumagamit pa rin ifconfig. Dahil ang nmcli ay isang command line interface (CLI) na tool na idinisenyo para gamitin sa mga terminal windows at script, ito ay mainam para sa mga system administrator na nagtatrabaho nang walang GUI.

ncmli command syntax

Sa pangkalahatan, ganito ang hitsura ng syntax:

$ nmcli <options> <section> <action>

  • Ang mga pagpipilian ay mga parameter na tumutukoy sa mga subtleties ng operasyon ng nmcli,
  • seksyon (seksyon) - tinutukoy kung aling mga tampok ng utility ang gagamitin,
  • aksyon - nagbibigay-daan sa iyo na tukuyin kung ano talaga ang kailangang gawin.

Mayroong 8 mga seksyon sa kabuuan, ang bawat isa ay nauugnay sa isang tiyak na hanay ng mga utos (mga aksyon):

  • Tulong nagbibigay ng tulong tungkol sa mga utos ng ncmcli at ang kanilang paggamit.
  • Pangkalahatan ibinabalik ang katayuan ng NetworkManager at pandaigdigang pagsasaayos.
  • Networking kasama ang mga utos upang i-query ang katayuan ng koneksyon sa network at paganahin/huwag paganahin ang mga koneksyon.
  • radyo may kasamang mga utos upang i-query ang katayuan ng koneksyon sa WiFi network at paganahin/huwag paganahin ang mga koneksyon.
  • Monitor kasama ang mga utos para sa pagsubaybay sa aktibidad ng NetworkManager at pagmamasid sa mga pagbabago sa estado ng mga koneksyon sa network.
  • koneksyon kasama ang mga command para sa pamamahala ng mga interface ng network, pagdaragdag ng mga bagong koneksyon at pagtanggal ng mga umiiral na.
  • Device pangunahing ginagamit upang baguhin ang mga parameter na nauugnay sa device (gaya ng pangalan ng interface) o para ikonekta ang mga device gamit ang isang umiiral nang koneksyon.
  • Lihim nirerehistro ang nmcli bilang isang NetworkManager na "lihim na ahente" na nakikinig para sa mga lihim na mensahe. Ang seksyong ito ay bihirang ginagamit, dahil ang nmcli ay gumagana sa ganitong paraan bilang default kapag kumokonekta sa mga network.

Mga simpleng halimbawa

Bago ka magsimula, siguraduhin na ang NetworkManager ay tumatakbo at ang nmcli ay maaaring makipag-usap dito:

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

Madalas na nagsisimula ang trabaho sa pamamagitan ng pagtingin sa lahat ng profile ng koneksyon sa network:

$ 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

Ginagamit ng utos na ito aksyon ipakita para sa seksyong Koneksyon.

Ang test machine ay nagpapatakbo ng Ubuntu 20.04. Sa kasong ito, nakakita kami ng tatlong wired na koneksyon: enp0s3, enp0s8, at enp0s9.

Pamahalaan ang mga koneksyon

Mahalagang maunawaan na sa nmcli, sa terminong Koneksyon ang ibig naming sabihin ay isang entity na naglalaman ng lahat ng impormasyon tungkol sa koneksyon. Sa madaling salita, ito ang configuration ng network. Pinagsasama ng koneksyon ang lahat ng impormasyong nauugnay sa koneksyon, kabilang ang layer ng link at impormasyon sa pag-address ng IP. Ito ang Layer 2 at Layer 3 sa OSI networking model.

Kapag nag-set up ka ng network sa Linux, kadalasan ay nagse-set up ka ng mga koneksyon na mauuwi sa pagkakatali sa mga network device, na kung saan ay mga network interface na naka-install sa computer. Kapag ang isang device ay gumagamit ng isang koneksyon, ito ay itinuturing na aktibo o nakataas. Kung ang isang koneksyon ay hindi ginagamit, ito ay hindi aktibo o i-reset.

Pagdaragdag ng mga koneksyon sa network

Binibigyang-daan ka ng ncmli utility na mabilis na magdagdag at mag-configure ng mga koneksyon. Halimbawa, upang magdagdag ng Wired connection 2 (na may enp0s8), kailangan mong patakbuhin ang sumusunod na command bilang superuser:

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

Sa pagpipiliang uri, ipinapahiwatig namin na ito ay isang koneksyon sa Ethernet, at sa opsyong ifname (pangalan ng interface) ipinapahiwatig namin ang interface ng network na gusto naming gamitin.

Ito ang mangyayari pagkatapos patakbuhin ang utos:

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

Isang bagong koneksyon ang nalikha, ethernet-enp0s8. Itinalaga ito ng UUID at ang uri ng koneksyon ay Ethernet. Itaas natin ito gamit ang up command:

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

Tingnan natin muli ang listahan ng mga aktibong koneksyon:

$ 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

Ang isang bagong koneksyon na ethernet-enp0s8 ay naidagdag, ito ay aktibo at gumagamit ng enp0s8 network interface.

Pagse-set up ng mga koneksyon

Ang utility ng ncmli ay nagbibigay-daan sa iyo upang madaling baguhin ang mga parameter ng mga umiiral na koneksyon. Halimbawa, kailangan mong baguhin ang iyong dynamic (DHCP) IP address sa isang static na IP address.

Sabihin nating kailangan nating itakda ang IP address sa 192.168.4.26. Upang gawin ito, gumagamit kami ng dalawang utos. Direktang itatakda ng una ang IP address, at ililipat ng pangalawa ang paraan ng setting ng IP address sa manu-manong:

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

Huwag kalimutang itakda din ang subnet mask. Para sa aming pagsubok na koneksyon ito ay 255.255.255.0, o may /24 para sa walang klase na pagruruta (CIDR).

Para magkabisa ang mga pagbabago, kailangan mong i-deactivate at pagkatapos ay muling i-activate ang koneksyon:

$ 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

Kung, sa kabaligtaran, kailangan mong mag-install ng DHCP, gumamit ng auto sa halip na manu-mano:

$ nmcli connection modify ethernet-enp0s8 ipv4.method auto

Paggawa gamit ang mga aparato

Para dito ginagamit namin ang seksyon ng Device.

Sinusuri ang katayuan ng device

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

Paghiling ng impormasyon ng device

Upang gawin ito, gamitin ang palabas na pagkilos mula sa seksyong Device (dapat mong tukuyin ang pangalan ng device). Ang utility ay nagpapakita ng maraming impormasyon, madalas sa ilang mga pahina.
Tingnan natin ang enp0s8 interface na ginagamit ng ating bagong koneksyon. Siguraduhin natin na eksaktong ginagamit nito ang IP address na itinakda namin kanina:

$ 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

Mayroong medyo maraming impormasyon. I-highlight natin ang pangunahing bagay:

  • Pangalan ng interface ng network: enp0s8.
  • Uri ng koneksyon: wired na koneksyon sa Ethernet.
  • Nakikita namin ang MAC address ng device.
  • Tinukoy ang maximum transmission unit (MTU). β€” ang pinakamataas na sukat ng isang kapaki-pakinabang na bloke ng data ng isang packet na maaaring ipadala ng protocol nang walang fragmentation.
  • Device kasalukuyang konektado.
  • Pangalan ng koneksyonaling device ang gumagamit ng: ethernet-enp0s8.
  • Ginagamit ng device ang IP address, na na-install namin kanina: 192.168.4.26/24.

Ang ibang impormasyon ay nauugnay sa default na pagruruta at mga parameter ng gateway ng koneksyon. Nakadepende sila sa partikular na network.

Interactive na editor ng nmcli

Ang nmcli ay mayroon ding isang simpleng interactive na editor, na maaaring mas komportable para sa ilan na magtrabaho kasama. Upang patakbuhin ito sa isang koneksyon sa ethernet-enp0s8 halimbawa, gamitin aksyon edit:

$ nmcli connection edit ethernet-enp0s8

Mayroon din itong maliit na tulong, na, gayunpaman, ay mas maliit sa laki kaysa sa bersyon ng 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>

Kung i-type mo ang print command at pindutin ang Enter, ipapakita ng nmcli ang lahat ng mga katangian ng koneksyon:

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

Halimbawa, upang itakda ang koneksyon sa DHCP, i-type ang goto ipv4 at i-click Magpasok:

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>

Pagkatapos ay isulat ang set method na auto at i-click Magpasok:

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

Kung gusto mong i-clear ang static na IP address, i-click Magpasok. Kung hindi, i-type ang hindi at pindutin ang Enter. Maaari mong i-save ito kung sa tingin mo ay kakailanganin mo ito sa hinaharap. Ngunit kahit na may naka-save na static na IP address, ang DHCP ay gagamitin kung ang paraan ay nakatakda sa auto.

Gamitin ang save command para i-save ang iyong mga pagbabago:

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

I-type ang quit para lumabas sa nmcli Interactive Editor. Kung magbago ang isip mo tungkol sa pag-alis, gamitin ang back command.

At hindi lang iyon

Buksan ang nmcli Interactive Editor at tingnan kung gaano karaming mga setting ang mayroon at kung gaano karaming mga katangian ang mayroon ang bawat setting. Ang interactive na editor ay isang mahusay na tool, ngunit kung gusto mong gumamit ng nmcli sa mga one-liner o script, kakailanganin mo ang regular na bersyon ng command-line.

Ngayon na mayroon ka ng mga pangunahing kaalaman, tingnan pahina ng tao nmcli upang makita kung paano pa ito makakatulong sa iyo.

Sa Mga Karapatan ng Pag-advertise

Mga epic na server - Ay mga virtual server sa Windows o Linux na may makapangyarihang AMD EPYC na mga processor ng pamilya at napakabilis na Intel NVMe drive. Bilisan mo mag order!

Pamamahala ng mga koneksyon sa network sa Linux gamit ang nmcli console utility

Pinagmulan: www.habr.com

Magdagdag ng komento