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.

Utilitaire 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 . Ă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 enp0s9Cette 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 enp0s9Une 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 manualN'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/ActiveCSi vous devez au contraire configurer le DHCP, utilisez auto au lieu de manual :
$ nmcli connection modify ethernet-enp0s8 ipv4.method autoGestion 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=255Il 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-enp0s8Il 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 nmcli pour découvrir comment elle peut encore vous aider.
En tant que publicité
Serveurs Ăpiques â ce sont des ou Linux avec des processeurs puissants de la famille AMD EPYC et des disques NVMe Intel trĂšs rapides. Commandez dĂšs maintenant !
Source : habr.com
