ConnMan – ArchWiki – Bien choisir son serveur d impression
ConnMan est un gestionnaire de réseau en ligne de commande conçu pour être utilisé avec des périphériques intégrés et des temps de résolution rapides. Il est modulaire via une architecture de plug-in, mais prend en charge les protocoles DHCP et NTP natifs.[1]
Sommaire
Installation
Installez le Connman paquet. wpa_supplicant, bluez, et openvpn sont des dépendances facultatives requises pour les fonctionnalités Wi-Fi, Bluetooth et VPN, respectivement.
Avant d'activer connman.service
, assurez-vous que toute configuration de réseau existante est désactivée.
ConnMan vient avec connmanctl (1) CLI, il existe divers # frontaux disponibles.
Parties avant
- cmst – Qt GUI pour ConnMan.
- https://github.com/andrew-bibb/cmst || cmst
- connman-ncurses – Interface utilisateur ncurses simple pour ConnMan; toutes les fonctionnalités de connman ne sont pas implémentées, mais utilisables (avec X ou depuis un terminal sans X), voir le wiki.
- https://github.com/eurogiciel-oss/connman-json-client || connman-ncurses-gitAUR
- ConnMan-UI – Applet client GTK3.
- https://github.com/tbursztyka/connman-ui || connman-ui-gitAUR
- connman_dmenu – Client / frontend pour dmenu.
- https://github.com/taylorchu/connman_dmenu || connman_dmenu-gitAUR
- Econnman – Applet du panneau de bureau Illumination.
- http://www.enlightenment.org || econnmanAUR
- LXQt-Connman-Applet – Applet du panneau de bureau LXQt.
- https://github.com/lxqt/lxqt-connman-applet || lxqt-connman-appletAUR
- connman-gtk – client GTK.
- https://github.com/jgke/connman-gtk || connman-gtkAUR
- gnome-extension-connman – extension Gnome3 pour connman; il ne contient que quelques fonctionnalités sans installer connman-gtk.
- https://github.com/jgke/gnome-extension-connman || https://extensions.gnome.org/extension/981/connman-extension/
Usage
ConnMan vient avec le connmanctl
interface de ligne de commande, voir connmanctl (1).
Si vous ne fournissez aucune commande connmanctl
commence comme un shell interactif.
ConnMan gère automatiquement les connexions câblées.
Wifi
Activer et désactiver le wifi
Pour vérifier si le wifi est activé, vous pouvez exécuter technologies connmanctl
et vérifiez la ligne qui dit Actionné: Vrai / Faux
.
Pour activer le wifi, vous pouvez exécuter connmanctl activer le wifi
ou si vous avez besoin de le désactiver, vous pouvez exécuter connmanctl désactiver le wifi
.
D'autres moyens d'activer le wifi pourraient inclure l'utilisation du Fn
touches sur l'ordinateur portable pour l'allumer ou en cours d'exécution ensemble de liens ip
.
Connexion à un point d'accès ouvert
Pour scanner le réseau connmanctl
accepte des noms simples appelés les technologies. Pour rechercher des réseaux Wi-Fi à proximité:
$ connmanctl scan wifi
Pour répertorier les réseaux disponibles trouvés après une analyse (exemple de sortie):
services $ connmanctl
* AO MyNetwork wifi_dc85de828967_68756773616d_managed_psk AutreNET wifi_dc85de828967_38303944616e69656c73_managed_psk AnotherOne wifi_dc85de828967_3257495245363836_managed_wep FourthNetwork wifi_dc85de828967_4d7572706879_managed_wep AnOpenNetwork wifi_dc85de828967_4d6568657272696e_managed_none
Pour vous connecter à un réseau ouvert, utilisez le deuxième champ commençant par Wifi_
:
$ connmanctl connect wifi_dc85de828967_4d6568657272696e_managed_none
Pointe: Les noms de réseau peuvent être complétés par des tabulations.
Vous devriez maintenant être connecté au réseau. Vérifier en utilisant état connu
ou adresse ip
.
Connexion à un point d'accès protégé
Pour les points d'accès protégés, vous devrez fournir des informations au démon ConnMan, au minimum un mot de passe ou une phrase secrète.
Les commandes de cette section montrent comment exécuter connmanctl
en mode interactif, il est nécessaire pour exécuter le logiciel agent
commander. Pour démarrer le mode interactif, tapez simplement:
$ connmanctl
Vous procédez alors presque comme ci-dessus, commencez par rechercher tout type de réseau Wi-Fi. les technologies:
connmanctl> scan wifi
Pour lister les services:
connmanctl> services
Vous devez maintenant enregistrer l'agent pour traiter les demandes des utilisateurs. La commande est:
connmanctl> agent sur
Vous devez maintenant vous connecter à l'un des services protégés. Pour ce faire facilement, utilisez simplement la complétion de tabulation pour le service wifi_. Si vous vous connectiez à OtherNET dans l'exemple ci-dessus, vous devez taper:
connmanctl> connect wifi_dc85de828967_38303944616e69656c73_managed_psk
L'agent vous demandera ensuite de fournir les informations nécessaires au démon pour établir la connexion. le
Les informations demandées varient en fonction du type de réseau auquel vous vous connectez. L'agent
imprimera également des données supplémentaires sur les informations dont il a besoin, comme indiqué dans l'exemple ci-dessous.
Requête de l'agent wifi_dc85de828967_38303944616e69656c73_managed_psk Passphrase = [ Type=psk, Requirement=mandatory ] Passphrase?
Fournissez les informations demandées, dans cet exemple la phrase secrète, puis tapez:
connmanctl> quitter
Si les informations que vous avez fournies sont correctes, vous devriez maintenant être connecté au point d'accès protégé.
Utiliser iwd au lieu de wpa_supplicant
ConnMan peut utiliser iwd se connecter à des réseaux sans fil. Le paquet disponible dans la communauté supporte déjà l’utilisation de iwd pour se connecter à des réseaux sans fil. Comme Connman va commencer wpa_supplicant quand il le trouve, il est recommandé de désinstaller wpa_supplicant.
Actuellement le -je
-option de iwd semble causer que l'interface WiFi est cachée de Connman.
Créez les deux fichiers de service suivants qui devraient causer Connman utiliser iwd se connecter à des réseaux sans fil, peu importe si wpa_supplicant est installé.
/etc/systemd/system/iwd.service
[Unit] Description = Démon sans fil Internet (IWD) Avant = network.target Wants = network.target [Service] ExecStart = / usr / lib / iwd / iwd [Install] Alias = multi-user.target.wants / iwd.service
/etc/systemd/system/connman_iwd.service
[Unit] Description = service de connexion DefaultDependencies = false Conflicts = shutdown.target RequiertMountsFor = / var / lib / connman Après = dbus.service network-pre.target systemd-sysusers.service iwd.service Before = network.target multi-user.target shutdown.target Wants = network.target Requiert = iwd.service [Service] Type = dbus BusName = net.connman Redémarrer = en cas d'échec ExecStart = / usr / bin / connmand --wifi = iwd_agent -n StandardOutput = null CapabilityBoundingSet = CAP_NET_ADMIN CAP_NET_BIND_SERVICE CAP_NET_RAW CAP_SYS_TIME CAP_SYS_MODULE ProtectHome = true ProtectSystem = true [Install] WantedBy = multi-user.target
Puis activez / démarrez le connman_iwd
un service.
Avantage d'utiliser iwd au lieu de wpa_supplicant est, que les temps de ping semblent être beaucoup plus cohérents et la connexion semble plus fiable.
Paramètres
Les paramètres et les profils sont automatiquement créés pour les réseaux auxquels l'utilisateur se connecte souvent. Ils contiennent des champs pour le mot de passe, l'essid et d'autres informations. Les paramètres de profil sont stockés dans des répertoires sous / var / lib / connman /
par leur nom de service. Pour afficher tous les profils de réseau, exécutez cette commande à partir du shell root:
# cat / var / lib / connman / * / settings
Remarque: Les paramètres VPN peuvent être trouvés dans / var / lib / connman-vpn /
.
Les technologies
Diverses interfaces matérielles sont appelées Les technologies par ConnMan.
Pour lister disponible les technologies courir:
technologies $ connmanctl
Pour obtenir uniquement les types par leur nom, on peut utiliser cette doublure:
$ connmanctl technologies | awk '/ Type / print $ NF'
Remarque: Le champ Type = nom_technique
fournit le type de technologie utilisé avec connmanctl
commandes
Pour interagir avec eux, il faut se référer à la technologie par type. Les technologies peut être activé / désactivé avec:
$ connmanctl enable type_technologie
et:
$ connmanctl désactiver type_technologie
Par exemple, pour désactiver le wifi:
$ connmanctl désactiver le wifi
rfkill
ou bluetoothctl
pour (dé) bloquer les périphériques, mais les clés matérielles peuvent toujours fonctionner.[2] Toujours utiliser connmanctl enable | disable
Trucs et astuces
Évitez de changer le nom d'hôte
Par défaut, ConnMan modifie le nom d’hôte transitoire (voir hostnamectl (1)) sur une base par réseau. Cela peut créer des problèmes avec l’autorité X: si ConnMan modifie votre nom d’hôte par un nom autre que celui utilisé pour générer le cookie magique xauth, il deviendra impossible de créer de nouvelles fenêtres. Les symptômes sont des messages d'erreur du type "Aucun protocole spécifié" et "Impossible d'ouvrir display:: 0.0". La réinitialisation manuelle du nom d'hôte résout ce problème, mais une solution permanente consiste à empêcher ConnMan de modifier votre nom d'hôte en premier lieu. Ceci peut être accompli en ajoutant ce qui suit à /etc/connman/main.conf
:
[General] AllowHostnameUpdates = false
Assurez-vous de redémarrer le connman.service
après avoir changé ce fichier.
À des fins de test, il est recommandé de regarder le journal systemd et de brancher le câble réseau plusieurs fois pour voir l'action.
Préférez Ethernet au sans fil
Par défaut, ConnMan ne préfère pas Ethernet par rapport à la technologie sans fil, ce qui peut l’obliger à choisir de conserver un réseau sans fil lent même lorsque la technologie Ethernet est disponible. Vous pouvez dire à connman de préférer ethernet en ajoutant ce qui suit à /etc/connman/main.conf
:
[General] Technologies préférées = Ethernet, wifi
Connexion exclusive
ConnMan vous permet d'être connecté à la fois à Ethernet et sans fil. Cela peut être utile car cela permet aux programmes qui établissent une connexion via Wi-Fi de rester connectés même après leur connexion à Ethernet. Mais certaines personnes préfèrent n'avoir qu'une seule connexion à la fois active et sans ambiguïté. Ce comportement peut être activé en ajoutant ce qui suit à /etc/connman/main.conf
:
[General] SingleConnectedTechnology = true
Connexion à eduroam (802.1X)
Les réseaux WPA2 Enterprise tels que eduroam nécessitent un fichier de configuration séparé avant la connexion au réseau. Par exemple, créez /var/lib/connman/eduroam.config
:
eduroam.config
[service_eduroam] Type = wifi Nom = eduroam EAP = peap CACertFile = / etc / ssl / certs /certificat.cer Phase2 =MSCHAPV2 Identité =utilisateur@foo.edu AnonymousIdentity =anonymous@foo.edu Passphrase =mot de passe
Redémarrer wpa_supplicant.service
et connman.service
se connecter au nouveau réseau.
- Les options sont sensibles à la casse, par exemple.
EAP = ttls
au lieu deEAP = TTLS
.[3] - Consultez l’institution hébergeant le réseau eduroam pour connaître divers paramètres tels que le nom d’utilisateur, le mot de passe,
PAE
,Phase2output
et des certificats nécessaires.
Pour plus d'informations, voir connman-service.config (5) et Configuration du réseau sans fil # eduroam.
Eviter les conflits avec le serveur DNS local
Si vous utilisez un serveur DNS local, des problèmes de liaison au port 53 (TCP et / ou UDP) apparaîtront probablement après l'installation de Connman. En effet, Connman inclut son propre proxy DNS, qui tente également de se connecter à ces ports. Si vous voyez des messages de journal de BIND ou de dnsmasq, comme
"nommé[529]: impossible d'écouter sur le socket UDP: adresse utilisée "
cela pourrait être le problème. Pour vérifier quelle application écoute sur les ports, vous pouvez exécuter ss -tulpn
en tant que racine.
Pour résoudre ce problème, vous pouvez démarrer avec les options -r
ou --nodnsproxy
en remplaçant le fichier de service systemd. Créer le dossier /etc/systemd/system/connman.service.d/
et ajouter le fichier disable_dns_proxy.conf
:
/etc/systemd/system/connman.service.d/disable_dns_proxy.conf
[Service] ExecStart = ExecStart = / usr / bin / connmand -n --nodnsproxy
Assurez-vous de recharger le démon systemd et de redémarrer le connman.service
et votre proxy DNS, après avoir ajouté ce fichier.
Interfaces de la liste noire
Si quelque chose comme Docker crée des interfaces virtuelles, Connman peut tenter de se connecter à l’une d’elles au lieu de votre carte physique si la connexion est interrompue. Un moyen simple d'éviter cela consiste à mettre en liste noire les interfaces que vous ne souhaitez pas utiliser. Connman sera par défaut une liste noire des interfaces commençant par vmnet
, vboxnet
, virbr
et sib
, donc ceux-ci doivent être inclus dans la nouvelle liste noire aussi.
La liste noire des noms d’interface est également utile pour éviter une situation de concurrence critique dans laquelle connman peut accéder à eth #
ou wlan #
avant que systemd / udev puisse le modifier pour utiliser des noms d'interface réseau prévisibles tels que enp4s0
. Mettre en liste noire les préfixes d'interface conventionnels (et imprévisibles) oblige connman à attendre qu'ils soient renommés.
S'il n'existe pas déjà, créez /etc/connman/main.conf
:
[General] NetworkInterfaceBlacklist = vmnet, vboxnet, virbr, ifb, menu fixe, veth, eth, wlan
Une fois que connman.service
a été redémarré cela masquera également tous les veth #######
interfaces d'interfaces graphiques telles que Econnman.
Dépannage
Erreur / net / connman / technologie / wifi: non pris en charge
Connman ne prend pas en charge la recherche de réseaux WiFi avec iwd, pour le moment, cette fonctionnalité est disponible avec wpa_supplicant
juste voir [4]). Pour avoir le support de Wifi Scanning depuis connman, installez wpa_supplicant puis redémarrer connman.service
après vous arrêtez iwd.service
.
Erreur / net / connman / technologie / wifi: pas de transporteur
Vous avez activé votre wifi avec:
$ connmanctl enable wifi
Si l'analyse sans fil entraîne l'erreur ci-dessus, cela peut être dû à un bogue non résolu.[5]
Si le problème persiste même si les conditions préalables sans fil sont remplies, réessayez après avoir désactivé les gestionnaires de réseau concurrents et redémarré.
Cela peut aussi simplement être causé par le blocage de l'interface sans fil par rfkill, ce qui peut se produire après le redémarrage de wpa_supplicant. Utilisation liste de rfkill
vérifier.
"Non enregistré" ou "Méthode" Connect "avec signature … n'existe pas"
Lors de l’émission de commandes, vous pouvez rencontrer des erreurs telles que:
De connmanctl
rapide:
connmanctl> connectErreur / net / connman / service / : La méthode "Connect" avec la signature "" sur l'interface "net.connman.Service" n'existe pas
De la coquille:
# connmanctl connectErreur / net / connman / service / : Non enregistré
Ces erreurs sont générées car l'agent n'est pas en cours d'exécution. Démarrer l'agent à partir d'un connmanctl
invite avec agent sur
, et essayez à nouveau.
Erreur Impossible de définir le nom d'hôte / nom de domaine
connman peut échouer dans la définition du nom d'hôte ou du nom de domaine en raison de l'absence de CAP_SYS_ADMIN.
Vous devrez éditer connman.service (et d’autres comme connman-vpn.service, etc …) pour modifier la ligne CapabilityBoundingSet afin d’ajouter CAP_SYS_ADMIN.
Voir Erreur EPERM des pages de manuel sethostname (2) / setdomainname (2) pour plus de détails.
Itinéraire inconnu sur la connexion
Une entrée de journal pour un itinéraire inconnu apparaît chaque fois qu'une connexion est établie. Par exemple:
... connmand[473]: wlp2s0 add route 82.165.8.211 gw 10.20.30.4 scope 0connmand[473]: wlp2s0 del route 82.165.8.211 gw 10.20.30.4 scope 0 ...
Il est probable que Connman effectue une vérification de la connectivité avec l'hôte ipv4.connman.net (qui se résout en adresse IP). 82.165.8.211
au courant).[6] Consultez le fichier LISEZMOI de Connman pour plus d’informations sur les raisons pour lesquelles et quel – sauf pour l’IP de connexion – il transmet.
Ce comportement peut être évité en ajoutant ce qui suit à /etc/connman/main.conf
:
[General] EnableOnlineCheck = false
Ce paramètre fera que le périphérique par défaut ne basculera pas sur ONLINE, mais restera dans l'état READY.[7] Cependant, la connexion sera toujours fonctionnelle.
La connexion elle-même est également fonctionnelle (sauf derrière un portail captif) si la vérification est bloquée par une règle de pare-feu:
# ip6tables -A SORTIE -d ipv6.connman.net -j REJECT # iptables -A OUTPUT -d ipv4.connman.net, ipv6.connman.net -j REJECT
Le fichier / proc / net / pnp n'existe pas
Si vous voyez ceci dans votre journal des erreurs, cela est dû à un bogue dans connman [8] et peut être ignoré. Rapport d'erreur
Voir également
Commentaires
Laisser un commentaire