NetworkManager

De ArchwikiFR
Révision datée du 19 août 2018 à 12:20 par Syll (discussion | contributions) (Coquille)
(diff) ← Version précédente | Voir la version actuelle (diff) | Version suivante → (diff)

NetworkManager est un outil de gestion du réseau. Il est aussi utile pour les liaisons filaires que sans fil, il supporte les modems et certains types de VPN.

Installation

pacman -S networkmanager

Pour un environnement GTK, vous pouvez installer l'applet :

pacman -S network-manager-applet

Afin de sauvegarder les détails d'authentification :

pacman -S gnome-keyring

Pour KDE:

pacman -S kdeplasma-addons 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

Important : Pour éviter des problèmes de conflit, pensez à bien désactiver tout autre service réseau en action (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.

Note : Le service 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

Attention : Ceci est un contournement, par défaut, l'utilisateur d'une session locale et active (systemd-logind) a le droit de modifier la configuration.

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 :

Fichier: /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;
});