Beheer netwerkverbindingen in Linux met de consoletool nmcli

Maak gebruik van alle mogelijkheden van de netwerkbeheerder NetworkManager in de Linux-opdrachtregel met de tool nmcli.

Beheer netwerkverbindingen in Linux met de consoletool nmcli

Hulpprogramma nmcli maakt rechtstreeks verbinding met de API om toegang te krijgen tot de functies van NetworkManager.

Het is in 2010 geĆÆntroduceerd en voor velen een alternatieve manier geworden om netwerkinterfaces en verbindingen in te stellen. Hoewel sommigen nog steeds gebruikmaken van ifconfig. Aangezien nmcli een commando-regelinterface (CLI) gereedschap is, bedoeld voor gebruik in terminalvensters en scripts, is het perfect voor systeembeheerders die zonder GUI werken.

De syntaxis van nmcli-commando's

In algemene zin is de syntaxis als volgt:

$ nmcli  

  • options zijn parameters die de details van het gebruik van nmcli bepalen,
  • section (sectie) bepaalt welke functies van de tool gebruikt kunnen worden,
  • action (actie) geeft aan wat er precies gedaan moet worden.

Er zijn in totaal 8 secties, elk verbonden met een bepaalde set opdrachten (acties):

  • Help geeft hulp over de ncmcli-commando's en hun gebruik.
  • Algemeen geeft de status van NetworkManager en de globale configuratie terug.
  • Netwerken activeert commando's voor het opvragen van de status van de netwerkverbinding en het in- / uitschakelen van verbindingen.
  • Radio activeert commando's voor het opvragen van de status van de WiFi-verbinding en het in- / uitschakelen van verbindingen.
  • Monitor activeert commando's voor het monitoren van de activiteit van NetworkManager en het observeren van wijzigingen in de status van netwerkverbindingen.
  • Verbinden activeert commando's voor het beheren van netwerkinterfaces, om nieuwe verbindingen toe te voegen en bestaande verbindingen te verwijderen.
  • Device wordt voornamelijk gebruikt om parameters die met apparaten te maken hebben (bijvoorbeeld de naam van de interface) te wijzigen of om apparaten te verbinden met behulp van een bestaande verbinding.
  • Secret registreert nmcli als een 'geheime agent' van NetworkManager, die op geheime berichten let. Deze sectie wordt zelden gebruikt, omdat nmcli standaard zo werkt bij verbindingen met netwerken.

Eenvoudige voorbeelden

Zorg ervoor dat NetworkManager draait en nmcli met hem kan communiceren voordat je begint:

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

Zodra je vaak begint met het bekijken van alle profielen van netwerkverbindingen:

$ 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 de actie show voor de sectie Verbinding.

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

Beheer van verbindingen

Het is belangrijk om te begrijpen dat we met de term Verbinding in nmcli een entiteit bedoelen die alle informatie over de verbinding bevat. Met andere woorden, dit is de netwerkconfiguratie. Verbinding encapsuleert alle informatie die verband houdt met verbindingen, inclusief laag 2 en IP-adresseringsinformatie. Dit zijn laag 2 en laag 3 in het netwerkmodel OSI.

Wanneer je een netwerk in Linux configureert, stel je meestal verbindingen in die uiteindelijk zullen worden gekoppeld aan netwerkapparaten, die op hun beurt netwerkinterfaces zijn die op de computer zijn geĆÆnstalleerd. Wanneer een apparaat een verbinding gebruikt, wordt het als actief of omhoog beschouwd. Als de verbinding niet wordt gebruikt, is deze inactief of gereset.

Toevoegen van netwerkaansluitingen

De ncmli-tool maakt het mogelijk om snel verbindingen toe te voegen en onmiddellijk in te stellen. Bijvoorbeeld, om Wired connection 2 (met enp0s8) toe te voegen, moet je de volgende opdracht als supergebruiker uitvoeren:

$ sudo nmcli connection add type ethernet ifname enp0s8
Verbinding 'ethernet-enp0s8' (09d26960-25a0-440f-8b20-c684d7adc2f5) succesvol toegevoegd.

In de optie type geven we aan dat dit een Ethernetverbinding zal zijn, en in de optie ifname (interface naam) geven we de netwerkinterface aan die 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, ethernet-enp0s8, aangemaakt. Er is een UUID toegewezen, en het type verbinding is Ethernet. We zullen het activeren met de opdracht up:

$ nmcli connection up ethernet-enp0s8
Verbinding met succes geactiveerd (D-Bus actieve pad: /org/freedesktop/NetworkManager/ActiveConnection/4)

Laten we de lijst met actieve verbindingen nogmaals controleren:

$ 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

Een nieuwe ethernet-verbinding ethernet-enp0s8 is toegevoegd, deze is actief en gebruikt het netwerkinterface enp0s8.

Instellingen voor verbindingen

De ncmli-tool maakt het eenvoudig om de parameters van bestaande verbindingen te wijzigen. Bijvoorbeeld, als u een dynamisch (DHCP) IP-adres wilt wijzigen naar een statisch IP-adres.

Stel dat we het IP-adres willen instellen op 192.168.4.26. Hiervoor gebruiken we twee commando's. De eerste stelt het IP-adres direct in, de tweede schakelt de methode voor het instellen van het IP-adres naar 'handmatig' (manual):

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

Vergeet ook niet om het subnetmasker in te stellen. Voor onze testverbinding is dit 255.255.255.0, of met /24 voor Classless Inter-Domain Routing (CIDR).

Om de wijzigingen door te voeren, moet de verbinding eerst gedeactiveerd en vervolgens opnieuw geactiveerd worden:

$ nmcli connection down ethernet-enp0s8
Verbinden 'ethernet-enp0s8' is met succes gedeactiveerd (D-Bus actieve pad: /org/freedesktop/NetworkManager/ActiveConnection/4)
$ nmcli connection up ethernet-enp0s8
Verbinden is met succes geactiveerd (D-Bus actieve pad: /org/freedesktop/NetworkManager/ActiveC

Als u in plaats daarvan DHCP wilt instellen, gebruik dan auto in plaats van manual:

$ nmcli connection modify ethernet-enp0s8 ipv4.method auto

Werken met apparaten

Hiervoor gebruiken we de sectie Apparaat.

Controleer de status van apparaten

$ nmcli device status
APPARAAT  TYPE      STATUS      VERBINDING        
enp0s3  ethernet  verbonden  Bekabelde verbinding 1
enp0s8  ethernet  verbonden  ethernet-enp0s8    
enp0s9  ethernet  verbonden  Bekabelde verbinding 3
lo      loopback  niet-beheerd  --  

Aanvraag informatie over het apparaat

Hiervoor gebruiken we de actie show uit de sectie Apparaat (vergeet niet de naam van het apparaat op te geven). De tool toont behoorlijk veel informatie, vaak op meerdere pagina's.
Laten we eens kijken naar de interface enp0s8, welke onze nieuwe verbinding gebruikt. Laten we verifiƫren dat het exact 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 (verbonden)
GENERAL.CONNECTION:                     ethernet-enp0s8
GENERAL.CON-PATH:                       /org/freedesktop/NetworkManager/ActiveConnection/6
WIRED-PROPERTIES.CARRIER:               aan
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 een behoorlijke hoeveelheid informatie. Laten we het belangrijkste benadrukken:

  • Naam van de netwerkinterface: enp0s8.
  • Verbindingstype: bedrade Ethernet-verbinding.
  • We zien het MAC-adres van het apparaat.
  • De maximum transmissie-eenheid (MTU) is opgegeven — de maximale grootte van het nuttige datablok van ƩƩn pakket dat door het protocol zonder fragmentatie kan worden verzonden.
  • Apparaat op dit moment verbonden.
  • Naam van de verbinding, die door het apparaat wordt gebruikt: ethernet-enp0s8.
  • Het apparaat gebruikt de IP-adres, die we eerder hebben ingesteld: 192.168.4.26/24.

Andere informatie betreft de standaard routerings- en gateway-instellingen van de verbinding. Deze zijn afhankelijk van het specifieke netwerk.

Interactieve nmcli-editor

Nmcli heeft ook een eenvoudige interactieve editor, waarin het voor sommigen comfortabeler kan zijn om te werken. Om deze te starten, bijvoorbeeld voor de verbinding ethernet-enp0s8, gebruikt u de actie edit:

$ nmcli connection edit ethernet-enp0s8

Er is ook een kleine helpfunctie, die echter kleiner is dan de consoleversie:

===| nmcli interactieve verbinding editor |===
Bewerken van bestaande '802-3-ethernet' verbinding: 'ethernet-enp0s8'
Typ 'help' of '?' voor beschikbare commando's.
Typ 'print' om alle verbindingsinstellingen weer te geven.
Typ 'describe [<instelling>.<eigenschap>]' voor gedetailleerde eigenschapsomschrijving.
U kunt de volgende instellingen bewerken: verbinding, 802-3-ethernet (ethernet), 802-1x, dcb, sriov, ethtool, match, ipv4, ipv6, tc, proxy
nmcli>

Als u de opdracht print invoert en op Enter drukt, toont nmcli alle eigenschappen van de verbinding:

===============================================================================
                 Details van het verbindingsprofiel (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:                 ja
connection.autoconnect-priority:        0
connection.autoconnect-retries:         -1 (standaard)
connection.multi-connect:               0 (standaard)
connection.auth-retries:                -1
connection.timestamp:                   1593967212
connection.read-only:                   nee
connection.permissions:                 --
connection.zone:                        --
connection.master:                      --
connection.slave-type:                  --
connection.autoconnect-slaves:          -1 (standaard)
connection.secondaries:                 --

Om bijvoorbeeld de DHCP-eigenschap voor de verbinding in te stellen, typt u goto ipv4 en drukt u op Enter:

nmcli> goto ipv4
U kunt de volgende eigenschappen bewerken: methode, dns, dns-zoekopdracht, 
dns-opties, dns-prioriteit, adressen, gateway, routes, route-metric, 
route-tafel, routeringsregels, negeer-auto-routes, negeer-auto-dns, 
dhcp-client-id, dhcp-iaid, dhcp-timeout, dhcp-zend-hostnaam, 
dhcp-hostnaam, dhcp-fqdn, dhcp-hostnaam-vlaggen, nooit-standaard, kan-mislukken, 
dad-timeout
nmcli ipv4>

Typ dan set method auto en druk op Enter:

nmcli ipv4> set method auto
Wilt u ook 'ipv4.adressen' wissen? [ja]:

Als u het statische IP-adres wilt wissen, druk dan Enter. Voer anders no in en druk op Enter. U kunt het opslaan als u denkt dat het in de toekomst nuttig voor u zal zijn. Maar zelfs met een opgeslagen statisch IP-adres zal DHCP worden gebruikt als de methode is ingesteld op auto.

Gebruik de opdracht save om de wijzigingen op te slaan:

nmcli ipv4> save
Verbinding 'ethernet-enp0s8' (09d26960-25a0-440f-8b20-c684d7adc2f5) succesvol bijgewerkt.
nmcli ipv4>

Voer quit in om de interactieve nmcli-editor te verlaten. Als u zich bedacht heeft om te vertrekken, gebruik dan de opdracht back.

En dat is nog niet alles.

Open de interactieve nmcli-editor en ontdek hoeveel instellingen er zijn en welke eigenschappen elke instelling heeft. De interactieve editor is een geweldig hulpmiddel, maar als u nmcli in eenregelige opdrachten of scripts wilt gebruiken, heeft u de gewone versie voor de opdrachtregel nodig.

Nu u de basis heeft, bekijk de handleiding nmcli om te zien wat het u verder kan bieden.

Adverteervermelding

Epische servers is virtuele servers op Windows of Linux met krachtige AMD EPYC-processoren en supersnelle Intel NVMe-schijven. Wees snel om te bestellen!

Beheer netwerkverbindingen in Linux met de consoletool nmcli

Bron: habr.com

Koop betrouwbare webhosting met bescherming tegen DDoS, VPS VDS servers šŸ”„ Koop betrouwbare webhosting met bescherming tegen DDoS, VPS VDS servers | ProHoster