NetworkGuide

Antisèche nmcli : gérer le Wi-Fi depuis le terminal

Sur cette page
  1. Scanner et se connecter au Wi-Fi (la raison de votre venue)
  2. Voir vos connexions enregistrées
  3. Activer et couper des connexions
  4. Vérifier l'état des périphériques
  5. Basculer la radio Wi-Fi
  6. Ajouter un profil filaire et définir une IP statique
  7. Voir ou définir le nom d'hôte
  8. Et après
  9. Sources

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.

2 cmdsscanner, puis connecter
8 groupeschaque tâche couverte
0outil de plus à installer
Carte réponse : scanner le Wi-Fi avec nmcli device wifi list, rejoindre avec nmcli device wifi connect SSID password, afficher les connexions enregistrées, et définir une IP statique avec ipv4.method manual.
Chaque commande que vous dégainez, regroupée par ce que vous cherchez vraiment à faire. PNG

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.

Terminal montrant nmcli device wifi list qui scanne les réseaux, puis nmcli device wifi connect qui en rejoint un par son SSID et enregistre le profil.
Deux commandes et vous êtes de nouveau en ligne : scannez l'air, puis connectez-vous par nom. PNG

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.

CommandeCe qu'elle fait
nmcli device wifi listScanner 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 rescanForcer 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.

CommandeCe qu'elle fait
nmcli connection showLister chaque profil enregistré par nom, avec son type et le périphérique lié
nmcli connection show --activeN'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.

CommandeCe 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 wlan0Dé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.

CommandeCe qu'elle fait
nmcli device statusUne ligne par périphérique : type, état, et connexion active
nmcli device show wlan0Détail poussé sur un périphérique : IP, MAC, passerelle, DNS
nmcli general statusL'é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/*.yaml ou le vieux fichier interfaces à la main, puis je priais au reboot. 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. nmcli a 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, alors nmcli n'est pas votre outil et le forcer ne fait qu'ajouter un deuxième cuisinier dans la cuisine. Vérifiez qui conduit d'abord, avec nmcli 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.

CommandeCe qu'elle fait
nmcli radio wifi onAllumer la radio Wi-Fi
nmcli radio wifi offCouper la radio, chaque connexion Wi-Fi tombe
nmcli radio wifiJuste 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.

CommandeCe qu'elle fait
nmcli connection add type ethernet con-name "Filaire" ifname eth0Créer un nouveau profil filaire lié à eth0
nmcli connection modify "Filaire" ipv4.addresses 192.168.1.50/24Définir l'adresse statique et son sous-réseau
nmcli connection modify "Filaire" ipv4.gateway 192.168.1.1 ipv4.dns 1.1.1.1Ajouter la passerelle et le DNS
nmcli connection modify "Filaire" ipv4.method manualPasser 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.

CommandeCe qu'elle fait
nmcli general hostnameAfficher le nom d'hôte actuel du système
nmcli general hostname web-01Dé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.