Configurer la connexion automatique au point chaud uniquement lors de la connexion Ethernet

8

Je bascule actuellement entre les deux configurations suivantes quotidiennement:

1) Être connecté à Internet via un réseau WiFi.

2) La connexion de mon ordinateur portable (Ubuntu 16.04) à Internet via une connexion filaire, puis le partage de cette connexion avec mes autres appareils via la fonctionnalité hot-spot intégrée d'Ubuntu.

Pour le moment, le passage de 1 à 2 nécessite que je passe manuellement par la boîte de dialogue "se connecter au réseau caché" dans le gestionnaire de réseau; de même, passer de 2 à 1 nécessite que je me déconnecte manuellement du hotspot et que je me connecte au réseau WiFi. Ce n'est pas beaucoup de travail, mais je le fais assez souvent pour que je souhaite qu'il soit automatisé.

Ce n'est pas aussi simple que d'activer la connexion automatique pour le hotspot, car il remplace alors la fonctionnalité de connexion automatique d'autres réseaux au lieu de me connecter à un réseau WiFi lorsque je ne suis pas connecté via une connexion filaire, et je me retrouve avec un hot-spot mais pas d'Internet. J'ai donc besoin d'une solution qui:

  • me connecte au hot-spot chaque fois que je suis connecté à Internet via une connexion filaire.
  • me déconnecte du hot-spot lorsqu'il n'y a pas de connexion ethernet.
  • me connecte automatiquement à l'un des réseaux avec autoconnect = true chaque fois qu'ils sont disponibles et qu'il n'y a pas de connexion Ethernet.

Une explication complète sur la façon de procéder serait formidable, mais une référence à un bon manuel (non expert) pour la mise en place de ce type de règles serait également très appréciée.

Bavoir perdu
la source
1
Je ne suis pas sûr à 100% de ce que vous faites, je suppose que vous utilisez le gestionnaire de réseau? Il est donc difficile de fournir un manuel. Je voudrais examiner post-uple /etc/network/interfacescontexte, il y a un excellent aperçu ici . post-upappelle simplement des commandes ou des scripts après le lancement d'une interface.
Robert Riedl
On dirait un bon endroit pour commencer. Je vais y jeter un œil, merci.
Dossard perdu

Réponses:

2

Je crois comprendre que lorsque vous branchez le câble Ethernet qui l'emporte sur la connexion wifi et que la connexion wifi tombe automatiquement. De la même manière, la déconnexion du câble Ethernet se connecte automatiquement à votre wifi préféré (à condition bien sûr que vous ayez coché la case pour se connecter automatiquement à ce réseau Wifi dans l'onglet général du gestionnaire de réseau. Testé sur une installation par défaut d'Ubuntu 16.04.3

Donc, si je vous comprends bien, vous souhaitez simplement démarrer automatiquement le service de point d'accès sur votre ordinateur portable lorsque le câble Ethernet est connecté et désactiver le service lorsque le câble Ethernet est déconnecté.

Cela devrait être assez simple à faire avec un script bash et nmcli'nmcli' est un outil réseau puissant qui vous permet de faire des connexions de haut en bas à volonté et d'obtenir des tonnes d'informations pertinentes.

Pour savoir pour quelles connexions vous allez créer des scripts, exécutez simplement nmcli -t monitor| grep primarylorsque vous êtes connecté via wifi et branchez votre câble Ethernet. Les connexions que vous souhaitez faire monter et descendre nmcliseront celles entourées de 's Exemple: 'Connexion filaire 1' la logique est que lorsque 'Connexion' est connectée, faites apparaître le hotspot (vous pouvez trouver nécessaire d'utiliser la commande sleepou d'utiliser le -wcommutateur à effectuer nmclidans votre script attend un certain nombre de secondes pour qu'une commande se termine avant d'émettre la suivante.

Mettre fin à une connexion est aussi simple que le nmcli 'connection name' downfairenmcli 'connection name' up

Remarque: Pour un contrôle total via le script, vous devrez peut-être désactiver l'option de connexion automatique au moins pour votre connexion wifi dans le gestionnaire de réseau, car il tentera de se connecter automatiquement chaque fois qu'il sera disponible et peut interférer avec ce que vous essayez d'accomplir. Extrait de man nmcli:

There may be multiple connections that apply
       to a device, but only one of them can be active on that device at any
       given time. The additional connections can be used to allow quick
       switching between different networks and configurations.

Donc, une fois que vous avez déterminé que votre Ethernet est connecté, vous pouvez émettre les commandes pour mettre la connexion wifi vers le bas Exemple: nmcli connection my-wifi down puis la connexion hotspot vers le haut Exemple: nmcli connection my-hotspot up

Pour en savoir plus sur la façon d'exécuter automatiquement des scripts basés sur une connexion réseau, consultez ceci. Pour plus de détails sur 'nmcli', consultez la page de manuel. Et voici des informations sur la création d'un hotspot.

Elder Geek
la source
Merci pour la référence wiki, en tant que non-utilisateur, je trouve ceux-ci plus faciles à démarrer que les pages de manuel. Vous tiendra au courant
Dossard perdu
Jusqu'ici tout va bien, mais pas complètement satisfait de la partie désactivation de la connexion automatique. Je regarde les pages de manuel de nmcli, mais y aurait-il une commande pour «rechercher les réseaux auto-connectables» lors du débranchement du câble Ethernet?
Dossard perdu
@ Bib-lost Mes tests indiquent que le fait de laisser la connexion sans fil comme auto-connectable signifie qu'elle reste connectée lorsque le câble Ethernet est branché et se reconnecte automatiquement si vous la désactivez manuellement. Vos résultats sont-ils différents des miens?
Elder Geek
Je n'ai pas encore réussi à exécuter des scripts en branchant un câble Ethernet (bien que j'aie suivi les étapes du Wiki) mais juste en testant dans la console, si je commande manuellement de me déconnecter d'une connexion (même si c'est auto-connectable) ) il ne se reconnecte pas.
Dossard perdu
@ Bavoir perdu Intéressant .. Je devrai faire d'autres tests. Voulez-vous dire que si le wifi est configuré pour se connecter automatiquement dans Network Manager et que vous le désactivez, nmcli connection my-wifi downil ne se reconnectera jamais?
Elder Geek
1

Solution qui l'a fait pour moi (trouvée avec l'aide d'Elder Geek).

Je continuais autoconnect sur tous les réseaux que je veux connecter automatiquement, mais hors du point chaud. J'ai ensuite mis le script suivant (avec les bonnes autorisations comme décrit sur cette page Wiki ) dans le dossier/etc/NetworkManager/dispatcher.d

!/bin/bash

interf=$1
state=$2

if [ $interf = "my-ethernet-device" -a $state = "up" ]; then
    nmcli connection up 'my-hotspot'
fi

if [ $interf = "my-ethernet-device" -a $state = "down" ]; then
    nmcli connection down 'my-hotspot'
fi

Jusqu'à présent, cela fonctionne très bien; connexion automatique au hotspot lorsque le câble Ethernet est branché ou même lorsque l'ordinateur démarre ou se réveille avec le câble Ethernet branché. Déconnexion automatique du point chaud chaque fois que le câble Ethernet est débranché, suivi d'une connexion automatique aux réseaux WiFi disponibles.

Bavoir perdu
la source
Je suis content que vous l'ayez trié et que vous ayez trouvé ma réponse utile! À votre santé! En tant que nouveau membre, vous ne le savez peut-être pas .
Elder Geek