Mengelola koneksi jaringan di Linux menggunakan utilitas konsol nmcli

Manfaatkan sepenuhnya alat manajemen jaringan NetworkManager dari baris perintah Linux dengan utilitas nmcli.







Utilitas nmcli secara langsung memanggil API untuk mengakses fungsi NetworkManager.



Itu muncul pada tahun 2010 dan bagi banyak orang telah menjadi cara alternatif untuk mengkonfigurasi antarmuka dan koneksi jaringan. Meskipun seseorang masih menggunakan ifconfig . Karena nmcli adalah alat antarmuka baris perintah (CLI) yang dirancang untuk digunakan di jendela dan skrip terminal, ini sangat ideal untuk sysadmin non-GUI.



Sintaks Perintah Ncmli



Secara umum, sintaksnya terlihat seperti ini:



$ nmcli <options> <section> <action>


  • opsi adalah parameter yang menentukan seluk-beluk nmcli,
  • section (section) - mendefinisikan fitur utilitas apa yang akan digunakan,
  • tindakan - memungkinkan Anda menentukan apa yang sebenarnya perlu dilakukan.


Ada total 8 bagian, yang masing-masing terkait dengan satu set perintah (tindakan):



  • Help menyediakan informasi tentang perintah ncmcli dan penggunaannya.
  • Umum mengembalikan status NetworkManager dan konfigurasi global.
  • Jaringan mencakup perintah untuk menanyakan status koneksi jaringan dan mengaktifkan / menonaktifkan koneksi.
  • Radio menyertakan perintah untuk menanyakan status koneksi WiFi dan mengaktifkan / menonaktifkan koneksi.
  • Monitor menyertakan perintah untuk memantau aktivitas NetworkManager dan memantau perubahan dalam status koneksi jaringan.
  • Koneksi mencakup perintah untuk mengelola antarmuka jaringan, untuk menambahkan koneksi baru dan menghapus yang sudah ada.
  • Perangkat terutama digunakan untuk mengubah parameter yang terkait dengan perangkat (misalnya, nama antarmuka) atau untuk menghubungkan perangkat menggunakan koneksi yang ada.
  • Rahasia mendaftarkan nmcli sebagai NetworkManager "agen rahasia", yang mendengarkan pesan rahasia. Bagian ini jarang digunakan, karena nmcli bekerja dengan cara ini saat menghubungkan ke jaringan secara default.


Contoh sederhana



Sebelum Anda mulai, pastikan NetworkManager sedang berjalan dan nmcli dapat berbicara dengannya:



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


Seringkali, pekerjaan dimulai dengan melihat semua profil koneksi jaringan:



$ 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 show action untuk bagian Connection.



Mesin uji menjalankan Ubuntu 20.04. Dalam kasus ini, kami menemukan tiga koneksi kabel: enp0s3, enp0s8, dan enp0s9.



Manajemen koneksi



Penting untuk dipahami bahwa di nmcli dengan istilah Connection yang kami maksud adalah entitas yang berisi semua informasi tentang koneksi. Dengan kata lain, ini adalah konfigurasi jaringan. Koneksi merangkum semua informasi yang berhubungan dengan koneksi, termasuk lapisan tautan dan informasi pengalamatan IP. Ini adalah Layer 2 dan Layer 3 dalam model jaringan OSI.



Saat Anda menyiapkan jaringan di Linux, Anda biasanya menyiapkan koneksi yang pada akhirnya akan mengikat ke perangkat jaringan, yang pada gilirannya adalah antarmuka jaringan yang dipasang di komputer. Ketika sebuah perangkat menggunakan koneksi, itu dianggap aktif atau lebih tinggi. Jika koneksi tidak digunakan, maka koneksi tidak aktif atau terputus.



Menambahkan koneksi jaringan



Utilitas ncmli memungkinkan Anda dengan cepat menambah dan segera mengkonfigurasi koneksi. Misalnya, untuk menambahkan koneksi kabel 2 (dengan enp0s8), Anda perlu menjalankan perintah berikut sebagai superuser:



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


Di opsi tipe, kami menunjukkan bahwa ini akan menjadi koneksi Ethernet, dan dalam opsi ifname (nama antarmuka), kami menunjukkan antarmuka jaringan yang ingin kami gunakan.



Inilah yang terjadi setelah menjalankan perintah:



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


Koneksi baru telah dibuat, ethernet-enp0s8. Itu diberi UUID, jenis koneksi adalah Ethernet. Mari kita bahas dengan perintah naik:



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


Periksa kembali daftar koneksi aktif:



$ 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


Menambahkan koneksi baru ethernet-enp0s8, itu aktif dan menggunakan antarmuka jaringan enp0s8.



Menyiapkan koneksi



Utilitas ncmli memudahkan untuk mengubah parameter koneksi yang ada. Misalnya, Anda perlu mengubah dinamis (DHCP) Anda ke alamat IP statis.



Katakanlah kita perlu mengatur alamat IP ke 192.168.4.26. Untuk ini kami menggunakan dua perintah. Yang pertama akan langsung mengatur alamat IP, dan yang kedua akan mengganti metode untuk mengatur alamat IP ke manual:



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


Jangan lupa untuk mengatur subnet mask juga. Untuk koneksi pengujian kami, ini adalah 255.255.255.0, atau s / 24 untuk Classless Routing (CIDR).



Agar perubahan diterapkan, Anda perlu menonaktifkan dan kemudian mengaktifkan koneksi lagi:



$ 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


Sebaliknya, jika Anda perlu menginstal DHCP, gunakan auto alih-alih manual:



$ nmcli connection modify ethernet-enp0s8 ipv4.method auto


Bekerja dengan perangkat



Untuk ini kami menggunakan bagian Perangkat.



Memeriksa status perangkat



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



Untuk melakukan ini, gunakan aksi pertunjukan dari bagian Perangkat (Anda harus menentukan nama perangkat). Utilitas menampilkan banyak informasi, seringkali dalam beberapa halaman.

Mari kita lihat antarmuka enp0s8 yang digunakan koneksi baru kita. Mari kita pastikan bahwa itu menggunakan alamat IP yang sama persis dengan yang kita tetapkan sebelumnya:



$ 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


Ada banyak informasi. Mari sorot hal utama:



  • Nama antarmuka jaringan: enp0s8.
  • Jenis koneksi: koneksi Ethernet kabel.
  • Kami melihat alamat MAC perangkat.
  • Unit transmisi maksimum yang ditentukan (MTU) - ukuran maksimum unit data yang berguna dari satu paket yang dapat dikirim oleh protokol tanpa fragmentasi.
  • Perangkat saat ini terhubung .
  • Nama koneksi yang digunakan perangkat adalah ethernet-enp0s8.
  • Perangkat menggunakan alamat IP yang sama yang kami tetapkan sebelumnya: 192.168.4.26/24.


Informasi lainnya terkait dengan perutean default dan pengaturan gateway untuk koneksi tersebut. Mereka spesifik jaringan.



Editor nmcli interaktif



Nmcli juga memiliki editor interaktif sederhana di mana seseorang mungkin lebih nyaman bekerja. Untuk menjalankannya, misalnya, untuk koneksi ethernet-enp0s8, gunakan tindakan edit:



$ nmcli connection edit ethernet-enp0s8


Dia juga memiliki sedikit bantuan, yang, bagaimanapun, ukurannya lebih kecil dari 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 memasukkan perintah cetak dan menekan Enter, nmcli akan menampilkan semua properti koneksi:



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


Misalnya, untuk menyetel properti DHCP untuk koneksi, ketik goto ipv4 dan tekan Enter :



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 metode set otomatis dan tekan Enter :



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


Jika Anda ingin menghapus IP statis, tekan Enter . Jika tidak, ketik no dan tekan Enter. Anda dapat menyimpannya jika Anda merasa akan membutuhkannya di masa mendatang. Tetapi bahkan dengan alamat IP statis yang disimpan, DHCP akan digunakan jika metode disetel ke otomatis.



Gunakan perintah simpan untuk menyimpan perubahan Anda:



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


Enter keluar untuk keluar dari Editor Interaktif nmcli. Jika Anda berubah pikiran tentang keluar, gunakan perintah kembali.



Dan itu belum semuanya



Buka Editor Interaktif nmcli dan lihat berapa banyak pengaturan yang ada dan berapa banyak properti yang dimiliki setiap pengaturan. Editor interaktif adalah alat yang hebat, tetapi jika Anda ingin menggunakan nmcli dalam satu baris atau skrip, Anda memerlukan versi baris perintah biasa.



Sekarang setelah Anda memiliki dasar-dasarnya, lihat halaman manual nmcli untuk melihat apa lagi yang dapat membantu Anda.






Periklanan



Server Epic adalah server virtual Windows atau Linux dengan prosesor AMD EPYC yang kuat dan drive Intel NVMe yang sangat cepat. Cepat pesan!






All Articles