Идоракунии пайвастҳои шабакавӣ дар Linux бо истифода аз утилитаи консол nmcli

Бо истифода аз утилитаи nmcli аз абзори идоракунии шабакаи NetworkManager дар хати фармони Linux пурра истифода баред.

Идоракунии пайвастҳои шабакавӣ дар Linux бо истифода аз утилитаи консол nmcli

Коммуналӣ nmcli бевосита API-ро барои дастрасӣ ба функсияҳои NetworkManager даъват мекунад.

Он дар соли 2010 пайдо шуд ва барои бисёриҳо роҳи алтернативии танзими интерфейсҳо ва пайвастҳои шабакавӣ гардид. Гарчанде ки баъзе одамон то ҳол истифода мебаранд ifconfig. Азбаски nmcli воситаи интерфейси сатри фармон (CLI) аст, ки барои истифода дар равзанаҳои терминал ва скриптҳо тарҳрезӣ шудааст, он барои маъмурони системае, ки бе GUI кор мекунанд, беҳтарин аст.

синтаксиси фармони ncmli

Умуман, синтаксис чунин менамояд:

$ nmcli <options> <section> <action>

  • опсияҳо параметрҳое мебошанд, ки нозукиҳои амалиёти nmcli-ро муайян мекунанд,
  • бахш (қисм) - муайян мекунад, ки кадом хусусиятҳои утилитаро истифода бурдан лозим аст;
  • амал - ба шумо имкон медиҳад, ки муайян кунед, ки воқеан чӣ кор кардан лозим аст.

Дар маҷмӯъ 8 бахш мавҷуд аст, ки ҳар яки онҳо бо маҷмӯи муайяни фармонҳо (амалҳо) алоқаманданд:

  • Кӯмак дар бораи фармонҳои ncmcli ва истифодаи онҳо кӯмак мерасонад.
  • генерал ҳолати NetworkManager ва конфигуратсияи глобалиро бармегардонад.
  • Networking фармонҳоро барои пурсиши ҳолати пайвасти шабака ва фаъол/хомӯш кардани пайвастҳоро дар бар мегирад.
  • радио фармонҳоро барои пурсиши ҳолати пайвасти шабакаи WiFi ва фаъол/хомӯш кардани пайвастҳо дар бар мегирад.
  • Monitor фармонҳоро барои мониторинги фаъолияти NetworkManager ва мушоҳидаи тағйирот дар ҳолати пайвастҳои шабакавӣ дар бар мегирад.
  • Пайвастшавӣ фармонҳоро барои идоракунии интерфейсҳои шабакавӣ, илова кардани пайвастҳои нав ва нест кардани пайвастҳои мавҷуда дар бар мегирад.
  • дастгоҳ асосан барои тағир додани параметрҳои марбут ба дастгоҳ (ба монанди номи интерфейс) ё пайваст кардани дастгоҳҳо бо истифода аз пайвасти мавҷуда истифода мешавад.
  • пинҳонӣ nmcli -ро ҳамчун "агенти махфӣ" NetworkManager сабт мекунад, ки паёмҳои махфиро гӯш мекунад. Ин бахш хеле кам истифода мешавад, зеро nmcli ҳангоми пайвастшавӣ ба шабакаҳо бо нобаёнӣ ҳамин тавр кор мекунад.

Мисолҳои оддӣ

Пеш аз оғоз кардан, боварӣ ҳосил кунед, ки NetworkManager кор мекунад ва nmcli метавонад бо он муошират кунад:

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

Кор аксар вақт аз дидани ҳама профилҳои пайвасти шабака оғоз мешавад:

$ 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

Ин фармон истифода мебарад амал барои бахши Пайвастшавӣ нишон диҳед.

Мошини санҷишӣ Ubuntu 20.04-ро иҷро мекунад. Дар ин ҳолат, мо се пайвасти симдорро ёфтем: enp0s3, enp0s8 ва enp0s9.

Пайвастҳоро идора кунед

Фаҳмидани он муҳим аст, ки дар nmcli бо истилоҳи Пайвастшавӣ мо объектеро дар назар дорем, ки тамоми маълумотро дар бораи пайвастшавӣ дар бар мегирад. Ба ибораи дигар, ин конфигуратсияи шабака аст. Пайвастшавӣ ҳама маълумоти марбут ба пайвастшавӣ, аз ҷумла қабати истинод ва маълумоти суроғаи IP-ро фаро мегирад. Инҳо Layer 2 ва Layer 3 дар модели шабакавии OSI мебошанд.

Вақте ки шумо шабакаро дар Linux насб мекунед, шумо одатан пайвастҳоро насб мекунед, ки ба дастгоҳҳои шабакавӣ пайваст мешаванд, ки дар навбати худ интерфейсҳои шабакавии дар компютер насбшуда мебошанд. Вақте ки дастгоҳ пайвастро истифода мебарад, он фаъол ё баландшуда ҳисобида мешавад. Агар пайвастшавӣ истифода нашавад, он ғайрифаъол аст ё аз нав танзим карда мешавад.

Илова кардани пайвастҳои шабакавӣ

Утилитаи ncmli ба шумо имкон медиҳад, ки пайвастҳоро зуд илова кунед ва фавран танзим кунед. Масалан, барои илова кардани пайвасти сими 2 (бо enp0s8), шумо бояд фармони зеринро ҳамчун superuser иҷро кунед:

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

Дар варианти навъи мо нишон медиҳем, ки ин пайвасти Ethernet хоҳад буд ва дар варианти ifname (номи интерфейс) мо интерфейси шабакаро нишон медиҳем, ки мо мехоҳем истифода барем.

Ин аст он чизе ки пас аз иҷро кардани фармон рӯй медиҳад:

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

Пайвасти нав эҷод карда шуд, ethernet-enp0s8. Ба он UUID таъин шуда буд ва навъи пайвастшавӣ Ethernet буд. Биёед онро бо истифода аз фармони боло баланд кунем:

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

Биёед рӯйхати пайвастҳои фаъолро бори дигар тафтиш кунем:

$ 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

Пайвасти нави ethernet-enp0s8 илова карда шуд, он фаъол аст ва интерфейси шабакаи enp0s8-ро истифода мебарад.

Танзими пайвастҳо

Утилитаи ncmli ба шумо имкон медиҳад, ки параметрҳои пайвастҳои мавҷударо ба осонӣ тағир диҳед. Масалан, шумо бояд суроғаи IP-и динамикии худро (DHCP) ба суроғаи IP статикӣ иваз кунед.

Фарз мекунем, ки мо бояд суроғаи IP-ро ба 192.168.4.26 муқаррар кунем. Барои ин мо ду фармонро истифода мебарем. Якум суроғаи IP-ро мустақиман муқаррар мекунад ва дуюмӣ усули танзими суроғаи IP-ро ба дастӣ мегузаранд:

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

Фаромӯш накунед, ки инчунин ниқоби зершабақаро насб кунед. Барои пайвасти санҷишии мо ин 255.255.255.0 ё бо /24 барои масири бесинф (CIDR) аст.

Барои эътибор пайдо кардани тағирот, шумо бояд пайвастро хомӯш кунед ва пас аз нав фаъол кунед:

$ 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

Агар, баръакс, шумо бояд DHCP-ро насб кунед, ба ҷои дастӣ худкорро истифода баред:

$ nmcli connection modify ethernet-enp0s8 ipv4.method auto

Кор бо дастгоҳҳо

Барои ин мо бахши Дастгоҳро истифода мебарем.

Санҷиши ҳолати дастгоҳ

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

Дархости маълумот дар бораи дастгоҳ

Барои ин амалро аз бахши Дастгоҳ истифода баред (шумо бояд номи дастгоҳро муайян кунед). Утилита маълумоти зиёдеро, ки аксар вақт дар якчанд саҳифа нишон медиҳад.
Биёед интерфейси enp0s8-ро бубинем, ки пайвасти нави мо истифода мебарад. Биёед боварӣ ҳосил кунем, ки он маҳз суроғаи IP-ро, ки мо қаблан муқаррар карда будем, истифода мебарад:

$ 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

Маълумот хеле зиёд аст. Биёед чизи асосиро таъкид кунем:

  • Номи интерфейси шабака: enp0s8.
  • Навъи пайвастшавӣ: пайвасти симии Ethernet.
  • Мо суроғаи MAC-и дастгоҳро мебинем.
  • Воҳиди максималии интиқол (MTU) муайян карда шудааст — андозаи ниҳоии блоки додаҳои муфиди як баста, ки метавонад тавассути протокол бе тақсимшавӣ интиқол дода шавад.
  • Дастгоҳ ҳозир пайваст.
  • Номи пайвастшавӣкадом дастгоҳ истифода мебарад: ethernet-enp0s8.
  • Дастгоҳ якеро истифода мебарад Суроғаи IP, ки мо қаблан насб кардем: 192.168.4.26/24.

Маълумоти дигар ба масири пешфарз ва параметрҳои дарвозаи пайваст алоқаманд аст. Онҳо аз шабакаи мушаххас вобастаанд.

Муҳаррири интерактивии nmcli

nmcli инчунин як муҳаррири оддии интерактивӣ дорад, ки метавонад барои кор бо касе бароҳаттар бошад. Барои иҷро кардани он дар пайвасти ethernet-enp0s8, масалан, истифода баред амал таҳрир кардан:

$ nmcli connection edit ethernet-enp0s8

Он инчунин як кӯмаки хурд дорад, аммо андозаи он аз версияи консол хурдтар аст:

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

Агар шумо фармони чопро ворид кунед ва Enter-ро пахш кунед, nmcli ҳамаи хосиятҳои пайвастро намоиш медиҳад:

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

Масалан, барои насб кардани пайвастшавӣ ба DHCP, goto ipv4-ро нависед ва клик кунед даромадан:

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>

Пас усули танзимро худкор нависед ва клик кунед даромадан:

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

Агар шумо хоҳед, ки суроғаи IP статикиро тоза кунед, клик кунед даромадан. Дар акси ҳол, не нависед ва Enterро пахш кунед. Шумо метавонед онро захира кунед, агар шумо фикр кунед, ки дар оянда ба шумо лозим меояд. Аммо ҳатто бо суроғаи IP статикии захирашуда, DHCP истифода мешавад, агар усул ба худкор таъин карда шавад.

Барои захира кардани тағиротҳои худ фармони захираро истифода баред:

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

Барои баромадан аз Муҳаррири интерактивии nmcli баромаданро нависед. Агар шумо фикри худро дар бораи рафтан тағир диҳед, фармони бозгаштро истифода баред.

Ва ин ҳама нест

Муҳаррири интерактивии nmcli -ро кушоед ва бубинед, ки чанд танзимот вуҷуд доранд ва ҳар як танзимот чанд хосият дорад. Муҳаррири интерактивӣ як абзори олист, аммо агар шумо хоҳед, ки nmcli-ро дар як-лайнерҳо ё скриптҳо истифода баред, ба шумо версияи муқаррарии сатри фармон лозим мешавад.

Акнун, ки шумо асосҳо доред, санҷед саҳифаи мард nmcli то бубинед, ки чӣ тавр он метавонад ба шумо кӯмак кунад.

Дар бораи ҳуқуқи реклама

Серверҳои эпикӣ Оё серверҳои виртуалӣ дар Windows ё Linux бо протсессори пуриқтидори оилаи AMD EPYC ва дискҳои хеле зуд Intel NVMe. Барои фармоиш шитоб кунед!

Идоракунии пайвастҳои шабакавӣ дар Linux бо истифода аз утилитаи консол nmcli

Манбаъ: will.com

Илова Эзоҳ