netctl (Français)
netctl est un gestionnaire de réseau en ligne de commande basé sur des profils et un projet Arch.
Installation
Les #Unités spéciales de systemd de netctl utilisées dans l'automatisation des connexions requièrent quelques dépendances supplémentaires ; consultez cette section pour plus d'informations.
D'autres dépendances optionnelles sont présentées dans le tableau ci-dessous.
Fonctionnalité | Dépendance |
---|---|
WPA | wpa_supplicant |
DHCP | ou dhclient |
wifi-menu | |
PPPoE | |
systemctl --type=service
pour vous assurer qu'aucun autre service réseau n'est en cours d'exécution avant d'activer un profil/service netctl.Configuration
netctl utilise des profils pour gérer les connexions réseau et différents modes de fonctionnement pour lancer les profils automatiquement ou manuellement à la demande.
Les fichiers de profil netctl sont stockés dans et des fichiers de configuration d'exemple sont disponibles dans /etc/netctl/examples/
.
Pour utiliser un profil d'exemple, il suffit de le copier de /etc/netctl/examples/
vers et de le configurer en fonction de vos besoins ; voir les #Exemples de profils de base ci-dessous. Le premier paramètre dont vous avez besoin pour créer un profil est l' réseau, consultez Network configuration#Network interfaces pour plus de détails.
Voir pour une liste complète des options de profil.
Utilisation
Voir pour une liste complète des commandes netctl.
Démarrer un profil
Une fois que vous avez créé votre profil, essayez d'établir une connexion, où profil est seulement le nom du profil, pas le chemin complet :
# netctl start profil
Si la commande ci-dessus échoue, exécutez journalctl -xn
en tant que root et pour obtenir une explication plus approfondie de l'échec.
Activation d'un profil
Un profil peut être activé pour démarrer au démarrage en utilisant :
# netctl enable profil
Cela créera et activera un service systemd qui démarrera au démarrage de l'ordinateur. Les modifications apportées au fichier de profil ne se propageront pas automatiquement au fichier de service. Après de telles modifications, il est nécessaire de réactiver le profil :
# netctl reenable profil
Après avoir activé un profil, celui-ci sera lancé au prochain démarrage. Évidemment, cela ne peut réussir que si le câble réseau pour une connexion filaire est branché, ou si le point d'accès sans fil utilisé dans un profil est à portée respectivement.
Si vous devez changer fréquemment de profil (par exemple, si vous voyagez avec un ordinateur portable), utilisez #Unités spéciales de systemd au lieu d'activer un profil.
Unités spéciales de systemd
netctl fournit des services spéciaux systemd pour la commutation automatique des profils pour les connexions filaires et sans fil. Voir pour une liste complète des unités spéciales de systemd.
Filaire
Installez le paquet et démarrez/activez l'unité systemd . Les profils DHCP seront démarrés/arrêtés lorsque le câble réseau est branché/débranché.
- L'unité préférera les profils qui utilisent DHCP.
- Pour démarrer automatiquement un profil d'IP statique, l'option
ExcludeAuto=no
doit être définie dans celui-ci. - Pour donner la priorité à un profil d'IP statique par rapport aux profils DHCP, vous pouvez définir l'option , qui est supérieure à la priorité par défaut accordée aux profils DHCP, à savoir .
Sans fil
Démarrez/activez l'unité systemd . Les profils netctl seront démarrés/arrêtés automatiquement lorsque vous passez de la portée d'un réseau à la portée d'un autre réseau (itinérance).
- Les profils doivent utiliser ou pour fonctionner avec netctl-auto plutôt que .
- Si vous voulez qu'un profil sans fil ne soit pas lancé automatiquement par , vous devez explicitement ajouter à ce profil.
- Vous pouvez utiliser dans la section WPAConfigSection (voir
/etc/netctl/examples/wireless-wpa-configsection
) pour définir la priorité d'un profil lorsque plusieurs points d'accès sans fil sont disponibles. Les chiffres les plus grands indiquent une priorité plus élevée.
Notez que interface n'est pas littéral, mais doit être substitué par le nom de l'interface de votre périphérique, par exemple . Voir pour plus de détails.
Il est possible de contrôler manuellement une interface autrement gérée par netctl-auto sans avoir à arrêter netctl-auto.service
. Ceci est fait en utilisant la commande netctl-auto. Pour une liste complète des actions disponibles, voir .
Trucs et astuces
Filaire
Pour une connexion DHCP, seule l'interface doit être configurée après avoir copié le profil exemple dans .
Par exemple :
Pour une configuration IP statique, copiez le profil d'exemple dans et modifiez , , et DNS
) selon les besoins.
Par exemple :
Prenez soin d'inclure la notation de sous-réseau de . Elle équivaut à un masque de réseau de 255.255.255.0
) et sans elle, le profil ne pourra pas démarrer. Voir également CIDR notation. Pour aliaser plus d'une adresse IP par un ensemble de NIC . Pour aliaser plus d'un ensemble d'adresses de serveurs DNS, définissez par exemple .
Sans fil (WPA-PSK)
Ce qui suit s'applique aux connexions sans fil standard utilisant une clé pré-partagée (WPA-PSK).
Obfusquer la phrase de passe sans fil
Vous pouvez également suivre l'étape suivante pour obscurcir la phrase de passe sans fil (wifi-menu le fait automatiquement lorsque vous utilisez le paramètre ) :
Les utilisateurs qui ne souhaitent pas que la phrase de passe de leur réseau sans fil soit stockée en texte clair ont la possibilité de stocker la clé pré-partagée 256 bits correspondante, qui est calculée à partir de la phrase de passe et du SSID à l'aide d'algorithmes standard.
Calculez votre clé pré-partagée de 256 bits en utilisant wpa_passphrase :
La clé pré-partagée (psk) doit maintenant remplacer la phrase de passe en texte clair de la variable Key
dans le profil.
Utilisation d'une interface graphique expérimentale
Si vous voulez une interface utilisateur graphique pour gérer netctl et vos connexions et que vous n'avez pas peur des paquets non officiels très expérimentaux, il existe quelques options disponibles. fournit une interface graphique basée sur Qt, un daemon DBus et un widget KDE. utilise comme interface graphique, et est une extension du shell gnome.
Il existe également une application qui affiche des notifications de bureau sur les changements de profil et qui présente une icône dans la barre d'état système : netctl-trayAUR.
Bonding
Consultez Netctl#Bonding : cette section nécessite une mise à jour car elle reposait sur un outil qui n'est plus fourni par le noyau.
Utilisation de n'importe quelle interface
Dans certains cas, il peut être souhaitable d'autoriser un profil à utiliser n'importe quelle interface du système. Un exemple courant d'utilisation est l'utilisation d'une image disque commune sur plusieurs machines avec un matériel différent (ceci est particulièrement utile si elles sont sans affichage). Si vous utilisez le schéma de nommage du noyau, et que votre machine ne possède qu'une seule interface Ethernet, vous pouvez probablement deviner que eth0 est la bonne interface. En revanche, si vous utilisez le système d'attribution de noms d'udev Predictable Network Interface Names, les noms seront attribués en fonction du matériel spécifique lui-même (par exemple enp1s0), plutôt que dans le simple ordre de détection du matériel (par exemple eth0, eth1). Cela signifie qu'un profil netctl peut fonctionner sur une machine et pas sur une autre, car elles ont toutes des noms d'interface différents.
Une solution simple et rapide consiste à utiliser le répertoire . Choisissez un nom pour votre alias d'interface ( dans cet exemple), et écrivez ce qui suit dans un fichier portant ce nom (en vous assurant qu'il est exécutable).
Créez ensuite un profil qui utilise l'interface. Faites particulièrement attention à la directive . Le reste n'est fourni qu'à titre d'exemple.
Lorsque le profil wired
est lancé, toute machine utilisant les deux fichiers ci-dessus fera automatiquement apparaître et configurer la première interface Ethernet trouvée sur le système, quel que soit le nom qu'udev lui a attribué. Notez que ce n'est pas la manière la plus robuste de configurer des interfaces. Si vous utilisez plusieurs interfaces, netctl peut essayer de leur attribuer la même interface, ce qui provoquera probablement une interruption de la connectivité. Si vous n'êtes pas gêné par une solution plus compliquée, est probablement plus fiable.
Utilisation des hooks
netctl prend en charge les hooks dans et les hooks par interface dans . Vous pouvez définir toute option dans un hook/interface que vous pouvez dans un profil. Cela inclut surtout et .
Lorsqu'un profil est lu, netctl extrait tous les scripts exécutables du répertoire , puis il lit le fichier de profil de la connexion et enfin il extrait un script exécutable portant le nom de l'interface utilisée dans le profil du répertoire . Par conséquent, les déclarations dans un script d'interface remplacent les déclarations dans le profil, qui remplacent les déclarations dans les hooks.
Les variables $INTERFACE
et sont disponibles dans hooks/interfaces uniquement lorsque vous utilisez .
Définir le client DHCP par défaut
Pour définir ou modifier le client DHCP utilisé pour tous les profils :
/etc/netctl/hooks/dhcp
#!/bin/sh DHCPClient='dhclient'
N'oubliez pas de rendre le fichier exécutable.
On peut également le spécifier pour une interface réseau spécifique en créant un fichier exécutable avec la ligne suivante :
DHCPClient='dhclient'
Section WPAConfig minimale
Comme indiqué dans , la variable est un tableau de lignes de configuration passées à wpa_supplicant. Ainsi, une WPAConfigSection minimale contiendrait :
Description='A wireless connection using a custom network block configuration' Interface=wlan0 Connection=wireless Security=wpa-configsection IP=dhcp WPAConfigSection=( 'ssid="University"' 'psk="very secret passphrase"' )
/etc/resolv.conf
Si vous utilisez des options dans votre profil, netctl appelle resolvconf pour écraser resolv.conf.
Dépannage
Job for netctl@wlan(...).service failed
Certaines personnes rencontrent un problème lorsqu'elles se connectent à un réseau avec netctl, par exemple :
# netctl start wlan0-ssid
Job for netctl@wlan0\x2ssid.service failed. See 'systemctl status netctl@wlan0\x2ssid.service' and 'journalctl -xn' for details.
Lorsque vous regardez le journal en exécutant journalctl -xn
en tant que root, l'un ou l'autre des éléments suivants s'affiche :
1. Si votre périphérique ( dans ce cas) est en marche :
network[2322] : L'interface du profil réseau 'wlan0-ssid' est déjà en service.
La mise hors service de l'interface devrait résoudre le problème :
# ip link set wlan0 down
Puis réessayez :
# netctl start wlan0-ssid
2. Si l'erreur persiste, réessayez après avoir ajouté l'option :
Enregistrez-la et essayez de vous connecter avec le profil :
# netctl start wlan0-ssid
dhcpcd: ipv4_addroute: File exists
Sur certains systèmes, la combinaison de dhcpcd et de netctl provoque des problèmes de délai d'attente lors de la reprise, en particulier si vous avez changé de réseau entre-temps. netctl signalera que vous êtes connecté avec succès mais que vous recevez toujours des problèmes de délai d'attente. Dans ce cas, l'ancienne route par défaut existe toujours et n'est pas renouvelée. Une solution pour éviter ce comportement erroné est de passer à dhclient comme client DHCP par défaut. Vous trouverez plus d'informations sur ce problème ici.
Problèmes de délai d'attente DHCP
Si vous rencontrez des problèmes de délai d'attente lors de la demande de baux via DHCP, vous pouvez définir une valeur de délai d'attente supérieure aux 30 secondes par défaut de netctl. Créez un fichier dans ou , ajoutez-y TimeoutDHCP=40
pour un timeout de 40 secondes et rendez le fichier exécutable.
Débogage de dhcpcd
Si dhcpcd ne parvient pas à obtenir une adresse, ajoutez l'option à puis exécutez en tant que root pour afficher les messages de débogage qui peuvent indiquer, par exemple, que l'adresse IP offerte par le serveur est rejetée par le client après avoir détecté que l'adresse IP est déjà utilisée.
Problèmes de délais de connexion
Si vous rencontrez des problèmes de délai d'attente qui ne sont pas liés au DHCP (sur une connexion ethernet statique par exemple), et que vous rencontrez des erreurs similaires à celles qui suivent au démarrage de votre profil :
Ensuite, vous devez augmenter les délais d'attente pour la porteuse et l'activation en ajoutant et TimeoutCarrier=
à votre fichier de profil :
N'oubliez pas de réactiver votre profil :
# netctl reenable profil
Problèmes avec netctl-auto sur la reprise
Parfois, netctl-auto ne parvient pas à se reconnecter lorsque le système reprend après une suspension, une hibernation ou un sommeil hybride. Une solution facile est de redémarrer le service pour netctl-auto. Ceci peut être automatisé avec un service supplémentaire comme le suivant () :
Pour activer ce service pour votre carte sans fil, par exemple, activez en tant que root. Remplacez par l'interface réseau requise.
Si le périphérique n'est pas encore en cours d'exécution sur la reprise lorsque l'unité est démarrée, cela échouera. Cela peut être corrigé en ajoutant la dépendance suivante dans la ligne After :
netctl-auto ne débloque pas automatiquement une carte sans fil pour utiliser une interface
De nombreux ordinateurs portables ont un bouton matériel (ou un interrupteur) pour désactiver la carte sans fil, cependant, la carte peut également être bloquée par le noyau. Ceci peut être géré par rfkill.
Si vous souhaitez que netctl-auto débloque automatiquement votre carte sans fil pour vous connecter à un réseau particulier, définissez l'option RFKill=++auto++
pour la connexion sans fil de votre choix, comme spécifié dans .
RTNETLINK répond : Le fichier existe (avec plusieurs NICs)
Cette réponse est très trompeuse, elle signifie en réalité que vous avez assigné une passerelle par défaut dans un fichier de contrôle netctl antérieur. Quand netctl démarre la n-ième NIC et va définir sa route locale, il échoue parce qu'il y a déjà une route par défaut de n-1.
Supprimez-la et tout fonctionne, sauf que vous n'avez plus de route par défaut et que vous ne pouvez pas accéder à des éléments tels qu'Internet. ne fonctionne pas car il est exécuté pour chaque carte réseau.
Une solution possible est de créer un nouveau service. Remplacez "FIRST_INTERFACE" et "SECOND_INTERFACE" par vos noms d'interface, et remplacez "192.168.xxx.yyy" par votre passerelle par défaut.
Problèmes avec eduroam et autres connexions MSCHAPv2
Consultez wpa_supplicant#Problems with eduroam and other MSCHAPv2 connections.
Avertissements du journal pour les profils utilisant les directives .include
Les profils utilisant toujours les anciennes directives .include
de systemd produiront des avertissements de journal, par exemple :
systemd[1]: /etc/systemd/system/netctl@<profile>.service:1: .include directives are deprecated, and support for them will be removed in a future version of systemd. Please use drop-in files instead.
Voir pour plus de détails.
L'exécution de
netctl reenable profile
mettra à jour le profil au nouveau format des fichiers de substitution.
Les hooks ne fonctionnent pas
Si vous avez plusieurs hooks dans , des variables comme et ne seront exécutées que depuis un seul fichier. Pour résoudre ce problème, définissez les variables comme suit :
Ceci ajoutera vos commandes à exécuter à celles déjà définies.
Voir aussi
- Annonce initiale sur la liste de diffusion
- Sujet d'annonce officiel
- Annonce officielle dans les actualités