NetworkManager (Français)
NetworkManager est un outil de gestion du réseau. Il est aussi utile pour les liaisons filaires que sans fil, il prends en charge les modems et certains types de VPN.
Installation
Pour la base installez networkmanager.
Pour un environnement GTK, vous pouvez installer l'applet network-manager-applet et pour sauvegarder les détails d'authentification gnome-keyring
Pour KDE, installez kdeplasma-addons et plasma-nm.
Ligne de commande
La commande nmcli
permet de contrôler NetworkManager en ligne de commande. https://www.mankier.com/1/nmcli
Se connecter à un réseau wifi :
nmcli dev wifi connect <name> password <password>
Se connecter à un réseau wifi sur l'interface wlp4s0 :
nmcli dev wifi connect <name> password <password> iface wlp4s0 [profile name]
Déconnecter l'interface enp0s5 :
nmcli dev disconnect iface enp0s5
Reconnecter une interface signalée comme déconnectée :
nmcli con up uuid <uuid>
Afficher la liste des UUIDs :
nmcli con show
Voir la liste des réseaux et leur état :
nmcli dev
Couper le wifi :
nmcli r wifi off
Configuration
dhcpcd.service
, netctl.service
, wicd.service
) avant d'utiliser NetworkManager sur une interface réseau donnée.Rajouter le service NetworkManager.service
:
systemctl enable NetworkManager
Certains services nécessitent d'avoir une connexion réseau pour démarrer. Selon votre besoin, vous pouvez utiliser le dispatcher de NetworkManager pour les lancer ou rajouter le service NetworkManager-wait-online.service
qui permet d'attendre une connexion avant de poursuivre le démarrage.
NetworkManager-wait-online.service
bloque le démarrage jusqu'à avoir une connexion ou pendant une temporisation de 30s.Pour utiliser le dispatcher, il faut créer des scripts dans le répertoire /etc/NetworkManager/dispatcher.d
, le fichier peut avoir un préfixe pour donner un ordre de lancement, exemple : 10-netfs
, 20-ntpd
Le script en lui même prend 2 arguments, l'un pour le nom de l'interface, l'autre pour le statut, voici un exemple:
#!/bin/sh INTERFACE=$1 # Le nom de l'interface STATUS=$2 # Le statut case "$STATUS" in 'up') exec systemctl start [service];; 'down') exec systemctl stop [service];; esac
Afin que les scripts s'exécutent, il est nécessaire d'activer le dispatcher:
systemctl enable NetworkManager-dispatcher
Astuces
Autoriser un utilisateur à modifier la configuration de NetworkManager
Ajouter l'utilisateur au groupe network
:
usermod -aG network USER
Ajouter une règle Polkit en créant le fichier /etc/polkit-1/rules.d/10-networkmanager.rules
:
/etc/polkit-1/rules.d/10-networkmanager.rules
polkit.addRule (function (a,s) { if (a.id.indexOf ('org.freedesktop.NetworkManager.') == 0 && s.isInGroup ('network')) return polkit.Result.YES; });