Configurer le réseau avec NetworkManager
Mise à jour :
Dans le guide précédent, je vous ai présenté Netplan, un outil de configuration réseau moderne qui agit comme une interface entre l’utilisateur et les services comme systemd-networkd ou NetworkManager. Mais que se cache-t-il derrière ce fameux renderer appelé NetworkManager ? Voyons maintenant ensemble comment fonctionne ce gestionnaire de réseau utilisé par défaut dans la plupart des distributions Linux orientées poste de travail, comme Ubuntu Desktop, Fedora, openSUSE, Linux Mint, ou encore Pop!_OS.
NetworkManager a été conçu pour simplifier la gestion des connexions réseau, surtout dans des environnements où la connectivité change souvent — pensez au Wi-Fi, aux VPN ou aux connexions filaires dans les ordinateurs portables.
Contrairement aux outils plus bas-niveau comme systemd-networkd, il propose une gestion dynamique et automatisée, souvent accompagnée d’une interface graphique intuitive. Cela en fait un choix privilégié pour les utilisateurs de bureau, mais aussi pour certains serveurs nécessitant une flexibilité réseau avancée.
Dans ce guide, je vais vous montrer comment tirer parti de NetworkManager
pour configurer efficacement vos interfaces réseau : que ce soit en DHCP,
avec des adresses IP statiques, pour connecter un poste à un réseau
Wi-Fi, ou encore pour des cas plus complexes comme la création de ponts
réseau ou de liens agrégés (bonding). Nous verrons également les outils de
gestion disponibles (nmcli
, nmtui
), comment éditer les fichiers de
configuration, et comment diagnostiquer les éventuels problèmes de connectivité.
Vous êtes prêt ? Alors passons à l’exploration de NetworkManager.
Vérification des services réseau actifs
Avant de plonger dans la configuration de NetworkManager, il est essentiel de s’assurer que c’est bien lui qui gère le réseau sur votre machine. Dans beaucoup de distributions Linux, ce rôle peut être assuré par d’autres services comme Netplan. Un seul doit être actif pour éviter les conflits.
Pour voir quels services réseau sont actifs sur votre système, vous pouvez utiliser la commande suivante :
if systemctl is-active --quiet NetworkManager; then echo "NetworkManager gère le réseau"elif systemctl is-active --quiet systemd-networkd; then echo "systemd-networkd gère le réseau"elif [ -d /etc/netplan ]; then echo "Netplan est probablement utilisé comme frontend"else echo "Aucun gestionnaire de réseau connu n'est actif"fi
Cette commande vérifie si NetworkManager ou systemd-networkd sont
actifs. Si aucun des deux n’est trouvé, elle vérifie si le répertoire
/etc/netplan
existe, ce qui indiquerait que Netplan est utilisé comme
frontend. Si aucun gestionnaire de réseau n’est actif, elle l’indique aussi.
Exemple de sortie :
NetworkManager gère le réseau
Si vous voyez NetworkManager ou ifupdown dans la sortie, il est recommandé de les désactiver pour éviter les conflits. Vous pouvez le faire avec les commandes suivantes :
sudo systemctl disable --now NetworkManagersudo apt remove ifupdown
Fonctionnement de NetworkManager
NetworkManager est bien plus qu’un simple outil de configuration. Il fonctionne comme un gestionnaire centralisé des connexions réseau, capable d’orchestrer automatiquement les interfaces, de prioriser les réseaux disponibles et de gérer divers types de connectivité. Son architecture modulaire permet une grande flexibilité tout en restant accessible aux utilisateurs, qu’ils soient en ligne de commande ou dans un environnement graphique.
Un démon au cœur du système
Au centre de NetworkManager, on trouve un démon système, appelé simplement
NetworkManager
. Ce démon tourne en arrière-plan et interagit en permanence
avec les interfaces réseau, les configurations système, les événements matériels
(comme le branchement d’un câble Ethernet ou la détection d’un réseau Wi-Fi), et
même des services externes comme les VPN ou DNS.
Il surveille aussi les changements d’état du réseau et peut automatiquement choisir la meilleure connexion disponible, par exemple en basculant d’un Wi-Fi instable vers une connexion Ethernet fiable.
Interfaces disponibles : nmcli, nmtui et GUI
NetworkManager propose plusieurs manières d’interagir avec lui, ce qui le rend très polyvalent :
nmcli
: c’est l’outil en ligne de commande. Très complet, il permet de tout faire : créer, modifier, supprimer, activer ou désactiver des connexions, voir l’état des interfaces, etc. Idéal pour les administrateurs en terminal ou pour les scripts.nmtui
: interface semi-graphique en mode texte. Moins puissante quenmcli
, mais très pratique pour une configuration rapide sans passer par des lignes de commande complexes.- Interface graphique : pour les environnements de bureau (GNOME, KDE…), NetworkManager s’intègre directement via des applets ou des paramètres système. C’est l’interface préférée des utilisateurs non techniques.
Intégration avec D-Bus
L’un des atouts techniques de NetworkManager est son intégration avec D-Bus,
un système de communication interprocessus sous Linux. Grâce à cela, des
applications tierces peuvent interagir avec NetworkManager de manière sécurisée
et centralisée, ce qui facilite par exemple l’intégration des clients VPN ou
des applications de gestion de réseau comme ConnMan
ou Wicd
.
Services annexes : DNS, résolveurs et plus
Par défaut, NetworkManager peut aussi gérer des services annexes liés au réseau :
- DNS : il configure automatiquement les serveurs DNS via des fichiers comme
/etc/resolv.conf
, souvent en coordination avecsystemd-resolved
. - VPN : il intègre des greffons pour divers types de VPN (OpenVPN, WireGuard, IPSec…).
- Hotspot Wi-Fi : il peut transformer une interface Wi-Fi en point d’accès.
En résumé, NetworkManager n’est pas qu’un outil pratique : c’est une brique essentielle de la gestion réseau sur les postes Linux modernes. Dans le prochain chapitre, je vous montre comment vérifier s’il est installé, l’activer et commencer à l’utiliser selon votre distribution.
Installation et activation de NetworkManager
Avant de pouvoir configurer vos connexions réseau avec NetworkManager, il faut s’assurer qu’il est bien installé et actif sur votre système. Sur certaines distributions comme Ubuntu Desktop, Fedora ou Linux Mint, il est présent par défaut. Mais si vous êtes sur un système plus minimaliste ou orienté serveur, comme Debian netinstall ou Arch Linux, vous devrez peut-être l’installer manuellement.
Vérifier si NetworkManager est installé
La première étape consiste à vérifier si le service NetworkManager est disponible sur votre système :
systemctl status NetworkManager
Si le service est installé, vous verrez une ligne contenant Active: active (running)
. Sinon, vous devrez l’installer.
Installer NetworkManager selon la distribution
Voici comment installer NetworkManager sur les distributions les plus courantes :
Ppur Ubuntu / Debian :
sudo apt updatesudo apt install network-manager
Pour Fedora / RHEL / CentOS :
sudo dnf install NetworkManager
Pour Arch Linux / Manjaro :
sudo pacman -S networkmanager
Pour openSUSE :
sudo zypper install NetworkManager
Une fois installé, il est essentiel d’activer et de démarrer le service.
Activer et démarrer le service
Pour vous assurer que NetworkManager démarre automatiquement à chaque démarrage, utilisez :
sudo systemctl enable NetworkManager
Puis démarrez le service immédiatement :
sudo systemctl start NetworkManager
Vérifier le bon fonctionnement
Une fois installé, vous pouvez tester l’état du réseau avec la commande :
nmcli device status
DEVICE TYPE STATE CONNECTIONwlp4s0 wifi disconnected --br0 bridge unmanaged --virbr0 bridge unmanaged --enp2s0 ethernet unmanaged --enp3s0 ethernet unmanaged --lo loopback unmanaged --br-int openvswitch unmanaged --ovs-system openvswitch unmanaged --p2p-dev-wlp4s0 wifi-p2p unmanaged --
Cela vous donnera un aperçu de toutes les interfaces détectées, leur état (connecté, déconnecté), et le type de connexion associée (Ethernet, Wi-Fi, etc.).
Ici vous pouvez voir que l’interface wlp4s0
est déconnectée, tandis que
enp2s0
et enp3s0
sont marquées comme non gérées. Cela signifie que
NetworkManager n’a pas la main sur ces interfaces, probablement parce
qu’elles sont gérées par un autre service comme Netplan. Si vous souhaitez
que NetworkManager prenne le contrôle de ces interfaces, vous devrez les
configurer pour qu’elles soient gérées par lui. Cela se fait généralement en
modifiant les fichiers de configuration de Netplan.
Outils de gestion : nmcli, nmtui et GUI
Pour interagir avec NetworkManager, vous disposez de plusieurs outils,
adaptés à différents contextes : que vous soyez en mode texte, sur un terminal
distant ou dans un environnement graphique. Dans ce chapitre, je vous présente
les trois moyens principaux de gestion : nmcli
, nmtui
et
l’interface graphique intégrée à votre bureau.
nmcli
: la ligne de commande puissante
nmcli
est l’outil officiel en ligne de commande de NetworkManager. C’est
celui que j’utilise le plus souvent, surtout en administration système à
distance ou dans des scripts d’automatisation.
Voici les commandes de base à connaître :
-
Lister les interfaces réseau et leur état :
Terminal window nmcli device status -
Afficher les connexions enregistrées :
Terminal window nmcli connection show -
Afficher les connexions disponibles (Wi-Fi) :
Terminal window nmcli device wifi list -
Activer une interface réseau :
Terminal window nmcli device connect enp2s0 -
Activer une connexion enregistrée :
Terminal window nmcli connection up nom-de-la-connexion -
Supprimer une connexion :
Terminal window nmcli connection delete nom-de-la-connexion
nmtui
: une interface texte simple et intuitive
Pour ceux qui préfèrent une interface semi-graphique, nmtui
est une très bonne
alternative. Elle fonctionne dans le terminal, avec une navigation au clavier
très fluide. Elle permet :
- De configurer de nouvelles connexions,
- De modifier des connexions existantes,
- De choisir une connexion active à utiliser par défaut.
Pour lancer l’interface :
nmtui
C’est particulièrement utile lorsque vous êtes dans une console sans interface graphique, ou pour guider un utilisateur non technique.
Interface graphique : GNOME, KDE, XFCE…
Si vous êtes sur un système de bureau, comme Ubuntu Desktop, Fedora Workstation ou KDE Neon, vous disposez très probablement d’une interface graphique intégrée à votre environnement :
- GNOME : via le menu « Réseaux » dans les paramètres système.
- KDE : via le widget « Connexions réseau » dans la barre des tâches.
- XFCE, MATE, Cinnamon : généralement via le nm-applet dans la zone de notification.
Ces interfaces utilisent toutes NetworkManager en arrière-plan. Vous pouvez y créer des connexions Wi-Fi, configurer des adresses IP statiques, ajouter des VPN, et même gérer les proxys.
Bon à savoir : si vous n’avez pas l’applet dans votre zone de notification, vous pouvez le lancer manuellement :
nm-applet &
Grâce à ces outils, vous pouvez gérer entièrement votre configuration réseau avec NetworkManager, que vous soyez dans un terminal SSH ou sur un bureau graphique. Dans le prochain chapitre, nous allons plonger dans les fichiers de configuration utilisés par NetworkManager.
Fichiers de configuration de NetworkManager
Même si NetworkManager est conçu pour être piloté dynamiquement via nmcli
,
nmtui
ou une interface graphique, il s’appuie en coulisses sur des fichiers
de configuration. Comprendre où ils se trouvent et comment ils fonctionnent
peut vous aider à mieux contrôler le comportement de vos connexions, à corriger
des erreurs ou à déployer une configuration standardisée sur plusieurs machines.
Le fichier principal : NetworkManager.conf
Le fichier global de configuration de NetworkManager est situé ici :
/etc/NetworkManager/NetworkManager.conf
Ce fichier est au format INI, avec des sections comme [main]
,
[ifupdown]
, [keyfile]
… Il permet de définir :
- Le comportement global de NetworkManager,
- Les plugins utilisés (comme
ifupdown
,keyfile
, etc.), - Si certaines interfaces doivent être gérées ou non.
Exemple basique :
[main]plugins=ifupdown,keyfile
[ifupdown]managed=true
Ce réglage permet à NetworkManager de prendre le contrôle des interfaces
définies dans /etc/network/interfaces
, à condition que ce fichier soit encore
utilisé.
Pour appliquer les changements :
sudo systemctl restart NetworkManager
Les connexions : /etc/NetworkManager/system-connections/
C’est ici que sont enregistrées les connexions réseau configurées avec
nmcli
, nmtui
, ou l’interface graphique. Chaque fichier représente une
connexion unique (par exemple : un réseau Wi-Fi, une interface Ethernet avec
IP fixe, un VPN…).
Ces fichiers :
- sont en format INI,
- contiennent tous les paramètres IP, DNS, interface, identifiants Wi-Fi, etc.
- ont des permissions strictes pour des raisons de sécurité.
Exemple de fichier de connexion pour une interface Ethernet statique
(/etc/NetworkManager/system-connections/eth0.nmconnection
) :
[connection]id=eth0uuid=xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxxtype=ethernetinterface-name=eth0autoconnect=true
[ipv4]method=manualaddress1=192.168.1.100/24,192.168.1.1dns=8.8.8.8;8.8.4.4;
Je vous déconselle de modifier ces fichiers manuellement, car NetworkManager
peut les écraser. Utilisez plutôt nmcli
ou nmtui
pour les gérer.
Par défaut, NetworkManager gère aussi les serveurs DNS utilisés par le
système, notamment via un service comme systemd-resolved
.
Le fichier /etc/resolv.conf
peut être un lien symbolique vers un fichier
géré par NetworkManager ou systemd-resolved
:
ls -l /etc/resolv.conf
Vous pouvez configurer le gestionnaire DNS dans NetworkManager.conf
:
[main]dns=systemd-resolved
Ou bien désactiver ce comportement si vous gérez manuellement les DNS.
Configuration réseau avec nmcli
Avec NetworkManager, configurer une interface réseau devient un processus
clair, reproductible, et souvent interactif. Que ce soit pour une machine de
bureau, un portable ou même un hôte en virtualisation, je vais vous montrer
comment gérer différents types de connexions : DHCP, IP statique,
Wi-Fi, bridge, et bonding. Toutes ces actions peuvent être réalisées
avec nmcli
, ce qui rend l’automatisation et les scripts très simples.
Configuration d’une adresse IP dynamique (DHCP)
La méthode la plus courante consiste à laisser un serveur DHCP attribuer une adresse IP automatiquement à l’interface :
nmcli connection add type ethernet ifname enp2s0 con-name enp2s0-dhcp autoconnect yes
Explication :
type ethernet
: type d’interface.ifname enp2s0
: nom de l’interface physique.con-name enp2s0-dhcp
: nom donné à la connexion.autoconnect yes
: la connexion est activée automatiquement au démarrage.
Vous pouvez ensuite l’activer avec :
nmcli connection up enp2s0-dhcp
Configuration d’une adresse IP statique
Pour les serveurs, ou lorsqu’une adresse IP fixe est requise :
nmcli connection add type ethernet ifname enp2s0 con-name enp2s0-static ip4 192.168.1.50/24 gw4 192.168.1.1nmcli connection modify enp2s0-static ipv4.dns "8.8.8.8 1.1.1.1"nmcli connection up enp2s0-static
Ce que fait cette configuration :
- Attribue à l’interface enp2s0 l’adresse IP
192.168.1.50
avec un masque/24
. - Définit la passerelle par défaut.
- Configure deux serveurs DNS.
Configuration d’une connexion Wi-Fi
Pour vous connecter à un réseau Wi-Fi protégé avec mot de passe :
nmcli device wifi listnmcli device wifi connect "MonSSID" password "motdepassewifi"
Cela crée automatiquement une connexion persistante et la connecte immédiatement.
Si le mot de passe est incorrect ou si la connexion échoue, un message d’erreur s’affiche directement dans le terminal.
Configuration d’un bridge réseau
Les bridges sont utiles en virtualisation (KVM, LXD, containers…). Voici comment en créer un :
nmcli connection add type bridge ifname br0 con-name br0nmcli connection add type ethernet ifname enp3s0 master br0nmcli connection modify br0 ipv4.method manual ipv4.addresses 192.168.1.100/24 ipv4.gateway 192.168.1.1 ipv4.dns "8.8.8.8"nmcli connection up br0
Détail :
- On crée un bridge
br0
. - On l’attache à l’interface physique
enp3s0
. - On configure une IP statique sur le bridge.
Configuration d’un bonding (agrégation de liens)
Pour augmenter la résilience ou le débit réseau, on peut agréger deux interfaces :
nmcli connection add type bond ifname bond0 con-name bond0 mode active-backupnmcli connection add type ethernet ifname enp2s0 master bond0nmcli connection add type ethernet ifname enp3s0 master bond0nmcli connection modify bond0 ipv4.method manual ipv4.addresses 192.168.1.60/24 ipv4.gateway 192.168.1.1 ipv4.dns "8.8.8.8"nmcli connection up bond0
- Le mode
active-backup
signifie que seule une interface est utilisée, l’autre prenant le relais en cas de panne.
Débogage et dépannage
Même si NetworkManager est conçu pour automatiser la gestion du réseau, il peut arriver que les choses ne se passent pas comme prévu : une interface qui ne s’active pas, une connexion qui échoue, ou un Wi-Fi capricieux. Je vous propose ici les méthodes que j’utilise personnellement pour identifier et résoudre les problèmes les plus fréquents.
Vérifier l’état des interfaces et des connexions
La première commande à exécuter en cas de souci est :
nmcli device status
Elle affiche un aperçu immédiat de toutes les interfaces (Ethernet, Wi-Fi, etc.) et leur état : connected, disconnected, ou unmanaged. Si une interface est « unmanaged », cela signifie qu’elle n’est pas prise en charge par NetworkManager, souvent à cause d’un conflit de configuration (Netplan, interfaces, etc.).
Pour voir les connexions enregistrées :
nmcli connection show
Et pour connaître l’état actuel d’une connexion en particulier :
nmcli connection show <nom>
Activer ou désactiver une interface
Si une interface refuse de se connecter :
nmcli device disconnect enp2s0nmcli device connect enp2s0
Cela a pour effet de réinitialiser l’interface, ce qui règle souvent les problèmes transitoires.
Rejouer ou relancer une connexion
Si une connexion a été modifiée ou si vous voulez forcer sa reconnexion :
nmcli connection up nom-de-la-connexion
Et pour la désactiver :
nmcli connection down nom-de-la-connexion
Inspecter les journaux système
Pour aller plus loin, utilisez journalctl
pour voir les logs de NetworkManager
:
sudo journalctl -u NetworkManager
Cela permet d’identifier précisément les erreurs : mot de passe Wi-Fi erroné, problème DHCP, interface absente, etc.
Si vous soupçonnez un souci au niveau DNS ou d’un plugin (VPN, résolveur…), ajoutez le filtre :
sudo journalctl -u NetworkManager | grep error
Redémarrer NetworkManager
Quand tout semble bloqué, redémarrer le service peut remettre les choses à plat :
sudo systemctl restart NetworkManager
Vérifier les adresses IP et la passerelle
Une commande simple mais efficace :
ip a
Elle vous montre les interfaces, leurs adresses IP, et leur état.
Pour voir la passerelle par défaut :
ip route
Diagnostiquer le DNS
Si la connexion est active mais que vous ne pouvez pas résoudre un nom de domaine :
-
Vérifiez le fichier
/etc/resolv.conf
:Terminal window cat /etc/resolv.conf -
Testez une requête DNS :
Terminal window dig google.frou
Terminal window nslookup google.fr
Avec ces outils, vous êtes capable de résoudre 90 % des problèmes de connectivité sous Linux avec NetworkManager. La clé est d’y aller étape par étape : interface > connexion > journal > configuration.
Contrôle de connaissances
Avant de clore ce guide, je vous propose un petit examen interactif pour
tester vos acquis sur la configuration réseau avec NetworkManager. Cet
exercice est conçu pour vérifier si vous avez bien compris les concepts abordés
: gestion des interfaces, configuration avec nmcli
, dépannage, intégration
avec Netplan, etc.
Ce quiz fait partie d’une série d’examens pratiques intégrés au site. Il vous présente une série de 10 questions aléatoires spécifiques à NetworkManager, avec un seuil de réussite fixé à 80% pour valider vos connaissances. Vous avez 5 minutes pour y répondre.
Pourquoi ce contrôle ?
Cet contrôle va vous permettre de valider vos connaissances sur le sujet abordé dans le guide. Il comporte des QCM, des questions vrai/faux et des réponses ouvertes à un mot.
🕒 Le chronomètre commence dès que vous cliquez sur Démarrer le test. Vous devrez terminer l’examen avant la fin du temps imparti.
🎯 Pour réussir, vous devez obtenir au moins 80% de bonnes réponses.
💡 Je ne fournis pas directement les réponses aux questions. Cependant, si certaines sont complexes, des pistes d’explication pourront être proposées dans le guide ou après l’examen.
Bonne chance ! 🚀
Conclusion
Vous voilà désormais équipé pour maîtriser NetworkManager dans vos environnements Linux, que ce soit sur un poste de travail, un serveur ou une machine virtuelle. De l’installation à la configuration avancée (Wi-Fi, bridge, bonding), en passant par le dépannage et l’intégration avec Netplan, vous avez tous les outils en main pour gérer efficacement vos interfaces réseau.
N’hésitez pas à revenir à ce guide en cas de doute, ou à expérimenter avec
nmcli
pour approfondir votre pratique. Et surtout, souvenez-vous : un réseau
bien configuré, c’est un système stable et prêt à évoluer.