Cette antisèche nmcli met le duo scan-puis-connexion tout en haut, parce que c'est pour ça que la plupart des gens atterrissent ici : une machine sans bureau, le Wi-Fi a lâché, et il faut le récupérer. Copiez, remplacez le SSID, vous êtes en ligne. nmcli est le visage en ligne de commande de NetworkManager, le service qui gère déjà vos connexions sur quasiment toutes les distros modernes, Ubuntu, Fedora, Debian avec un bureau. Donc ce n'est pas un outil de plus à installer. Il est déjà là, qui attend. Plus bas : scanner le Wi-Fi proche, rejoindre un réseau, lister les profils enregistrés, activer et couper des connexions, vérifier l'état des périphériques, basculer la radio, définir une IP filaire statique, et lire ou définir le nom d'hôte.
The short answer
Scannez le Wi-Fi proche avec nmcli device wifi list, rejoignez avec
nmcli device wifi connect "SSID" password "PASS", et listez les profils enregistrés avec
nmcli connection show (ajoutez --active pour les actifs). Activez une connexion avec
nmcli connection up "Maison" et down, vérifiez le matériel avec nmcli device status,
basculez la radio avec nmcli radio wifi on, et définissez une IP statique avec
ipv4.addresses plus ipv4.method manual.
Vous êtes sur une machine sans bureau, le Wi-Fi a lâché, et il faut le récupérer. C'est pour ça que la plupart des gens atterrissent ici, donc le duo scan-puis-connexion est tout en haut. Copiez, remplacez le SSID, vous êtes en ligne. nmcli est le visage en ligne de commande de NetworkManager, le service qui gère déjà vos connexions sur quasiment toutes les distros modernes. Ubuntu, Fedora, Debian avec un bureau, ils le font tourner. Donc ce n'est pas un outil de plus à installer. Il est déjà là, qui attend.
Petit repérage, parce que le vocabulaire piège tout le monde. nmcli parle de deux choses différentes : les périphériques (le matériel réel, votre wlan0 ou eth0) et les connexions (des profils enregistrés avec mots de passe, IP, tout le reste). Un périphérique, c'est la radio. Une connexion, c'est la mémoire d'un réseau. Une fois que ce découpage fait tilt, la moitié des commandes arrêtent de paraître arbitraires.
Scanner et se connecter au Wi-Fi (la raison de votre venue)
Deux commandes, et vous êtes de nouveau en ligne. D'abord vous scannez, ensuite vous vous connectez à ce que vous avez vu. nmcli device wifi list déclenche un scan frais et déballe un tableau : SSID, force du signal, type de sécurité, celui sur lequel vous êtes. Puis vous vous connectez par son nom. NetworkManager le retient ensuite, donc au prochain démarrage il se reconnecte tout seul sans que vous tapiez quoi que ce soit.
| Commande | Ce qu'elle fait |
|---|---|
nmcli device wifi list | Scanner et afficher chaque réseau à portée, signal et sécurité compris |
nmcli device wifi connect "SSID" password "PASS" | Rejoindre un réseau et l'enregistrer comme profil pour la suite |
nmcli device wifi connect "SSID" | Se connecter à un réseau ouvert, ou dont le mot de passe est déjà enregistré |
nmcli device wifi rescan | Forcer un nouveau scan quand la liste semble périmée ou vide |
Les guillemets comptent, et voici le piège qui attrape tout le monde au moins une fois. Si votre réseau s'appelle Ma Maison 5G, alors nmcli device wifi connect Ma Maison 5G password ... s'écroule, parce que le shell tend à nmcli trois mots séparés et il n'a aucune idée duquel est le SSID. Encadrez-le : "Ma Maison 5G". Pareil pour un mot de passe avec une espace, un $ ou un ! dedans. Mettez les deux entre guillemets, toujours, et vous évitez toute une catégorie d'échecs déroutants.
Voir vos connexions enregistrées
NetworkManager garde un profil pour chaque réseau que vous avez un jour rejoint, plus vos connexions filaires. nmcli connection show les liste toutes par nom, avec le type et le périphérique auquel chacune est liée. C'est votre inventaire. Quand vous voulez vous reconnecter à quelque chose, c'est ici que vous trouvez le nom exact à donner à la commande suivante.
| Commande | Ce qu'elle fait |
|---|---|
nmcli connection show | Lister chaque profil enregistré par nom, avec son type et le périphérique lié |
nmcli connection show --active | N'afficher que les connexions actives maintenant |
nmcli connection show "Maison" | Déballer tous les réglages d'un profil, IP, DNS, le lot |
Cette dernière forme est un mur de sortie, des centaines de lignes, mais c'est là que vit la vérité quand une connexion fait n'importe quoi. Vous voulez savoir quel serveur DNS un profil distribue vraiment, ou s'il est en DHCP ou en statique ? Tout est dedans. Je le passe au grep la plupart du temps plutôt que de tout lire, la vie est courte.
Activer et couper des connexions
Une fois qu'un profil existe, vous ne rescannez pas et ne retapez pas un mot de passe pour vous en servir. Vous l'activez juste par son nom. up active une connexion enregistrée, down la désactive. C'est la manière propre de sauter entre, disons, un profil filaire et un profil Wi-Fi, ou de relancer une connexion partie de travers sans redémarrer toute la machine.
| Commande | Ce qu'elle fait |
|---|---|
nmcli connection up "Maison" | Activer une connexion enregistrée par son nom |
nmcli connection down "Maison" | La désactiver, sans supprimer le profil |
nmcli device disconnect wlan0 | Déconnecter un périphérique et l'empêcher de se reconnecter tout seul pour l'instant |
Il y a une vraie différence entre connection down et device disconnect, et ça mord. Coupez une connexion (down) et NetworkManager peut très bien en activer une autre en autoconnexion à sa place, donc le périphérique reste en ligne sur autre chose. device disconnect, c'est le « stop, tu restes coupé » plus ferme pour ce bout de matériel précis. Quand vous voulez vraiment l'interface éteinte, déconnectez le périphérique.
Vérifier l'état des périphériques
Avant de déboguer quoi que ce soit, regardez ce que votre matériel fabrique. nmcli device status, c'est la vue d'ensemble une ligne par périphérique : chaque interface, son type, si elle est connectée, déconnectée ou non gérée, et sur quelle connexion elle roule. C'est la première chose que je lance quand un truc cloche, parce que la moitié du temps la réponse est juste là. Le périphérique dit unmanaged, ou il reste disconnected, et vous savez maintenant où viser.
| Commande | Ce qu'elle fait |
|---|---|
nmcli device status | Une ligne par périphérique : type, état, et connexion active |
nmcli device show wlan0 | Détail poussé sur un périphérique : IP, MAC, passerelle, DNS |
nmcli general status | L'état global de NetworkManager et le test de connectivité |
Si un périphérique apparaît comme unmanaged, NetworkManager garde délibérément ses mains loin de lui, en général parce qu'autre chose (genre une config statique dans /etc/network/interfaces, ou netplan qui pointe ailleurs) l'a réclamé en premier. Ce n'est pas un bug à combattre à l'aveugle. Ça veut dire que deux systèmes croient tous les deux posséder l'interface, et c'est à vous d'en choisir un.
Mon avis : sur un serveur sans écran, nmcli bat l'édition à la main des fichiers de config. Avant, j'éditais
/etc/netplan/*.yamlou le vieux fichierinterfacesà la main, puis je priais aureboot. Parfois la machine revenait. Parfois elle revenait sans réseau et j'étais coincé à rouler jusqu'au datacenter, ou pire, à mendier un accès KVM.nmclia changé mon rapport à tout ça. Il valide au fur et à mesure, applique un changement en direct, et si un profil est faux vous le corrigez sur place, par la connexion sur laquelle vous êtes encore. Pas de roulette russe au redémarrage. Le bémol honnête : si votre distro gère le réseau avec netplan tout court ou systemd-networkd et que NetworkManager n'est même pas aux commandes, alorsnmclin'est pas votre outil et le forcer ne fait qu'ajouter un deuxième cuisinier dans la cuisine. Vérifiez qui conduit d'abord, avecnmcli device status, puis engagez-vous sur un seul. Je m'appuie peut-être dessus plus que de raison, mais des redémarrages silencieux m'ont brûlé assez de fois pour que je fasse confiance à l'application en direct.
Basculer la radio Wi-Fi
Parfois rien n'apparaît dans un scan parce que la radio elle-même est coupée, tuée par logiciel ou juste désactivée. nmcli radio wifi contrôle cet interrupteur directement, sans chasse au bouton dans une interface graphique. Quand device wifi list revient vide et que vous jurez qu'il y a un réseau là, c'est la première chose à vérifier.
| Commande | Ce qu'elle fait |
|---|---|
nmcli radio wifi on | Allumer la radio Wi-Fi |
nmcli radio wifi off | Couper la radio, chaque connexion Wi-Fi tombe |
nmcli radio wifi | Juste demander si elle est actuellement activée |
Une chose que ceci ne contournera pas : un interrupteur matériel. Si votre portable a un bouton Wi-Fi physique ou une combinaison Fn qui l'a coupé, nmcli radio wifi on ne peut pas annuler ça par logiciel. La commande signale la radio toujours bloquée et n'y peut rien, c'est le levier. Basculez l'interrupteur physique, puis réessayez.
Ajouter un profil filaire et définir une IP statique
Les serveurs veulent en général une adresse fixe, pas ce que le DHCP a envie de distribuer. Avec nmcli vous créez un profil, puis vous le modifiez pour utiliser une adresse IPv4 manuelle. Le deux-temps paraît un peu verbeux, mais chaque morceau est explicite, ce qui sur une machine distante est exactement ce que vous voulez. Rien qui se passe par magie.
| Commande | Ce qu'elle fait |
|---|---|
nmcli connection add type ethernet con-name "Filaire" ifname eth0 | Créer un nouveau profil filaire lié à eth0 |
nmcli connection modify "Filaire" ipv4.addresses 192.168.1.50/24 | Définir l'adresse statique et son sous-réseau |
nmcli connection modify "Filaire" ipv4.gateway 192.168.1.1 ipv4.dns 1.1.1.1 | Ajouter la passerelle et le DNS |
nmcli connection modify "Filaire" ipv4.method manual | Passer du DHCP au manuel, pour qu'il arrête d'attribuer tout seul |
nmcli connection up "Filaire" | Appliquer le tout en activant le profil |
L'étape que tout le monde oublie, c'est ipv4.method manual. Vous pouvez poser une superbe adresse statique avec ipv4.addresses, mais si la méthode est encore en auto, le DHCP continue de vous écraser et vous restez à vous demander pourquoi votre IP « statique » dérive. Posez les adresses, mettez la méthode en manuel, puis activez. Pour revenir au DHCP plus tard, c'est juste ipv4.method auto. Ou plutôt, mettez la méthode en auto et videz les anciennes adresses si vous voulez du vraiment propre.
Voir ou définir le nom d'hôte
NetworkManager gère aussi le nom d'hôte du système, ce qui surprend un peu la première fois. nmcli general hostname sans argument affiche celui en cours. Donnez-lui un nom et il le définit, de manière persistante, sans danse hostnamectl à part.
| Commande | Ce qu'elle fait |
|---|---|
nmcli general hostname | Afficher le nom d'hôte actuel du système |
nmcli general hostname web-01 | Définir le nom d'hôte à web-01, de manière persistante |
Petit truc, vraiment utile quand vous montez une machine neuve et que trois terminaux affichent tous localhost sans que vous sachiez lequel est lequel. Nommez-les et les invites arrêtent de vous mentir.
Et après
Voilà le jeu de travail. Scanner, se connecter, lister les profils, up et down, l'état des périphériques, la bascule radio, une IP filaire statique, et le nom d'hôte. Honnêtement ça couvre presque tout ce que je touche avec nmcli en une semaine normale, et la rare bizarrerie que je vais chercher dans man nmcli comme tout le monde.
Sources
Questions fréquentes
Comment se connecter au Wi-Fi depuis le terminal Linux ?
Scannez d'abord avec nmcli device wifi list pour voir ce qu'il y a autour, puis lancez nmcli device wifi connect "SSID" password "PASS" avec votre nom de réseau et votre clé. NetworkManager enregistre le profil, donc il se reconnecte seul au prochain démarrage. Gardez les guillemets autour du SSID, surtout si le nom contient une espace, sinon nmcli ne sait pas où finit le nom du réseau.
Comment lister les connexions réseau enregistrées avec nmcli ?
Lancez nmcli connection show pour lister chaque profil enregistré par nom, avec son type et le périphérique auquel il est lié. Ajoutez --active pour ne voir que les connexions actives maintenant. Pour en inspecter une en entier, nmcli connection show "Maison" déballe tous ses réglages, méthode IP et DNS compris, c'est là qu'on regarde quand une connexion fait n'importe quoi.
Comment définir une adresse IP statique avec nmcli ?
Modifiez le profil : nmcli connection modify "Filaire" ipv4.addresses 192.168.1.50/24, ajoutez la passerelle et le DNS, puis l'étape qu'on oublie, nmcli connection modify "Filaire" ipv4.method manual. Sans passer la méthode en manuel, le DHCP continue d'écraser votre adresse. Terminez par nmcli connection up "Filaire" pour appliquer. Pour revenir en arrière, mettez ipv4.method auto.
Pourquoi nmcli ne se connecte-t-il pas à mon réseau Wi-Fi ?
Vérifiez d'abord la radio avec nmcli radio wifi, car un interrupteur logiciel ou matériel stoppe tout scan. Si le SSID a des espaces, encadrez-le de guillemets sinon nmcli lit les mots séparément et échoue. Lancez aussi nmcli device status : si le périphérique affiche unmanaged, autre chose possède l'interface et NetworkManager reste à l'écart.
Quelle est la différence entre un périphérique et une connexion dans nmcli ?
Un périphérique, c'est le matériel, votre radio wlan0 ou eth0. Une connexion, c'est un profil enregistré qui contient le mot de passe d'un réseau, ses réglages IP et le DNS. Vous scannez et rejoignez avec les commandes device, puis vous activez le profil enregistré plus tard avec connection up. Un périphérique peut avoir plusieurs profils de connexion, et un seul est actif à la fois dessus.