{{tag>dev netadmin sysadmin réseau connexion }}
====== Gérer les connexions via nmcli et le service NetworkManager ======
**nmcli** signifie **N**etwork **M**anager **C**ommand **L**ine **I**nterface, c'est le client en ligne de commande qui permet de dialoguer avec le service (daemon) **NetworkManager** pour gérer le paramétrage des interfaces réseaux de l'hôte.
Pour vérifier l'état du service :
systemclt status NetworkManager
''nmcli'' fonctionne en espace utilisateur, il est particulièrement utile sur des postes nomades amenés à changer régulièrement de réseaux.
Avec ''nmcli'', l'utilisateur peut définir des "profils de connexion" qu'il peut ensuite associer aux périphériques réseaux.
===== Lister les périphériques et profils =====
Afficher les périphériques réseaux et leur statut
nmcli device status
Afficher les profils de connexion existants :
nmcli connection show
===== Modifier un profil =====
Les modifications des profils peuvent être faites en immédiat via les paramètres de la ligne de commande ou en utilisant le mode interactif :
# Modification directe d'un paramètre du profil "home"
nmcli connection modify home ipv4.ignore-auto-routes no
# Modification en immédiat de plusieurs paramètres
nmcli connection modify home ipv4.ignore-auto-dns no ipv4.dns-search "home.internal"
# Modification interactive du profil "home"
nmcli connection edit home
Depuis le prompt on peut afficher l'aide (''help'') afficher les descriptions des propriétés (''describe''), leurs valeurs (''print'') et les modifier avec la syntaxe ''conf.propertie value''. On sauvegardera enfin les modification apportées (''save'')
Si le profil modifié était en cours d'utilisation, recharger le profil pour que les modifications apportées soient prises en compte :
# Recharge le profil "home-wifi" sur le périphérique réseau "wlp0s20f3"
nmcli connection up home-wifi ifname wlp0s20f3
==== Renommer un profil ====
La commande ci dessous renomme le profil "home" en "home-wifi" :
nmcli connection modify id home con-name home-wifi
# Equivalent
nmcli connection modify id home connection.id home-wifi
==== Ajouter des serveurs DNS ====
On peut vouloir compléter la liste des serveurs DNS fournie par le DHCP par exemple :
# Ajoute les DNS Google et Cloudflare au profil "home"
nmcli connection modify home +ipv4.dns "8.8.8.8 1.1.1.1"
==== Remplacer les serveurs DNS ====
Si on souhaite définir/remplacer les serveur DNS du profil "home":
nmcli connection modify home ipv4.ignore-auto-dns yes
nmcli connection modify home-wifi ipv4.dns "8.8.8.8 1.1.1.1"
==== Configurer des routes statiques ====
Pour définir des routes statiques sur le profil "home" :
# Atteindre le réseau 192.168.10.0/24 via la passerelle 10.10.10.1
nmcli connection modify home +ipv4.routes "192.168.10.0/24 10.10.10.1"
===== Les types de profils =====
:TODO_DOCUPDATE:
===== Ajouter des profils =====
:TODO_DOCUPDATE:
===== Connexions Wifi =====
==== État de l'interface ====
Vérifier l'état de l'interface matérielle :
nmcli radio wifi
==== Activer / désactiver l'interface ====
Pour activer l'interface matérielle Wifi
# Activer l'interface wifi
nmcli radio wifi on
# Désactiver l'interface wifi
nmcli radio wifi off
==== Lister les réseaux à portée ====
nmcli device wifi rescan
nmcli device wifi list
# Equivalent
nmcli device wifi list --rescan yes
# N'afficher que les SSID
nmcli --fields SSID device wifi
==== Connexion à un réseau ====
nmcli --ask dev wifi connect aNetworkSSID
==== Vérifier l'état de la connexion ====
Pour vérifier l'état des interfaces et leur connexion associée :
nmcli device status
# équivalent
nmcli device
==== Déconnecter l'interface ====
Déconnecter l'interface nommée ''wifi0'' :
nmcli device down wifi0
===== Références =====
* https://fr.linux-console.net/?p=16039
* https://www.linuxtricks.fr/wiki/networkmanager-se-connecter-en-wi-fi-en-cli-avec-nmcli
* https://sysreseau.net/networkmanager-nmcli-nmtui/
* [[https://docs.redhat.com/fr/documentation/red_hat_enterprise_linux/7/html/networking_guide/sec-using_the_networkmanager_command_line_tool_nmcli|Usages de nmcli (docs.redhat.com)]]