Richten Sie die automatische Verbindung zum Hotspot nur bei einer Ethernet-Verbindung ein

8

Derzeit wechsle ich täglich zwischen den folgenden beiden Einstellungen:

1) Über ein WiFi-Netzwerk mit dem Internet verbunden sein.

2) Lassen Sie meinen (Ubuntu 16.04) Laptop über eine Kabelverbindung mit dem Internet verbinden und teilen Sie diese Verbindung dann über die integrierte Hot-Spot-Funktionalität von Ubuntu mit meinen anderen Geräten.

Im Moment muss ich beim Umschalten von 1 auf 2 den Dialog "Mit verstecktem Netzwerk verbinden" im Netzwerk-Manager manuell durchlaufen. Um von 2 auf 1 zu wechseln, muss ich mich manuell vom Hotspot trennen und eine Verbindung zum WiFi-Netzwerk herstellen. Es ist nicht viel Arbeit, aber ich mache es oft genug, um es automatisieren zu lassen.

Es ist nicht so einfach, die automatische Verbindung für den Hotspot zu aktivieren, da sie dann die Autoconnect-Funktionalität anderer Netzwerke außer Kraft setzt, anstatt mich mit einem WiFi-Netzwerk zu verbinden, wenn ich nicht über eine Kabelverbindung verbunden bin und am Ende einen Hotspot habe kein Internet. Also brauche ich eine Lösung, die:

  • verbindet mich mit dem Hotspot, wenn ich über eine Kabelverbindung mit dem Internet verbunden bin.
  • trennt mich vom Hotspot, wenn keine Ethernet-Verbindung besteht.
  • Verbindet mich automatisch mit einem der Netzwerke mit autoconnect = true, wenn sie verfügbar sind und keine Ethernet-Verbindung besteht.

Eine vollständige Erklärung, wie dies zu tun ist, wäre großartig, aber ein Verweis auf ein gutes (nicht fachkundiges) Handbuch zum Einrichten solcher Regeln wäre auch sehr willkommen.

Lätzchen verloren
quelle
1
Ich bin mir nicht 100% sicher, was Sie tun. Ich denke, Sie verwenden den Netzwerkmanager. Es ist also schwierig, ein Handbuch bereitzustellen. Ich würde schauen Sie in post-upden /etc/network/interfacesKontext gibt es einen großen Überblick hier . post-upruft im Grunde nur Befehle oder Skripte auf, nachdem eine Schnittstelle aufgerufen wurde.
Robert Riedl
Sieht nach einem guten Anfang aus. Werde mich darum kümmern, danke.
Lätzchen-verloren

Antworten:

2

Ich verstehe, dass beim Einstecken des Ethernet-Kabels die WLAN-Verbindung übertrumpft und die WLAN-Verbindung automatisch unterbrochen wird. In ähnlicher Weise wird durch das automatische Trennen des Ethernet-Kabels eine Verbindung zu Ihrem bevorzugten WLAN hergestellt (vorausgesetzt, Sie haben das Kontrollkästchen aktiviert, um auf der Registerkarte "Allgemein" des Netzwerkmanagers eine automatische Verbindung zu diesem WLAN-Netzwerk herzustellen. Getestet bei einer Standardinstallation von Ubuntu 16.04.3

Wenn ich Sie also richtig verstehe, möchten Sie den Hotspot-Dienst auf Ihrem Laptop nur automatisch starten, wenn das Ethernet-Kabel angeschlossen ist, und den Dienst deaktivieren, wenn das Ethernet-Kabel abgezogen wird.

Dies sollte ziemlich einfach mit einem Bash-Skript und zu tun sein nmcli bewerkstelligen sein, 'nmcli' ist ein leistungsstarkes Netzwerk-Tool, mit dem Sie Verbindungen nach Belieben auf und ab bringen und Tonnen relevanter Informationen erhalten können.

Um herauszufinden, für welche Verbindungen Sie Skripte erstellen, führen Sie diese einfach aus, nmcli -t monitor| grep primarywenn Sie über WLAN verbunden sind, und schließen Sie Ihr Ethernet-Kabel an. Die Verbindungen, mit denen Sie auf und ab gehen nmclimöchten, sind diejenigen, die von 's umgeben sind. Beispiel: 'Kabelverbindung 1' Die Logik lautet, dass bei Verbindung von 'Verbindung' der Hotspot aufgerufen wird (möglicherweise müssen Sie den Befehl verwenden sleepoder verwenden Der in Ihrem Skript auszuführende -wSchalter nmcliwartet eine bestimmte Anzahl von Sekunden, bis ein Befehl abgeschlossen ist, bevor der nächste ausgegeben wird.

Eine Verbindung nach unten zu bringen , ist so einfach , wie nmcli 'connection name' downund ein nach oben zu bringen , istnmcli 'connection name' up

Hinweis: Für die vollständige Kontrolle über das Skript müssen Sie möglicherweise die Option für die automatische Verbindung zumindest für Ihre WLAN-Verbindung im Netzwerkmanager deaktivieren, da versucht wird, eine automatische Verbindung herzustellen, sobald diese verfügbar ist, und das, was Sie erreichen möchten, beeinträchtigen kann. Auszug aus 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.

Sobald Sie festgestellt haben, dass Ihr Ethernet verbunden ist, können Sie die Befehle ausgeben, um die WLAN-Verbindung zu beenden. Beispiel: nmcli connection my-wifi down und dann die Hotspot-Verbindung. Beispiel: nmcli connection my-hotspot up

Weitere Informationen zum automatischen Ausführen von Skripten basierend auf der Netzwerkverbindung finden Sie hier. Weitere Informationen zu 'nmcli' finden Sie in der Manpage. Und hier finden Sie Informationen zum Erstellen eines Hotspots.

Elder Geek
quelle
Vielen Dank für die Wiki-Referenz. Als Nicht-Poweruser finde ich diese einfacher zu beginnen als die Manpages. Wird Sie
Lätzchen verloren
So weit so gut, aber nicht ganz zufrieden mit dem deaktivierenden Autoconnect-Teil. Ich suche in den Manpages nach nmcli, aber gibt es einen Befehl zum Suchen nach automatisch verbindbaren Netzwerken, wenn das Ethernet-Kabel abgezogen wird?
Lätzchen-verloren
@ Lätzchen verloren Meine Tests zeigen, dass das Verbleiben des WLANs als automatisch verbindbar dazu führt, dass es verbunden bleibt, wenn das Ethernet-Kabel eingesteckt ist, und sich automatisch wieder verbindet, wenn Sie es manuell herunterfahren. Unterscheiden sich Ihre Ergebnisse von meinen?
Elder Geek
Ich war noch nicht in der Lage, Skripte beim Einstecken eines Ethernet-Kabels auszuführen (obwohl ich die Schritte im Wiki befolgt habe), sondern nur durch Testen in der Konsole, wenn ich manuell befehle, die Verbindung zu einer Verbindung zu trennen (auch wenn diese automatisch verbunden werden kann) ) es verbindet sich nicht wieder.
Lätzchen verloren
@ Lätzchen verloren Interessant .. Ich muss weitere Tests machen. Wollen Sie damit sagen, dass wenn das WLAN in Network Manager auf automatische Verbindung eingestellt ist und Sie es herunterfahren nmcli connection my-wifi down, die Verbindung nie wieder hergestellt wird?
Elder Geek
1

Lösung, die es für mich getan hat (gefunden mit Hilfe von Elder Geek).

Ich hielt Autoconnect auf für alle Netze Ich möchte automatisch verbinden, aber aus für den Hot-Spot. Ich habe dann das folgende Skript (mit den richtigen Berechtigungen, wie auf dieser Wiki-Seite beschrieben ) in den Ordner gelegt/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

Das funktioniert bisher sehr gut; Automatische Verbindung zum Hotspot, wenn das Ethernet-Kabel eingesteckt ist oder wenn der Computer mit eingestecktem Ethernet-Kabel startet oder aufwacht. Automatische Trennung vom Hotspot, wenn das Ethernet-Kabel herausgezogen wird, gefolgt von einer automatischen Verbindung zu verfügbaren WiFi-Netzwerken.

Lätzchen verloren
quelle
Ich bin froh, dass du es sortiert hast und fand meine Antwort nützlich! Prost! Als neues Mitglied sind Sie sich dessen möglicherweise nicht bewusst .
Elder Geek