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

Tirez pleinement parti de l'outil de gestion de réseau NetworkManager à partir de la ligne de commande Linux avec l'utilitaire nmcli.







L'utilitaire nmcli appelle directement l'API pour accéder aux fonctions de NetworkManager.



Il est apparu en 2010 et est devenu pour beaucoup un moyen alternatif de configurer les interfaces et les connexions réseau. Bien que quelqu'un utilise toujours ifconfig . É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 non-GUI.



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éfinissent les subtilités de nmcli,
  • section - définit 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 ensemble de commandes (actions):



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


Exemples simples



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



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


Souvent, le travail commence par l'examen de 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 l'action show 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.



Gestion des connexions



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



Lorsque vous configurez la mise en réseau sous Linux, vous définissez généralement des connexions qui seront finalement liées aux périphériques réseau, qui sont à leur tour les interfaces réseau installées sur l'ordinateur. Lorsqu'un appareil utilise une connexion, elle est considérée comme active ou active. Si la connexion n'est pas utilisée, elle est inactive ou abandonné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 voulons utiliser.



Voici ce qui se passe 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 a été créée, ethernet-enp0s8. Un UUID lui a été attribué, le type de connexion était Ethernet. Amenons-le avec la commande up:



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


Vérifiez à 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


Ajout d'une nouvelle connexion ethernet-enp0s8, elle est active et utilise l'interface réseau enp0s8.



Configuration des connexions



L'utilitaire ncmli facilite la modification des paramètres des connexions existantes. Par exemple, vous devez changer l'adresse IP dynamique (DHCP) en adresse IP statique.



Disons que nous devons définir l'adresse IP sur 192.168.4.26. Pour cela, nous utilisons deux commandes. Le premier définira directement l'adresse IP, et le second basculera la méthode de définition de l'adresse IP sur 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 s / 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 vous devez installer DHCP au contraire, 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  --  


Demande d'informations sur l'appareil



Pour ce faire, utilisez l'action show de la section Device (vous devez spécifier le nom de l'appareil). L'utilitaire affiche de nombreuses informations, souvent sur plusieurs pages.

Jetons un coup d'œil à l'interface enp0s8 que notre nouvelle connexion utilise. Assurons-nous qu'il utilise exactement la même 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 spécifiée (MTU) - la taille maximale de l'unité de données utile d'un paquet qui peut être transmise par le protocole sans fragmentation.
  • L'appareil est actuellement connecté .
  • Le nom de la connexion que le périphérique utilise est ethernet-enp0s8.
  • L'appareil utilise la même adresse IP que nous avons définie précédemment: 192.168.4.26/24.


D'autres informations concernent les paramètres de routage et de passerelle par défaut pour la connexion. Ils sont spécifiques au réseau.



Éditeur nmcli interactif



Nmcli dispose également d'un éditeur interactif simple dans lequel quelqu'un pourrait être plus à l'aise pour travailler. Pour l'exécuter, par exemple pour une connexion Ethernet-enp0s8, utilisez l'action d' édition:



$ nmcli connection edit ethernet-enp0s8


Il a également un peu d'aide, qui, cependant, est 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 entrez la commande d'impression 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 propriété DHCP pour une connexion, tapez goto ipv4 et appuyez sur Entrée :



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 appuyez sur Entrée :



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


Si vous souhaitez effacer l'adresse IP statique, appuyez sur Entrée . Sinon, tapez no et appuyez sur Entrée. Vous pouvez le conserver si vous pensez en avoir besoin à l'avenir. Mais même avec une adresse IP statique stocké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>


Entrez quit pour quitter l'éditeur interactif nmcli. Si vous changez d'avis sur votre départ, utilisez la commande retour.



Et ce n'est pas tout



Ouvrez l'éditeur interactif nmcli et voyez le nombre de paramètres et le nombre de propriétés 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 de ligne de commande standard.



Maintenant que vous avez les bases, consultez la page de manuel nmcli pour voir comment elle peut vous aider.






La publicité



Les serveurs Epic sont des serveurs virtuels Windows ou Linux dotés de puissants processeurs AMD EPYC et de lecteurs Intel NVMe très rapides. Dépêchez-vous de commander!






All Articles