Gestion des connexions réseau sous Linux à l'aide de l'outil en ligne de commande nmcli

Exploitez toutes les fonctionnalités de l'outil de gestion des connexions réseau NetworkManager dans la ligne de commande Linux à l'aide de l'utilitaire nmcli.

Gestion des connexions réseau sous Linux à l'aide de l'outil en ligne de commande nmcli

Utilitaire nmcli s'adresse directement à l'API pour accéder aux fonctionnalités de NetworkManager.

Il a Ă©tĂ© introduit en 2010 et est devenu pour beaucoup une alternative pour configurer les interfaces et connexions rĂ©seau. Bien que certains continuent d'utiliser ifconfig. Étant donnĂ© que nmcli est un outil d'interface de ligne de commande (CLI), conçu pour ĂȘtre utilisĂ© dans des fenĂȘtres de terminal et des scripts, il est parfaitement adaptĂ© aux administrateurs systĂšme travaillant sans interface graphique.

La syntaxe des commandes nmcli

En général, la syntaxe est la suivante :

$ nmcli  

  • options — ce sont les paramĂštres qui dĂ©finissent les dĂ©tails du fonctionnement de nmcli,
  • section (section) — dĂ©finit les fonctionnalitĂ©s de l'utilitaire Ă  utiliser,
  • action (action) — permet d'indiquer ce qu'il faut rĂ©ellement faire.

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

  • Aide fournit de l'aide sur les commandes nmcli et leur utilisation.
  • GĂ©nĂ©ral renvoie le statut de NetworkManager et la configuration globale.
  • RĂ©seau inclut des commandes pour vĂ©rifier l'Ă©tat de la connexion rĂ©seau et activer / dĂ©sactiver des connexions.
  • Radio inclut des commandes pour vĂ©rifier l'Ă©tat de la connexion au rĂ©seau WiFi et activer / dĂ©sactiver des connexions.
  • Surveillance inclut des commandes pour surveiller l'activitĂ© de NetworkManager et observer les changements d'Ă©tat des connexions rĂ©seau.
  • Connexion inclut des commandes pour gĂ©rer les interfaces rĂ©seau, pour ajouter de nouvelles connexions et supprimer des connexions existantes.
  • Appareil est principalement utilisĂ© pour modifier les paramĂštres liĂ©s aux pĂ©riphĂ©riques (par exemple, le nom de l'interface) ou pour connecter des pĂ©riphĂ©riques en utilisant 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 par dĂ©faut de cette façon lors de la connexion Ă  des 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
ÉTAT      CONNECTIVITÉ  WIFI-HW  WIFI     WWAN-HW  WWAN    
connecté  complet       activé  activé  activé  activé

On commence souvent par consulter tous les profils de connexions 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 l'action show pour la section Connection.

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

Gestion des connexions

Il est important de comprendre qu'avec nmcli, le terme Connection désigne une entité qui contient toutes les informations sur la connexion. En d'autres termes, c'est la configuration réseau. La Connection encapsule toutes les informations liées aux connexions, y compris les informations de niveau 2 et niveau 3 dans le modÚle OSI.

Lorsque vous configurez le réseau sous Linux, vous configurez généralement des connexions qui seront finalement liées à des dispositifs réseau, qui à leur tour sont des interfaces réseau installées sur l'ordinateur. Lorsque le dispositif utilise une connexion, elle est considérée comme active ou montée. Si la connexion n'est pas utilisée, elle est inactive ou désactivée.

Ajout de connexions réseau

L'outil nmcli permet d'ajouter rapidement et de configurer des connexions. Par exemple, pour ajouter Wired connection 2 (avec enp0s8), vous devez exécuter la commande suivante en tant qu'utilisateur root :

$ sudo nmcli connection add type ethernet ifname enp0s8
Connection 'ethernet-enp0s8' (09d26960-25a0-440f-8b20-c684d7adc2f5) ajoutée avec succÚs.

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

Voici ce qui se produira aprÚs l'exécution de 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, ethernet-enp0s8, a été créée. Un UUID lui a été attribué, et le type de connexion est Ethernet. Activons-la avec la commande up :

$ nmcli connection up ethernet-enp0s8
Connection activée avec succÚs (chemin actif D-Bus : /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.

Configuration des connexions

L'outil ncmli permet de modifier facilement les paramĂštres des connexions existantes. Par exemple, vous devez changer d'un IP dynamique (DHCP) Ă  une adresse IP statique.

Disons que nous souhaitons définir l'adresse IP à 192.168.4.26. Pour cela, nous utiliserons deux commandes. La premiÚre définira directement l'adresse IP, et la seconde changera la méthode de configuration de l'adresse IP en 'manuelle' (manual) :

$ 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, c'est 255.255.255.0, ou avec /24 pour le routage sans classe (CIDR).

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

$ nmcli connection down ethernet-enp0s8
La connexion 'ethernet-enp0s8' a été désactivée avec succÚs (chemin actif D-Bus : /org/freedesktop/NetworkManager/ActiveConnection/4)
$ nmcli connection up ethernet-enp0s8
La connexion a été activée avec succÚs (chemin actif D-Bus : /org/freedesktop/NetworkManager/ActiveC

Si vous devez au contraire configurer le DHCP, utilisez auto au lieu de manual :

$ nmcli connection modify ethernet-enp0s8 ipv4.method auto

Gestion des dispositifs

Pour cela, nous utilisons la section Device.

Vérification de l'état des dispositifs

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

Demande d'informations sur le dispositif

Pour cela, nous utilisons l'action show de la section Device (il est nécessaire de spécifier le nom du dispositif). L'outil affiche beaucoup d'informations, souvent sur plusieurs pages.
Regardons l'interface enp0s8, qui utilise notre nouvelle connexion. Vérifions qu'elle 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. Concentrons-nous sur l'essentiel :

  • Nom de l'interface rĂ©seau : enp0s8.
  • Type de connexion : connexion Ethernet cĂąblĂ©e.
  • Nous voyons l'adresse MAC de l'appareil.
  • Maximum transmission unit (MTU) spĂ©cifiĂ© — la taille maximale d'un bloc de donnĂ©es d'un paquet pouvant ĂȘtre transmis par le protocole sans fragmentation.
  • Appareil actuellement connectĂ©.
  • Nom de la connexion, utilisĂ©e par l'appareil : ethernet-enp0s8.
  • L'appareil utilise celui Adresse IP, que nous avons configurĂ© prĂ©cĂ©demment : 192.168.4.26/24.

Les autres informations se réfÚrent aux paramÚtres par défaut de routage et de passerelle de la connexion. Ils dépendent du réseau spécifique.

Éditeur interactif nmcli

Le nmcli dispose Ă©galement d'un Ă©diteur interactif simple, oĂč il peut ĂȘtre plus agrĂ©able de travailler pour certains. Pour le lancer, par exemple, pour la connexion ethernet-enp0s8, utilisez l'action edit :

$ nmcli connection edit ethernet-enp0s8

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

===| éditeur de connexion interactif nmcli |===
Édition de la connexion '802-3-ethernet' existante : 'ethernet-enp0s8'
Tapez 'help' ou '?' pour voir les commandes disponibles.
Tapez 'print' pour afficher toutes les propriétés de la connexion.
Tapez 'describe [<setting>.<prop>]' pour une description détaillée de la propriété.
Vous pouvez modifier les paramĂštres suivants : connexion, 802-3-ethernet (ethernet), 802-1x, dcb, sriov, ethtool, match, ipv4, ipv6, tc, proxy
nmcli>

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

===============================================================================
                 Détails du profil de connexion (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 (par défaut)
connection.multi-connect :               0 (par défaut)
connection.auth-retries :                -1
connection.timestamp :                   1593967212
connection.read-only :                   no
connection.permissions :                 --
connection.zone :                        --
connection.master :                      --
connection.slave-type :                  --
connection.autoconnect-slaves :          -1 (par défaut)
connection.secondaries :                 --

Par exemple, pour définir la propriété DHCP pour la connexion, tapez goto ipv4 et appuyez sur Entrée:

nmcli> goto ipv4
Vous pouvez modifier les propriétés suivantes : méthode, dns, dns-search, 
dns-options, dns-priority, adresses, passerelle, routes, route-metric, 
route-table, rĂšgles de routage, 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, tapez set method auto et appuyez sur Entrée:

nmcli ipv4> set method auto
Voulez-vous également effacer 'ipv4.addresses' ? [yes] :

Si vous souhaitez effacer l'adresse IP statique, appuyez sur EntrĂ©e. Sinon, entrez no 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 sauvegardĂ©e, le DHCP sera utilisĂ© si la mĂ©thode est dĂ©finie sur auto.

Utilisez la commande save pour enregistrer les modifications :

nmcli ipv4> save
La connexion 'ethernet-enp0s8' (09d26960-25a0-440f-8b20-c684d7adc2f5) a été mise à jour avec succÚs.
nmcli ipv4>

Entrez quit pour sortir de l'éditeur interactif nmcli. Si vous avez changé d'avis, utilisez la commande back.

Et ce n'est pas tout.

Ouvrez l'éditeur interactif nmcli et découvrez combien de configurations existent et quelles propriétés possÚde chaque configuration. L'éditeur interactif est un excellent outil, mais si vous souhaitez utiliser nmcli dans des lignes de commande ou des scripts, vous aurez besoin de la version classique en ligne de commande.

Maintenant que vous avez les bases, consultez la page de manuel nmcli pour découvrir comment elle peut encore vous aider.

En tant que publicité

Serveurs Épiques — ce sont des serveurs virtuels sous Windows ou Linux avec des processeurs puissants de la famille AMD EPYC et des disques NVMe Intel trùs rapides. Commandez dùs maintenant !

Gestion des connexions réseau sous Linux à l'aide de l'outil en ligne de commande nmcli

Source : habr.com

Acheter un hĂ©bergement fiable pour les sites avec protection DDoS, serveurs VPS VDS đŸ”„ Acheter un hĂ©bergement fiable pour les sites avec protection DDoS, serveurs VPS VDS | ProHoster