Netwerkverbindingen in Linux beheren met behulp van het nmcli-consolehulpprogramma

Profiteer optimaal van de netwerkbeheertool NetworkManager op de Linux-opdrachtregel met behulp van het nmcli-hulpprogramma.

Netwerkverbindingen in Linux beheren met behulp van het nmcli-consolehulpprogramma

Nut nmcli roept de API rechtstreeks aan om toegang te krijgen tot NetworkManager-functies.

Het verscheen in 2010 en is voor velen een alternatieve manier geworden om netwerkinterfaces en verbindingen te configureren. Hoewel sommige mensen het nog steeds gebruiken ifconfig. Omdat nmcli een opdrachtregelinterface (CLI) is die is ontworpen voor gebruik in terminalvensters en scripts, is het ideaal voor systeembeheerders die zonder GUI werken.

ncmli-opdrachtsyntaxis

Over het algemeen ziet de syntaxis er als volgt uit:

$ nmcli <options> <section> <action>

  • opties zijn parameters die de subtiliteiten van nmcli-bewerking bepalen,
  • sectie (sectie) - bepaalt welke functies van het hulpprogramma moeten worden gebruikt,
  • actie - hiermee kunt u specificeren wat er daadwerkelijk moet gebeuren.

Er zijn in totaal 8 secties, die elk zijn gekoppeld aan een bepaalde reeks opdrachten (acties):

  • Help biedt hulp over ncmcli-opdrachten en hun gebruik.
  • Algemeen retourneert de NetworkManager-status en algemene configuratie.
  • Netwerken bevat opdrachten om de status van de netwerkverbinding op te vragen en verbindingen in/uit te schakelen.
  • Radio bevat opdrachten om de status van de WiFi-netwerkverbinding op te vragen en verbindingen in/uit te schakelen.
  • monitor bevat opdrachten voor het monitoren van NetworkManager-activiteit en het observeren van veranderingen in de status van netwerkverbindingen.
  • Aansluiting bevat opdrachten voor het beheren van netwerkinterfaces, het toevoegen van nieuwe verbindingen en het verwijderen van bestaande verbindingen.
  • Apparaat voornamelijk gebruikt om apparaatgerelateerde parameters (zoals interfacenaam) te wijzigen of om apparaten aan te sluiten via een bestaande verbinding.
  • Geheim registreert nmcli als een NetworkManager "geheim agent" die luistert naar geheime berichten. Deze sectie wordt zelden gebruikt, omdat nmcli standaard op deze manier werkt bij het verbinden met netwerken.

Eenvoudige voorbeelden

Zorg er voordat u begint voor dat NetworkManager actief is en dat nmcli ermee kan communiceren:

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

Het werk begint vaak met het bekijken van alle netwerkverbindingsprofielen:

$ 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

Deze opdracht gebruikt действие weergeven voor het gedeelte Verbinding.

Op de testmachine wordt Ubuntu 20.04 uitgevoerd. In dit geval hebben we drie bekabelde verbindingen gevonden: enp0s3, enp0s8 en enp0s9.

Beheer verbindingen

Het is belangrijk om te begrijpen dat we in nmcli met de term Verbinding een entiteit bedoelen die alle informatie over de verbinding bevat. Met andere woorden, dit is de netwerkconfiguratie. Verbinding omvat alle verbindingsgerelateerde informatie, inclusief linklaag- en IP-adresinformatie. Dit zijn Laag 2 en Laag 3 in het OSI-netwerkmodel.

Wanneer je in Linux een netwerk opzet, zet je meestal verbindingen op die uiteindelijk gekoppeld zullen zijn aan netwerkapparaten, die op hun beurt netwerkinterfaces zijn die op de computer zijn geïnstalleerd. Wanneer een apparaat een verbinding gebruikt, wordt deze als actief of verhoogd beschouwd. Als een verbinding niet in gebruik is, is deze inactief of wordt deze gereset.

Netwerkverbindingen toevoegen

Met het hulpprogramma ncmli kunt u snel verbindingen toevoegen en onmiddellijk configureren. Om bijvoorbeeld Vaste verbinding 2 (met enp0s8) toe te voegen, moet u de volgende opdracht als superuser uitvoeren:

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

Bij de optie type geven we aan dat dit een Ethernet-verbinding zal zijn, en bij de optie ifname (interfacenaam) geven we aan welke netwerkinterface we willen gebruiken.

Dit is wat er zal gebeuren na het uitvoeren van de opdracht:

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

Er is een nieuwe verbinding gemaakt, ethernet-enp0s8. Er was een UUID aan toegewezen en het verbindingstype was Ethernet. Laten we het verhogen met behulp van het commando up:

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

Laten we de lijst met actieve verbindingen opnieuw bekijken:

$ 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

Er is een nieuwe verbinding ethernet-enp0s8 toegevoegd, deze is actief en maakt gebruik van de enp0s8-netwerkinterface.

Verbindingen opzetten

Met het hulpprogramma ncmli kunt u eenvoudig de parameters van bestaande verbindingen wijzigen. U moet bijvoorbeeld uw dynamische (DHCP) IP-adres wijzigen in een statisch IP-adres.

Laten we zeggen dat we het IP-adres moeten instellen op 192.168.4.26. Om dit te doen gebruiken we twee commando's. De eerste zal het IP-adres rechtstreeks instellen, en de tweede zal de instellingsmethode voor het IP-adres omschakelen naar handmatig:

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

Vergeet niet ook het subnetmasker in te stellen. Voor onze testverbinding is dit 255.255.255.0, of met /24 voor klasseloze routering (CIDR).

Om de wijzigingen door te voeren, moet u de verbinding deactiveren en vervolgens opnieuw activeren:

$ 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

Als u daarentegen DHCP moet installeren, gebruik dan automatisch in plaats van handmatig:

$ nmcli connection modify ethernet-enp0s8 ipv4.method auto

Werken met apparaten

Hiervoor gebruiken we het onderdeel Apparaat.

Apparaatstatus controleren

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

Apparaatinformatie opvragen

Om dit te doen, gebruikt u de showactie uit de sectie Apparaat (u moet de apparaatnaam opgeven). Het hulpprogramma geeft veel informatie weer, vaak op meerdere pagina's.
Laten we eens kijken naar de enp0s8-interface die onze nieuwe verbinding gebruikt. Laten we ervoor zorgen dat het precies het IP-adres gebruikt dat we eerder hebben ingesteld:

$ 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

Er is behoorlijk veel informatie. Laten we het belangrijkste benadrukken:

  • Naam netwerkinterface: enp0s8.
  • Connectie type: bekabelde Ethernet-verbinding.
  • We zien het MAC-adres van het apparaat.
  • Maximale transmissie-eenheid (MTU) gespecificeerd — de maximale grootte van een bruikbaar datablok van één pakket dat zonder fragmentatie door het protocol kan worden verzonden.
  • Устройство momenteel verbonden.
  • Verbindingsnaamwelk apparaat gebruikt: ethernet-enp0s8.
  • Het apparaat maakt gebruik van de IP-adres, die we eerder hebben geïnstalleerd: 192.168.4.26/24.

Andere informatie heeft betrekking op de standaardrouterings- en verbindingsgatewayparameters. Ze zijn afhankelijk van het specifieke netwerk.

Interactieve nmcli-editor

nmcli heeft ook een eenvoudige interactieve editor, die voor sommigen wellicht comfortabeler is om mee te werken. Om het bijvoorbeeld op een ethernet-enp0s8-verbinding uit te voeren, gebruikt u действие Bewerk:

$ nmcli connection edit ethernet-enp0s8

Het heeft ook een kleine hulp, die echter kleiner is dan de consoleversie:

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

Als u de afdrukopdracht typt en op Enter drukt, geeft nmcli alle verbindingseigenschappen weer:

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

Als u bijvoorbeeld de verbinding op DHCP wilt instellen, typt u goto ipv4 en klikt u op 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>

Schrijf vervolgens set method auto en klik op Enter:

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

Als u het statische IP-adres wilt wissen, klikt u op Enter. Anders typt u nee en drukt u op Enter. U kunt het bewaren als u denkt dat u het in de toekomst nodig zult hebben. Maar zelfs met een opgeslagen statisch IP-adres zal DHCP worden gebruikt als de methode is ingesteld op automatisch.

Gebruik de opdracht Opslaan om uw wijzigingen op te slaan:

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

Typ quit om de nmcli Interactive Editor af te sluiten. Als je van gedachten verandert over het vertrek, gebruik dan het commando Terug.

En dat is niet alles

Open de nmcli Interactive Editor en kijk hoeveel instellingen er zijn en hoeveel eigenschappen elke instelling heeft. De interactieve editor is een geweldig hulpmiddel, maar als je nmcli in oneliners of scripts wilt gebruiken, heb je de gewone opdrachtregelversie nodig.

Nu je de basis hebt, ga je kijken man-pagina nmcli om te zien hoe het u nog meer kan helpen.

Als advertentie

Epische servers - Is virtuele servers op Windows of Linux met krachtige AMD EPYC-familieprocessors en zeer snelle Intel NVMe-schijven. Wees er snel bij om te bestellen!

Netwerkverbindingen in Linux beheren met behulp van het nmcli-consolehulpprogramma

Bron: www.habr.com

Voeg een reactie