Netctl pour la gestion du reseau avec archlinux

Netctl pour la gestion du reseau avec archlinux

linux réseau

Netctl est un outil en ligne de commande pour la gestion et la configuration réseau. Il permet de configurer sa connexion wifi et ethernet. Cette note n'a pas vocation à être exhaustive ni même remplacer la documentation officielle. Elle a pour but de synthétiser les commandes dont je me sert le plus souvent.

Netctl est un script (batch ?) qui s'appuie sur systemctl pour démarrer, arrêter les services réseaux en s’appuyant sur des profils; profils étant de simples fichiers textes décrivant le type de connexion souhaité, la carte réseau qui est concernée, l'ipv4/ipv6...

Sommaire:

Dans cette note nous allons voir :

  1. la configuration d'une connexion filaire classique ethernet
  2. la connexion au wifi
  3. l'utilisation de la commande Netctl
  4. Connexion automatique du profil
  5. les problèmes courants que j'ai rencontrés

1. Configurer sa connexion ethernet

Tout d'abord il faut savoir que netctl enregistre tous les profils de connexion dans le répertoire /etc/netctl. Le sous répertoire /etc/netctl/examples contient des ... examples de profil. Pour ma part j'ai juste copié le profil dans le répertoire /etc/netctl/ Il existe trois profils ethernet.

  • ethernet-custom: permet de voir tous les champs à notre disposition pour paramétrer notre connexion
  • ethernet-dhcp: c'est le profil que j'utilise qui est le plus simple dans la plupart des configurations à savoir l'obtention de l'adresse ip par le serveur DHCP et le nom de l'interface réseau concerné
  • ethernet-static: même chose que la précédente mais pour une ip statique.

Ma box s'occupe de distribuer les ip sur le réseau local, je me contente donc du profil ethernet-dhcp dans mon cas.

On fait un ip a (ou ip link)pour trouver le nom de nos interfaces. Voici ce que ça donne pour moi : commande-ip-a

Mon interface ethernet porte le nom enp0s31f6, elle est pour l'instant éteinte (DOWN) Mon interface wifi porte le nom de wlan0 et elle est actuellement attribué à l'adresse IP 10.17.3.246 de mon réseau local.

Je commence par la connexion filaire ethernet et pour cela je copie le fichier d'exemple /etc/netctl/example/ethernet-dhcp dans mon répertoire /etc/netctl/ avec un nom de fichier qui m'est simple à repérer comme par exemple en préfixant le fichier par le nom de l'interface : cp /etc/netctl/example/ethernet-dhcp /etc/netctl/enp0s31f6-ethernet-dhcp

On édite le fichier pour mettre le bon nom de mon interface soit changer la valeur de la ligne Interface : netctl-ethernet-dhcp

Nous faisons attention à mettre les bonnes permission sur le fichier pour que seul l'utilisateur root ait les droits de lecture et d'écriture :

chmod 600 enp0s31f6-ethernet-dhcp

On peut maintenant démarrer notre profil ethernet avec la commande

sudo netctl start enp0s31f6-ethernet-dhcp

S'assurer d'avoir branché le câble ethernet sur le port RJ45 bien entendu :-) On vérifie que l'on a bien une connexion sortante en faisant un petit ping quelconque : ping 1.1.1.1. Netctl se charge tout seul de démarrer l'interface .

2. Configurer sa connexion wifi

Nous allons faire simple en utilisant la commande wifi-menu, un autre super script qui tourne avec netctl. wifi-menu va nous détecter tous les réseaux disponibles mais surtout elle va créer automatiquement le fichier de profil dans notre répertoire /etc/netctl et nous connectera au réseau dans la foulée. trop bien ;-)

sudo wifi-menu -o -o pour masquer le mot de passe avec des astérisque pour ne pas qu'il soit visible quand on le tape et de le stocker sous forme d'hexadécimal. Sinon il apparaîtra en claire dans le fichier de profil ce qui est un peut moyen. Tout dépend de l'accès que vous avez à votre ordinateur.

ecran-wifi-menu-archlinux-netctl

3. Utilisation de la commande Netctl

La page de manuel (man netctl) nous donne les options pour utiliser la commande. Nous avons déjà utilisé la commande pour démarrer notre connexion ethernet avec start. D'autres commandes sont disponibles pour démarrer/arrêter, activer/désactiver pour le démarrage automatique de la connexion choisie, de lister les connexions déjà enregistrées et un astérisque montrant la connexion active.

Pour moi netctl list affichera la liste de tous les profils que j'ai sur mon ordinateur :

linux-command-netctl-list

3.1. Démarrer et arrêter un profil réseau

Pour démarrer une connexion :

sudo netctl start enp0s31f6-ethernet-dhcp

Pour arrêter une connexion :

sudo netctl stop enp0s31f6-ethernet-dhcp

3.2. Activer/désactiver un profil réseau

Il faut savoir que netctl va ajouter tout seul comme un grand une connexion systemctl et ajouter le service automatique. Plus besoin dans démarrer la connexion à chaque fois qu'on allume son ordinateur. Cela fonctionne pour toutes les connexions que ce soit l'ethernet ou le wifi. les commandes sont simples :

Pour activer une connexion: sudo netctl enable enp0s31f6-ethernet-dhcp ou sudo netctl enable wlan0
Pour désactiver une connexion: sudo netctl disable enp0s31f6-ethernet-dhcp ou sudo netctl disable wlan0

4. Connexion automatique à notre profil

Je n'invente rien. Tout se trouve dans la documentation officielle dans le wiki de ArchLinux

Connexion à l'interface ethernet (filaire)

On utilise pour cela ifplugd (source : netctl ifplugd archlinux wiki ) Jusque là nous avons tapé les commandes netctl à la main pour initier notre connexion. Mais ce serait quand plus pratique d'avoir une connexion automatiquement dès qu'on branche notre cable RJ45 et nous attribuer notre IP. netctl fournit donc un script qui va lire notre configuration netctl.
On installe le paquet ifplugd :

sudo pacman -S ifplugd

Et on démarre et on active le service :

sudo systemctl start netctl-ifplugd@enp0s31f6.service
sudo systemctl enable netctl-ifplugd@enp0s31f6.service

Bien sur vous devez remplacer enp0s31f6 par le nom de votre interface (les copier/coller c'est pas bien ;-) ).

Connexion à l'interface Wifi

Actuellement je n'utilise aucun script pour le wifi. je ne souhaite pas de connexion automatique pour le wifi. Je préfère aujourd'hui le faire à la main. J'ai mis dans mon bashrc des alias pour me simplifier les choses et cela me convient bien.

5. Les problèmes courants que j'ai rencontrés

Previous Post Next Post