Imposta autoconnect su hot-spot solo quando la connessione ethernet

7

Attualmente passo a turno tra i seguenti due setup:

1) Essere connessi a Internet tramite una rete WiFi.

2) Avere il mio laptop (Ubuntu 16.04) connesso a Internet tramite una connessione cablata, quindi condividere questa connessione con i miei altri dispositivi attraverso la funzionalità hot-spot integrata di Ubuntu.

Al momento, passare da 1 a 2 richiede di passare manualmente alla finestra di dialogo "Connetti a rete nascosta" nel Network Manager; Analogamente, il passaggio da 2 a 1 richiede la disconnessione manuale dall'hotspot e la connessione alla rete WiFi. Non è molto lavoro, ma lo faccio abbastanza spesso che mi piacerebbe che fosse automatizzato.

Non è così semplice come abilitare autoconnect per l'hotspot, poiché in quel momento sostituisce la funzionalità di autoconnect di altre reti invece di connettermi a una rete WiFi quando non sono connesso tramite una connessione cablata, e finisco con un caldo -spot ma senza internet. Quindi ho bisogno di una soluzione che:

  • mi connette all'hot-spot ogni volta che sono connesso a Internet tramite una connessione cablata.
  • mi disconnette dall'hot-spot quando non c'è una connessione ethernet.
  • mi consente di connettermi automaticamente a una delle reti con autoconnect = true ogni volta che sono disponibili e non esiste una connessione Ethernet.

Una spiegazione completa su come farlo sarebbe ottima, ma anche un riferimento a un buon manuale (non esperto) per l'impostazione di questo tipo di regole sarebbe molto apprezzato.

    
posta Bib-lost 04.03.2018 - 13:57

2 risposte

1

A mio avviso, quando si collega il cavo Ethernet che supera la connessione wifi e la connessione wifi si interrompe automaticamente. In modo simile, disconnettendo il cavo Ethernet si connette automaticamente al Wi-Fi preferito (a patto però che si abbia la casella selezionata per connettersi automaticamente a quella rete Wifi nella scheda generale del gestore di rete. Testato su un'installazione predefinita di Ubuntu 16.04.3

Quindi, se sto capendo correttamente, devi solo avviare automaticamente il servizio hotspot sul tuo portatile quando il cavo Ethernet è collegato e disabilitare il servizio quando il cavo Ethernet è disconnesso.

Questo dovrebbe essere abbastanza semplice da fare con uno script bash e nmcli 'nmcli' è un potente strumento networknig che ti permette di portare le connessioni su e giù a volontà e ottenere tonnellate di informazioni rilevanti.

Per scoprire quali connessioni saranno script per eseguire semplicemente nmcli -t monitor| grep primary quando connesso via wifi e collegare il cavo Ethernet. Le connessioni a cui sei interessato a salire e scendere con nmcli saranno quelle circondate da ' s Esempio: 'Connessione cablata 1' la logica è che quando 'Connessione' è connessa portare in primo piano hotspot (potrebbe essere necessario utilizzare il comando sleep o utilizzare l'opzione -w per rendere nmcli nello script attendere un numero specificato di secondi per il completamento di un comando prima di emettere il successivo.

Portare una connessione verso il basso è semplice come nmcli 'connection name' down e portarne uno su è nmcli 'connection name' up

Nota: per il pieno controllo tramite lo script potrebbe essere necessario disabilitare effettivamente l'opzione di connessione automatica almeno per la tua connessione wifi in Gestione rete in quanto tenterà di connettersi automaticamente ogni volta che è disponibile e può interferire con ciò che si sta tentando di realizzare. Estratto da 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.

Quindi, una volta stabilito che la tua Ethernet è connessa, puoi impartire i comandi per portare la connessione wifi in basso Esempio: nmcli connection my-wifi down e poi la connessione hotspot su Esempio: nmcli connection my-hotspot up

Per ulteriori informazioni su come eseguire automaticamente gli script in base alla connessione di rete, vedi questo. Per ulteriori dettagli su 'nmcli' controlla < a href="http://manpages.ubuntu.com/manpages/xenial/man1/nmcli.1.html"> pagina man. E qui sono le informazioni su come crea un hotspot.

    
risposta data Elder Geek 13.03.2018 - 22:11
0

Soluzione che ha fatto per me (trovata con l'aiuto di Elder Geek).

Ho mantenuto l'autoconnect on per tutte le reti a cui voglio collegarmi automaticamente, ma off per l'hot-spot. Quindi inserisco il seguente script (con le giuste autorizzazioni come descritto su questa pagina Wiki ) nella cartella /etc/NetworkManager/dispatcher.d

!/bin/bash

interf=
state=

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

Questo funziona molto bene finora; connessione automatica all'hotspot ogni volta che il cavo Ethernet viene collegato o anche quando il computer si avvia o si riattiva con il cavo Ethernet collegato. Deconnessione automatica da hot-spot ogni volta che viene estratto il cavo Ethernet, seguito da connessione automatica alle reti WiFi disponibili. / p>     

risposta data Bib-lost 15.03.2018 - 20:58

Leggi altre domande sui tag