Gestion des connexions réseau sous Linux à l'aide de l'utilitaire de console nmcli

Profitez pleinement de l'outil de gestion de réseau NetworkManager sur la ligne de commande Linux à l'aide de l'utilitaire nmcli.

Gestion des connexions réseau sous Linux à l'aide de l'utilitaire de console nmcli

Utilitaire nmcli appelle directement l'API pour accéder aux fonctions NetworkManager.

Il est apparu en 2010 et est devenu pour beaucoup un moyen alternatif de configurer les interfaces et les connexions réseau. Même si certaines personnes utilisent encore i. Étant donné que nmcli est un outil d'interface de ligne de commande (CLI) conçu pour être utilisé dans les fenêtres de terminal et les scripts, il est idéal pour les administrateurs système travaillant sans interface graphique.

Syntaxe de la commande ncmli

En général, la syntaxe ressemble à ceci :

$ nmcli <options> <section> <action>

  • les options sont des paramètres qui déterminent les subtilités du fonctionnement de nmcli,
  • section (section) - détermine les fonctionnalités de l'utilitaire à utiliser,
  • action - vous permet de spécifier ce qui doit réellement être fait.

Il y a 8 sections au total, chacune étant associée à un certain ensemble de commandes (actions) :

  • d’aide fournit de l'aide sur les commandes ncmcli et leur utilisation.
  • Général renvoie l'état de NetworkManager et la configuration globale.
  • Réseautage comprend des commandes pour interroger l’état de la connexion réseau et activer/désactiver les connexions.
  • Radio comprend des commandes pour interroger l'état de la connexion au réseau WiFi et activer/désactiver les connexions.
  • Surveiller comprend des commandes pour surveiller l'activité de NetworkManager et observer les changements dans l'état des connexions réseau.
  • La connexion comprend des commandes pour gérer les interfaces réseau, ajouter de nouvelles connexions et supprimer celles existantes.
  • Appareil principalement utilisé pour modifier les paramètres liés à l'appareil (tels que le nom de l'interface) ou pour connecter des appareils à l'aide d'une connexion existante.
  • secret enregistre nmcli en tant qu'« agent secret » de NetworkManager qui écoute les messages secrets. Cette section est rarement utilisée, car nmcli fonctionne de cette façon par défaut lors de la connexion aux réseaux.

Exemples simples

Avant de commencer, assurez-vous que NetworkManager est en cours d'exécution et que nmcli peut communiquer avec lui :

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

Le travail commence souvent par visualiser tous les profils de connexion réseau :

$ 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

Cette commande utilise действие afficher pour la section Connexion.

La machine de test exécute Ubuntu 20.04. Dans ce cas, nous avons trouvé trois connexions filaires : enp0s3, enp0s8 et enp0s9.

Gérer les connexions

Il est important de comprendre qu'en nmcli, par le terme Connexion, nous entendons une entité qui contient toutes les informations sur la connexion. En d'autres termes, il s'agit de la configuration du réseau. La connexion encapsule toutes les informations liées à la connexion, y compris les informations sur la couche de liaison et l'adressage IP. Il s'agit des couches 2 et 3 du modèle de réseau OSI.

Lorsque vous configurez un réseau sous Linux, vous établissez généralement des connexions qui finiront par être liées aux périphériques réseau, qui sont à leur tour des interfaces réseau installées sur l'ordinateur. Lorsqu'un appareil utilise une connexion, il est considéré comme actif ou élevé. Si une connexion n'est pas utilisée, elle est inactive ou réinitialisée.

Ajout de connexions réseau

L'utilitaire ncmli vous permet d'ajouter rapidement et de configurer immédiatement des connexions. Par exemple, pour ajouter la connexion filaire 2 (avec enp0s8), vous devez exécuter la commande suivante en tant que superutilisateur :

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

Dans l'option type, nous indiquons qu'il s'agira d'une connexion Ethernet, et dans l'option ifname (nom de l'interface), nous indiquons l'interface réseau que nous souhaitons utiliser.

Voici ce qui se passera après avoir exécuté la commande :

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

Une nouvelle connexion a été créée, Ethernet-enp0s8. Un UUID lui a été attribué et le type de connexion était Ethernet. Relevons-le à l'aide de la commande up :

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

Vérifions à nouveau la liste des connexions actives :

$ 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

Une nouvelle connexion ethernet-enp0s8 a été ajoutée, elle est active et utilise l'interface réseau enp0s8.

Établir des connexions

L'utilitaire ncmli vous permet de modifier facilement les paramètres des connexions existantes. Par exemple, vous devez remplacer votre adresse IP dynamique (DHCP) par une adresse IP statique.

Disons que nous devons définir l'adresse IP sur 192.168.4.26. Pour ce faire, nous utilisons deux commandes. Le premier définira directement l'adresse IP et le second fera passer la méthode de configuration de l'adresse IP en manuel :

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

N'oubliez pas de définir également le masque de sous-réseau. Pour notre connexion de test, il s'agit de 255.255.255.0, ou avec /24 pour le routage sans classe (CIDR).

Pour que les modifications prennent effet, vous devez désactiver puis réactiver la connexion :

$ 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

Si, au contraire, vous devez installer DHCP, utilisez auto au lieu de manuel :

$ nmcli connection modify ethernet-enp0s8 ipv4.method auto

Travailler avec des appareils

Pour cela, nous utilisons la section Appareil.

Vérification de l'état de l'appareil

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

Demander des informations sur l'appareil

Pour ce faire, utilisez l'action show de la section Device (vous devez spécifier le nom du périphérique). L'utilitaire affiche de nombreuses informations, souvent sur plusieurs pages.
Regardons l'interface enp0s8 utilisée par notre nouvelle connexion. Assurons-nous qu'il utilise exactement l'adresse IP que nous avons définie précédemment :

$ 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

Il y a beaucoup d'informations. Soulignons l'essentiel :

  • Nom de l'interface réseau : enp0s8.
  • Type de connexion: connexion Ethernet filaire.
  • Nous voyons l'adresse MAC de l'appareil.
  • Unité de transmission maximale (MTU) spécifiée — la taille maximale d'un bloc de données utile d'un paquet pouvant être transmis par le protocole sans fragmentation.
  • Appareil actuellement connecté.
  • Nom de la connexionquel appareil utilise : ethernet-enp0s8.
  • L'appareil utilise le Adresse IP, que nous avons installé précédemment : 192.168.4.26/24.

D'autres informations concernent les paramètres de routage et de passerelle de connexion par défaut. Ils dépendent du réseau spécifique.

Éditeur nmcli interactif

nmcli dispose également d'un éditeur interactif simple, avec lequel certains peuvent travailler plus facilement. Pour l'exécuter sur une connexion Ethernet-enp0s8 par exemple, utilisez действие modifier:

$ nmcli connection edit ethernet-enp0s8

Il dispose également d'une petite aide, qui est cependant plus petite que la version console :

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

Si vous tapez la commande print et appuyez sur Entrée, nmcli affichera toutes les propriétés de connexion :

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

Par exemple, pour définir la connexion sur DHCP, tapez goto ipv4 et cliquez sur Entrer:

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>

Ensuite, écrivez set method auto et cliquez sur Entrer:

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

Si vous souhaitez effacer l'adresse IP statique, cliquez sur Entrer. Sinon, tapez non et appuyez sur Entrée. Vous pouvez le sauvegarder si vous pensez en avoir besoin à l’avenir. Mais même avec une adresse IP statique enregistrée, DHCP sera utilisé si la méthode est définie sur auto.

Utilisez la commande save pour enregistrer vos modifications :

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

Tapez quit pour quitter nmcli Interactive Editor. Si vous changez d’avis sur votre départ, utilisez la commande back.

Et ce n'est pas tout

Ouvrez l'éditeur interactif nmcli et voyez combien de paramètres il existe et combien de propriétés possède chaque paramètre. L'éditeur interactif est un excellent outil, mais si vous souhaitez utiliser nmcli dans des one-liners ou des scripts, vous aurez besoin de la version standard en ligne de commande.

Maintenant que vous avez les bases, découvrez page de manuel nmcli pour voir comment cela peut vous aider.

Comme la publicité

Serveurs épiques - Est serveurs virtuels sous Windows ou Linux avec de puissants processeurs de la famille AMD EPYC et des disques Intel NVMe très rapides. Dépêchez-vous de commander !

Gestion des connexions réseau sous Linux à l'aide de l'utilitaire de console nmcli

Source: habr.com

Ajouter un commentaire