Menguruskan sambungan rangkaian dalam Linux menggunakan utiliti konsol nmcli

Manfaatkan sepenuhnya alat pengurusan rangkaian NetworkManager pada baris arahan Linux menggunakan utiliti nmcli.

Menguruskan sambungan rangkaian dalam Linux menggunakan utiliti konsol nmcli

Utiliti nmcli terus memanggil API untuk mengakses fungsi NetworkManager.

Ia muncul pada tahun 2010 dan bagi kebanyakan orang telah menjadi cara alternatif untuk mengkonfigurasi antara muka rangkaian dan sambungan. Walaupun sesetengah orang masih menggunakan ifconfig. Oleh kerana nmcli ialah alat antara muka baris arahan (CLI) yang direka untuk digunakan dalam tetingkap terminal dan skrip, ia sesuai untuk pentadbir sistem yang bekerja tanpa GUI.

sintaks arahan ncmli

Secara umum, sintaks kelihatan seperti ini:

$ nmcli <options> <section> <action>

  • pilihan ialah parameter yang menentukan kehalusan operasi nmcli,
  • bahagian (bahagian) - menentukan ciri utiliti yang hendak digunakan,
  • tindakan - membolehkan anda menentukan perkara yang sebenarnya perlu dilakukan.

Terdapat 8 bahagian secara keseluruhan, setiap satunya dikaitkan dengan set arahan (tindakan) tertentu:

  • Bantuan menyediakan bantuan tentang arahan ncmcli dan penggunaannya.
  • Umum mengembalikan status NetworkManager dan konfigurasi global.
  • Rangkaian termasuk arahan untuk menanyakan status sambungan rangkaian dan membolehkan/lumpuhkan sambungan.
  • radio termasuk arahan untuk menanyakan status sambungan rangkaian WiFi dan membolehkan/lumpuhkan sambungan.
  • Pantau termasuk arahan untuk memantau aktiviti NetworkManager dan memerhati perubahan dalam keadaan sambungan rangkaian.
  • Hubungan termasuk arahan untuk mengurus antara muka rangkaian, menambah sambungan baharu dan memadamkan yang sedia ada.
  • Peranti digunakan terutamanya untuk menukar parameter berkaitan peranti (seperti nama antara muka) atau untuk menyambungkan peranti menggunakan sambungan sedia ada.
  • Rahsia mendaftarkan nmcli sebagai "ejen rahsia" NetworkManager yang mendengar mesej rahsia. Bahagian ini jarang digunakan, kerana nmcli berfungsi dengan cara ini secara lalai apabila menyambung ke rangkaian.

Contoh mudah

Sebelum anda bermula, pastikan NetworkManager sedang berjalan dan nmcli boleh berkomunikasi dengannya:

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

Kerja selalunya bermula dengan melihat semua profil sambungan rangkaian:

$ 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

Perintah ini menggunakan tindakan tunjukkan untuk bahagian Sambungan.

Mesin ujian menjalankan Ubuntu 20.04. Dalam kes ini, kami menemui tiga sambungan berwayar: enp0s3, enp0s8 dan enp0s9.

Urus sambungan

Adalah penting untuk memahami bahawa dalam nmcli, dengan istilah Sambungan yang kami maksudkan adalah entiti yang mengandungi semua maklumat tentang sambungan. Dengan kata lain, ini ialah konfigurasi rangkaian. Sambungan merangkumi semua maklumat berkaitan sambungan, termasuk lapisan pautan dan maklumat pengalamatan IP. Ini adalah Lapisan 2 dan Lapisan 3 dalam model rangkaian OSI.

Apabila anda menyediakan rangkaian dalam Linux, anda biasanya menyediakan sambungan yang akhirnya akan terikat pada peranti rangkaian, yang seterusnya ialah antara muka rangkaian yang dipasang pada komputer. Apabila peranti menggunakan sambungan, ia dianggap aktif atau dinaikkan. Jika sambungan tidak digunakan, ia tidak aktif atau ditetapkan semula.

Menambah sambungan rangkaian

Utiliti ncmli membolehkan anda menambah dan mengkonfigurasi sambungan dengan cepat. Sebagai contoh, untuk menambah sambungan Berwayar 2 (dengan enp0s8), anda perlu menjalankan arahan berikut sebagai superuser:

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

Dalam pilihan jenis kami menunjukkan bahawa ini akan menjadi sambungan Ethernet, dan dalam pilihan ifname (nama antara muka) kami menunjukkan antara muka rangkaian yang kami mahu gunakan.

Inilah yang akan berlaku selepas menjalankan arahan:

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

Sambungan baharu telah dibuat, ethernet-enp0s8. Ia telah diberikan UUID dan jenis sambungan ialah Ethernet. Mari kita tingkatkannya menggunakan arahan atas:

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

Mari semak senarai sambungan aktif sekali lagi:

$ 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

Sambungan baru ethernet-enp0s8 telah ditambah, ia aktif dan menggunakan antara muka rangkaian enp0s8.

Menyediakan sambungan

Utiliti ncmli membolehkan anda menukar parameter sambungan sedia ada dengan mudah. Sebagai contoh, anda perlu menukar alamat IP dinamik (DHCP) anda kepada alamat IP statik.

Katakan kita perlu menetapkan alamat IP kepada 192.168.4.26. Untuk melakukan ini, kami menggunakan dua arahan. Yang pertama akan terus menetapkan alamat IP, dan yang kedua akan menukar kaedah tetapan alamat IP kepada manual:

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

Jangan lupa juga tetapkan subnet mask. Untuk sambungan ujian kami ini ialah 255.255.255.0, atau dengan /24 untuk penghalaan tanpa kelas (CIDR).

Untuk perubahan berkuat kuasa, anda perlu menyahaktifkan dan kemudian mengaktifkan semula sambungan:

$ 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

Jika, sebaliknya, anda perlu memasang DHCP, gunakan auto dan bukannya manual:

$ nmcli connection modify ethernet-enp0s8 ipv4.method auto

Bekerja dengan peranti

Untuk ini kami menggunakan bahagian Peranti.

Menyemak status peranti

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

Meminta maklumat peranti

Untuk melakukan ini, gunakan tindakan tunjukkan dari bahagian Peranti (anda mesti menyatakan nama peranti). Utiliti memaparkan banyak maklumat, selalunya pada beberapa halaman.
Mari lihat antara muka enp0s8 yang digunakan oleh sambungan baharu kami. Mari pastikan ia menggunakan alamat IP yang kami tetapkan sebelum ini:

$ 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

Terdapat cukup banyak maklumat. Mari kita serlahkan perkara utama:

  • Nama antara muka rangkaian: enp0s8.
  • Jenis sambungan: sambungan Ethernet berwayar.
  • Kami melihat alamat MAC peranti.
  • Unit penghantaran maksimum (MTU) ditentukan β€” saiz maksimum blok data berguna satu paket yang boleh dihantar oleh protokol tanpa pemecahan.
  • peranti sedang disambungkan.
  • Nama sambunganperanti yang manakah menggunakan: ethernet-enp0s8.
  • Peranti menggunakan satu Alamat IP, yang kami pasang sebelum ini: 192.168.4.26/24.

Maklumat lain berkaitan dengan penghalaan lalai dan parameter get laluan sambungan. Mereka bergantung pada rangkaian tertentu.

Editor nmcli interaktif

nmcli juga mempunyai editor interaktif yang mudah, yang mungkin lebih selesa untuk digunakan oleh sesetengah orang. Untuk menjalankannya pada sambungan ethernet-enp0s8 sebagai contoh, gunakan tindakan edit:

$ nmcli connection edit ethernet-enp0s8

Ia juga mempunyai bantuan kecil, yang, bagaimanapun, lebih kecil daripada versi konsol:

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

Jika anda menaip arahan cetak dan tekan Enter, nmcli akan memaparkan semua sifat sambungan:

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

Contohnya, untuk menetapkan sambungan kepada DHCP, taip goto ipv4 dan klik Masukkan:

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>

Kemudian tulis set kaedah auto dan klik Masukkan:

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

Jika anda ingin mengosongkan alamat IP statik, klik Masukkan. Jika tidak, taip no dan tekan Enter. Anda boleh menyimpannya jika anda fikir anda akan memerlukannya pada masa hadapan. Tetapi walaupun dengan alamat IP statik yang disimpan, DHCP akan digunakan jika kaedah ditetapkan kepada auto.

Gunakan perintah simpan untuk menyimpan perubahan anda:

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

Taip berhenti untuk keluar dari Editor Interaktif nmcli. Jika anda menukar fikiran tentang keluar, gunakan arahan belakang.

Dan bukan itu sahaja

Buka Editor Interaktif nmcli dan lihat berapa banyak tetapan yang ada dan berapa banyak sifat yang ada pada setiap tetapan. Editor interaktif ialah alat yang hebat, tetapi jika anda ingin menggunakan nmcli dalam satu baris atau skrip, anda memerlukan versi baris arahan biasa.

Sekarang anda mempunyai asas, lihat halaman manusia nmcli untuk melihat cara lain ia boleh membantu anda.

Sebagai iklan

Pelayan epik - Adakah pelayan maya pada Windows atau Linux dengan pemproses keluarga AMD EPYC yang berkuasa dan pemacu Intel NVMe yang sangat pantas. Cepat-cepat order!

Menguruskan sambungan rangkaian dalam Linux menggunakan utiliti konsol nmcli

Sumber: www.habr.com

Tambah komen