01 — nmcli basics
Commandes de base nmcli
N1.1
Voir l'état du réseau et des interfaces
▶
# vue générale de toutes les interfaces
nmcli device status
DEVICE TYPE STATE CONNECTION
eth0 ethernet connected Wired connection 1
wlan0 wifi connected MonWifi
lo loopback unmanaged --
# détails complets d'une interface
nmcli device show eth0
# voir toutes les connexions configurées
nmcli connection show
# voir une connexion spécifique
nmcli connection show "Wired connection 1"
# état global du NetworkManager
nmcli general status
N1.2
Activer / Désactiver une interface
▶
# activer une connexion
sudo nmcli connection up "Wired connection 1"
sudo nmcli device connect eth0
# désactiver
sudo nmcli connection down "Wired connection 1"
sudo nmcli device disconnect eth0
# activer / désactiver le réseau entièrement
nmcli networking on
nmcli networking off
02 — wifi
Gérer le WiFi avec nmcli
N2.1
Scanner et se connecter à un réseau WiFi
▶
# activer / désactiver le WiFi
nmcli radio wifi on
nmcli radio wifi off
# scanner les réseaux disponibles
nmcli device wifi list
# se connecter à un réseau (crée le profil automatiquement)
sudo nmcli device wifi connect "NomDuReseau" password "monMotDePasse"
# se connecter à un réseau caché
sudo nmcli device wifi connect "SSID" password "mdp" hidden yes
# se connecter à un réseau ouvert (sans mdp)
sudo nmcli device wifi connect "NomDuReseau"
# déconnecter
sudo nmcli device disconnect wlan0
N2.2
Créer un hotspot WiFi (point d'accès)
▶
# créer un hotspot
sudo nmcli device wifi hotspot \
ifname wlan0 \
ssid "MonHotspot" \
password "motdepasse123"
# voir le mot de passe d'un hotspot actif
sudo nmcli device wifi show-password
03 — profils de connexion
Créer et configurer des profils
N3.1
Créer un profil Ethernet avec IP statique
▶
# créer un profil Ethernet avec IP statique
sudo nmcli connection add \
type ethernet \
con-name "Mon-Profil-Statique" \
ifname eth0 \
ipv4.method manual \
ipv4.addresses "192.168.1.100/24" \
ipv4.gateway "192.168.1.1" \
ipv4.dns "8.8.8.8,1.1.1.1"
# activer le profil
sudo nmcli connection up "Mon-Profil-Statique"
N3.2
Modifier un profil existant
▶
# passer d'IP statique à DHCP
sudo nmcli connection modify "Mon-Profil-Statique" \
ipv4.method auto \
ipv4.addresses "" \
ipv4.gateway "" \
ipv4.dns ""
# changer uniquement le DNS
sudo nmcli connection modify "Wired connection 1" \
ipv4.dns "1.1.1.1,8.8.8.8"
# changer l'IP statique
sudo nmcli connection modify "Mon-Profil-Statique" \
ipv4.addresses "192.168.1.150/24"
# appliquer les changements
sudo nmcli connection up "Mon-Profil-Statique"
# supprimer un profil
sudo nmcli connection delete "Mon-Profil-Statique"
N3.3
Profil auto-connect et priorité
▶
# activer/désactiver la connexion automatique
sudo nmcli connection modify "MonWifi" connection.autoconnect yes
sudo nmcli connection modify "MonWifi" connection.autoconnect no
# définir la priorité (plus haut = préféré)
sudo nmcli connection modify "MonWifi" connection.autoconnect-priority 10
# rendre le profil disponible pour tous les utilisateurs
sudo nmcli connection modify "MonWifi" connection.permissions ""
04 — commandes ip
ip — l'outil bas niveau
N4.1
Adresses, routes et interfaces
▶
ip vs nmcli
ip modifie la config réseau en mémoire — perdu au redémarrage. nmcli écrit dans des profils persistants. En production, toujours utiliser nmcli.── Adresses ──
ip address show # voir toutes les adresses
ip addr show eth0 # interface spécifique
ip addr add 192.168.1.50/24 dev eth0 # ajouter une IP (temporaire)
ip addr del 192.168.1.50/24 dev eth0 # supprimer
── Interfaces ──
ip link show # état de toutes les interfaces
ip link set eth0 up # activer
ip link set eth0 down # désactiver
── Routes ──
ip route show # table de routage
ip route add default via 192.168.1.1 # gateway par défaut
ip route add 10.0.0.0/8 via 192.168.1.254 # route statique
ip route del default # supprimer la route par défaut
05 — nmtui
Interface texte NetworkManager
N5.1
nmtui — quand l'utiliser ?
▶
nmtui est une interface texte interactive (TUI) pour NetworkManager. Utile quand on est en SSH sans GUI ou quand on préfère une interface visuelle à la ligne de commande.
# lancer nmtui
sudo nmtui
# ou directement sur une action
sudo nmtui edit "Ma connexion" # modifier un profil
sudo nmtui connect # se connecter/déconnecter
sudo nmtui hostname # changer le hostname
nmtui
Interface interactive avec menus. Idéal pour configurer sans connaître tous les paramètres par cœur.
nmcli
Ligne de commande scriptable. Idéal pour l'automatisation et les scripts de déploiement.
06 — diagnostics
Déboguer une connexion réseau
N6.1
Séquence de diagnostic réseau
▶
# étape 1 — interface UP ?
ip link show eth0
# étape 2 — IP configurée ?
ip addr show eth0
# étape 3 — gateway accessible ?
ping -c 3 192.168.1.1
# étape 4 — DNS fonctionne ?
ping -c 3 8.8.8.8 # IP directe
ping -c 3 google.com # via DNS
# étape 5 — table de routage
ip route show
# étape 6 — ports et connexions actives
ss -tuln # ports en écoute
ss -tunp # avec le process associé
# étape 7 — logs NetworkManager
sudo journalctl -u NetworkManager -n 50
N6.2
Résoudre les problèmes DNS
▶
# tester la résolution DNS
nslookup google.com
dig google.com
host google.com
# voir le DNS configuré
cat /etc/resolv.conf
nmcli device show eth0 | grep DNS
# forcer un DNS différent pour un test
nslookup google.com 1.1.1.1
# changer le DNS d'une connexion
sudo nmcli connection modify "Wired connection 1" \
ipv4.dns "1.1.1.1 8.8.8.8" ipv4.ignore-auto-dns yes
sudo nmcli connection up "Wired connection 1"
# vider le cache DNS
sudo systemd-resolve --flush-caches
sudo resolvectl flush-caches
N6.3
Changer le hostname
▶
# voir le hostname actuel
hostnamectl
# changer le hostname
sudo hostnamectl set-hostname nouveau-nom
# ou via nmtui
sudo nmtui hostname
# mettre à jour /etc/hosts si nécessaire
sudo nano /etc/hosts
127.0.1.1 nouveau-nom