مدیریت اتصالات شبکه در لینوکس با استفاده از ابزار کنسول nmcli

از ابزار مدیریت شبکه NetworkManager در خط فرمان لینوکس با استفاده از ابزار nmcli نهایت استفاده را ببرید.

مدیریت اتصالات شبکه در لینوکس با استفاده از ابزار کنسول nmcli

سودمندی nmcli مستقیماً API را برای دسترسی به توابع NetworkManager فراخوانی می کند.

در سال 2010 ظاهر شد و برای بسیاری تبدیل به یک راه جایگزین برای پیکربندی رابط ها و اتصالات شبکه شده است. اگرچه برخی از افراد هنوز استفاده می کنند ifconfig. از آنجایی که nmcli یک ابزار واسط خط فرمان (CLI) است که برای استفاده در ویندوز و اسکریپت های ترمینال طراحی شده است، برای مدیران سیستمی که بدون رابط کاربری گرافیکی کار می کنند ایده آل است.

دستور دستور ncmli

به طور کلی، نحو به این صورت است:

$ nmcli <options> <section> <action>

  • گزینه ها پارامترهایی هستند که ظرافت های عملیات nmcli را تعیین می کنند،
  • بخش (بخش) - تعیین می کند که از کدام ویژگی های ابزار استفاده شود،
  • اقدام - به شما امکان می دهد مشخص کنید که واقعاً چه کاری باید انجام شود.

در مجموع 8 بخش وجود دارد که هر یک از آنها با مجموعه خاصی از دستورات (عملکردها) همراه است:

  • کمک در مورد دستورات ncmcli و استفاده از آنها کمک می کند.
  • سوالات عمومی وضعیت NetworkManager و پیکربندی جهانی را برمی‌گرداند.
  • شبکه شامل دستوراتی برای بررسی وضعیت اتصال شبکه و فعال/غیرفعال کردن اتصالات است.
  • رادیو شامل دستوراتی برای بررسی وضعیت اتصال شبکه WiFi و فعال/غیرفعال کردن اتصالات است.
  • مانیتور شامل دستوراتی برای نظارت بر فعالیت 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

این دستور استفاده می کند عمل برای بخش Connection نمایش دهید.

دستگاه تست اوبونتو 20.04 را اجرا می کند. در این مورد، ما سه اتصال سیمی پیدا کردیم: enp0s3، enp0s8 و enp0s9.

ارتباطات را مدیریت کنید

درک این نکته مهم است که در nmcli، منظور ما از اصطلاح Connection موجودی است که شامل تمام اطلاعات مربوط به اتصال است. به عبارت دیگر، این پیکربندی شبکه است. اتصال تمام اطلاعات مربوط به اتصال از جمله لایه پیوند و اطلاعات آدرس IP را در بر می گیرد. اینها لایه 2 و لایه 3 در مدل شبکه OSI هستند.

وقتی شبکه ای را در لینوکس راه اندازی می کنید، معمولاً در حال راه اندازی اتصالاتی هستید که در نهایت به دستگاه های شبکه متصل می شوند، که به نوبه خود رابط های شبکه نصب شده روی رایانه هستند. هنگامی که یک دستگاه از اتصال استفاده می کند، فعال یا بالا در نظر گرفته می شود. اگر اتصالی استفاده نمی شود، غیرفعال است یا بازنشانی می شود.

افزودن اتصالات شبکه

ابزار ncmli به شما اجازه می دهد تا به سرعت اتصالات را اضافه و پیکربندی کنید. به عنوان مثال، برای اضافه کردن Wired Connection 2 (با enp0s8)، باید دستور زیر را به عنوان superuser اجرا کنید:

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

در گزینه type نشان می دهیم که این یک اتصال اترنت خواهد بود و در گزینه 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 اختصاص داده شد و نوع اتصال آن اترنت بود. بیایید با استفاده از دستور up آن را افزایش دهیم:

$ 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

کار با دستگاه ها

برای این کار از قسمت 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  --  

درخواست اطلاعات دستگاه

برای این کار از قسمت Device از اکشن show استفاده کنید (باید نام دستگاه را مشخص کنید). این ابزار اطلاعات زیادی را اغلب در چندین صفحه نمایش می دهد.
بیایید به رابط 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
  • نوع اتصال: اتصال اترنت سیمی
  • آدرس MAC دستگاه را می بینیم.
  • حداکثر واحد انتقال (MTU) مشخص شده است - حداکثر اندازه یک بلوک داده مفید از یک بسته که می تواند توسط پروتکل بدون تکه تکه شدن منتقل شود.
  • دستگاه در حال حاضر متصل است.
  • نام اتصالکدام دستگاه استفاده می کند: ethernet-enp0s8.
  • دستگاه از آدرس IP، که قبلا نصب کردیم: 192.168.4.26/24.

سایر اطلاعات مربوط به پارامترهای مسیریابی پیش فرض و دروازه اتصال است. آنها به شبکه خاص بستگی دارند.

ویرایشگر تعاملی nmcli

nmcli همچنین دارای یک ویرایشگر تعاملی ساده است که ممکن است برای برخی کار کردن با آن راحت تر باشد. به عنوان مثال، برای اجرای آن بر روی یک اتصال اترنت-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>

اگر دستور print را تایپ کنید و 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>

سپس set method auto را بنویسید و کلیک کنید وارد:

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

اگر می خواهید آدرس IP ثابت را پاک کنید، کلیک کنید وارد. در غیر این صورت، no را تایپ کرده و Enter را فشار دهید. اگر فکر می کنید در آینده به آن نیاز خواهید داشت، می توانید آن را ذخیره کنید. اما حتی با یک آدرس IP ثابت ذخیره شده، اگر روش روی خودکار تنظیم شود، از DHCP استفاده می شود.

برای ذخیره تغییرات خود از دستور save استفاده کنید:

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

برای خروج از ویرایشگر تعاملی nmcli عبارت quit را تایپ کنید. اگر نظر خود را در مورد ترک تغییر دادید، از دستور back استفاده کنید.

و این تمام نیست

nmcli Interactive Editor را باز کنید و ببینید چه تعداد تنظیمات وجود دارد و هر تنظیم چند ویژگی دارد. ویرایشگر تعاملی یک ابزار عالی است، اما اگر می‌خواهید از nmcli در یک خط یا اسکریپت استفاده کنید، به نسخه خط فرمان معمولی نیاز دارید.

اکنون که اصول اولیه را دارید، بررسی کنید صفحه مرد nmcli تا ببینید چگونه می تواند به شما کمک کند.

در حقوق تبلیغات

سرورهای حماسی - آیا سرورهای مجازی در ویندوز یا لینوکس با پردازنده های قدرتمند خانواده AMD EPYC و درایوهای بسیار سریع Intel NVMe. برای سفارش عجله کنید

مدیریت اتصالات شبکه در لینوکس با استفاده از ابزار کنسول nmcli

منبع: www.habr.com

اضافه کردن نظر