NetworkManager

De ArchwikiFR
(Redirigé depuis Networkmanager)

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éconnecter:

nmcli con up uuid <uuid>

Afficher la liste des UUIDs:

nmcli con show

Voir la liste des réseau 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;
});