WLAN-Verbindung wechseln

Einrichten des lokalen Netzes, Verbindung zu anderen Computern und Diensten.
Antworten
Richard
Beiträge: 639
Registriert: 11.10.2012 14:18:37
Lizenz eigener Beiträge: GNU General Public License

WLAN-Verbindung wechseln

Beitrag von Richard » 09.07.2018 14:35:38

Hallo,

habe hier einen Pi mit Raspbian Jessy (werde auch nicht auf Stretch updaten in nächster Zeit). Derbist per WLAN mit meiner Fritzbox verbunden. Das soll auch standardmäßig so bleiben. Ich würde aber gern z. B. per Script eine Verbindung zu einem anderen WLAN herstellen, dessen Zugangsdaten ich auch hinterlegen würde. Keine 2 Verbindungen gleichzeitig.

Wie könnte man das machen? Gibt es Shellbefehle um wlan0 zu trennen und dann mit wlan1 zu verbinden, ohne wlan1 zum Standardnetzwerk zu machen? Nach einem Reboot soll wieder mit wlan0 verbunden werden.

Richard

mat6937
Beiträge: 2927
Registriert: 09.12.2014 10:44:00

Re: WLAN-Verbindung wechseln

Beitrag von mat6937 » 09.07.2018 21:01:29

Richard hat geschrieben: ↑ zum Beitrag ↑
09.07.2018 14:35:38
Gibt es Shellbefehle um wlan0 zu trennen und dann mit wlan1 zu verbinden, ohne wlan1 zum Standardnetzwerk zu machen? Nach einem Reboot soll wieder mit wlan0 verbunden werden.
Ja, das geht. Du schreibst 2 service units für die WLAN-Verbindungen. Eine für wlan0 und eine für wlan1. Die service unit für wlan1 muss nicht aktiviert (enabled) werden.

Benutzeravatar
Tintom
Moderator
Beiträge: 3029
Registriert: 14.04.2006 20:55:15
Wohnort: Göttingen

Re: WLAN-Verbindung wechseln

Beitrag von Tintom » 09.07.2018 21:39:26

Ein prähistorischer Ansatz wäre das hier: https://www.debian.org/doc/manuals/debi ... ing_stanza

Richard
Beiträge: 639
Registriert: 11.10.2012 14:18:37
Lizenz eigener Beiträge: GNU General Public License

Re: WLAN-Verbindung wechseln

Beitrag von Richard » 10.07.2018 06:50:08

Wue erstelle ich denn eine Service Unit für eine WLAN-Verbindung? Kenne das nur sls Autostart für Programme. Die WPA-Daten müssen ja auch hinterlegt werden.

BenutzerGa4gooPh

Re: WLAN-Verbindung wechseln

Beitrag von BenutzerGa4gooPh » 10.07.2018 08:33:14

Für die Verwaltung mehrerer Netzwerkverbindungen ist der Debiannetwork-manager prädestiniert. (Auf Raspi wohl eher ohne GUI.) Mit diesem Frontend musst du keine aufwändigen Service Units konfigurieren, dafür wird implizit gesorgt. :wink:
Vielleicht

Code: Alles auswählen

nmtui
zur "flotten Grobkonfiguration", Feineinstellungen und Umschalten der Netzwerkverbindungen danach mit nmcli-Kommandos.
https://access.redhat.com/documentation ... orkManager
https://developer.gnome.org/NetworkMana ... nmcli.html

Hinweise:
Teste zuerst nmtui oder/und das grafische Tool auf Laptop oder PC mit 2 WLAN-Verbindungen (SSIDs) und verschiedenen Prioritäten. Priorität mit größerer Zahl ist vorrangig. Die Verbindungen müssen schon mal aktiv (verbunden) gewesen sein, damit automatisches Umschalten klappt.

In deinem Fall müsste jedeoch "Automatisch verbinden" nicht aktiviert werden, da:
Gibt es Shellbefehle um wlan0 zu trennen und dann mit wlan1 zu verbinden, ohne wlan1 zum Standardnetzwerk zu machen? Nach einem Reboot soll wieder mit wlan0 verbunden werden.
Das Start-Netzwerk muss damit wahrscheinlich mit einem entsprechenden nmcli-Kommando nach dem Booten gestartet werden. Kleine systemd service unit (Google-Stichworte) mit entsprechendem nmcli-Kommando für Aktivierung der gewünschten Startverbindung schreiben, im Netzwerkmanager sind Verbindungsparamter beider WLAN-Profile hinterlegt.

Übrigens: Mit richtiger Priorisierung und "Automatisch verbinden" könntest du remote auf dem AP/WLAN-Router eine SSID ab- oder zuschalten und der Raspi würde entsprechend automatisch reagieren.

mat6937
Beiträge: 2927
Registriert: 09.12.2014 10:44:00

Re: WLAN-Verbindung wechseln

Beitrag von mat6937 » 10.07.2018 09:49:12

Richard hat geschrieben: ↑ zum Beitrag ↑
10.07.2018 06:50:08
Wue erstelle ich denn eine Service Unit für eine WLAN-Verbindung?
Im aktuellen source-code-Archiv für wpa_supplicant stellen die Entwickler Beispiele für service units zur Verfügung:

Code: Alles auswählen

:~$ ls -la Downloads/wpa_supplicant-2.6/wpa_supplicant/systemd
insgesamt 40
drwxrwxr-x  2 xx xx 4096 Nov 29  2017 .
drwxrwxr-x 10 xx xx 4096 Nov 29  2017 ..
-rw-rw-r--  1 xx xx  497 Nov 29  2017 wpa_supplicant-nl80211@.service
-rw-rw-r--  1 xx xx  489 Okt  2  2016 wpa_supplicant-nl80211.service.arg.in
-rw-rw-r--  1 xx xx  210 Nov 29  2017 wpa_supplicant.service
-rw-rw-r--  1 xx xx  451 Nov 29  2017 wpa_supplicant@.service
-rw-rw-r--  1 xx xx  443 Okt  2  2016 wpa_supplicant.service.arg.in
-rw-rw-r--  1 xx xx  234 Okt  2  2016 wpa_supplicant.service.in
-rw-rw-r--  1 xx xx  489 Nov 29  2017 wpa_supplicant-wired@.service
-rw-rw-r--  1 xx xx  481 Okt  2  2016 wpa_supplicant-wired.service.arg.in
https://w1.fi/releases/wpa_supplicant-2.6.tar.gz

Bei UU im wiki gibt es auch ein Beispiel: https://wiki.ubuntuusers.de/systemd/net ... ation-WLAN

Richard
Beiträge: 639
Registriert: 11.10.2012 14:18:37
Lizenz eigener Beiträge: GNU General Public License

Re: WLAN-Verbindung wechseln

Beitrag von Richard » 10.07.2018 17:57:59

@Jana66

Ich habe die WLAN-Verbindung bisher über die /etc/network/interfaces eingerichtet. nmtui zeigt mir bisher keine Verbindungen kann, ich vermute ich muss beide Verbindungen über den Network Manager einrichten?

@ mat6937

Da ich das ganze unter Jessy umsetzen wil wo noch die "alten" Namen für die Netzwerkschnittstelle verwendet werden, müssten die Service-Units bei mir

Code: Alles auswählen

wpa_supplicant@wlan0.service 
bzw.

Code: Alles auswählen

wpa_supplicant@wlan1.service
heißen. Wenn die Unit ausgeführt wird, wird '%i' durch 'wlan0' oder 'wlan1' ersetzt?

Wie ich das hier? Muss ich auch die WLAN-Einrichtung per /etc/network/interfaces ausschalten und stattdessen wpa_supplicant verwenden?

TomL

Re: WLAN-Verbindung wechseln

Beitrag von TomL » 10.07.2018 18:11:01

Richard hat geschrieben: ↑ zum Beitrag ↑
10.07.2018 17:57:59
Wenn die Unit ausgeführt wird, wird '%i' durch 'wlan0' oder 'wlan1' ersetzt?
Ja.

Du musst Dich allerdings entscheiden.... Networkmanager ist EIN Weg, /etc/init.d/networking (etc/network/interfaces) ist EIN Weg, systemd-Service-Units ist EIN Weg. Alles drei gleichzeitig wird nicht gehen oder behindert sich gegenseitig. Wenn es sich um ein stationäres System handelt, würde ich den networkmanager und/oder networking deaktivieren und das Netzwerk nur über die Service-Unit starten.

BenutzerGa4gooPh

Re: WLAN-Verbindung wechseln

Beitrag von BenutzerGa4gooPh » 10.07.2018 18:33:29

Richard hat geschrieben: ↑ zum Beitrag ↑
10.07.2018 17:57:59
nmtui zeigt mir bisher keine Verbindungen kann, ich vermute ich muss beide Verbindungen über den Network Manager einrichten?
Ja, ist ein weniger bekanntes Tool/Frontend (Text User Interface) des Debiannetwork-manager und benötigt deshalb keine Grafik, auf Raspi als Server ohne fettes Desktop Environment wohl sinnvoller als das bekannte Frontend mit GUI Debiannetwork-manager-gnome.
https://access.redhat.com/documentation ... orkManager
Feinheiten dann (oder gleich alles) mit nmcli ...
Aber wie TomL schrieb, entscheide dich für 1 Methode. :wink:

Richard
Beiträge: 639
Registriert: 11.10.2012 14:18:37
Lizenz eigener Beiträge: GNU General Public License

Re: WLAN-Verbindung wechseln

Beitrag von Richard » 11.07.2018 12:14:36

Ich werde hier erstmal den Weg über den Network Manager versuchen. Dazu müsste man ja vorher erst einmal /etc/network/interfaces deaktivieren oder anders dafür sorgen, dass aus dieser Datei keine Infos mehr gezogen werden. Genügt es sie zu löschen oder zu verschieben?

Kann per nmtui beide WLAN-Verbindungen einrichten. Dann könnte ich die auch per nmtui ändern.

Das mit den Prioritäten muss ich mir nochmal ansehen.
Das Start-Netzwerk muss damit wahrscheinlich mit einem entsprechenden nmcli-Kommando nach dem Booten gestartet werden.
Das versteh ich nicht. Auf allen meiner Notebooks nutze ich den NM und die verbinden sich ohne Rückfragen oder sonstige Settings mit dem Standardnetzwerk. In allen sind schon beide WLANs eingerichtet.

BenutzerGa4gooPh

Re: WLAN-Verbindung wechseln

Beitrag von BenutzerGa4gooPh » 11.07.2018 12:59:30

Richard hat geschrieben: ↑ zum Beitrag ↑
11.07.2018 12:14:36
Ich werde hier erstmal den Weg über den Network Manager versuchen. Dazu müsste man ja vorher erst einmal /etc/network/interfaces deaktivieren oder anders dafür sorgen, dass aus dieser Datei keine Infos mehr gezogen werden. Genügt es sie zu löschen oder zu verschieben?
Weder noch. Es genügt, die Datei vor der Installation von Debiannetwork-manager zu "bereinigen": https://wiki.debian.org/NetworkManager
(Nur interface lo darf vorhanden sein.)

Bei mir:

Code: Alles auswählen

cat /etc/network/interfaces
# This file describes the network interfaces available on your system
# and how to activate them. For more information, see interfaces(5).

source /etc/network/interfaces.d/*

# The loopback network interface
auto lo
iface lo inet loopback

Code: Alles auswählen

cat /etc/resolv.conf
# Generated by NetworkManager
search borstel.test
nameserver 10.65.20.1
nameserver 10.65.10.1
10.65.20.1 ist der DNS-Server meines Routers.
Verzeichnis /etc/network/interfaces.d/ ist leer.

Kontrolle:

Code: Alles auswählen

cat /etc/NetworkManager/NetworkManager.conf
[main]
plugins=ifupdown,keyfile

[ifupdown]
managed=false
Richard hat geschrieben: ↑ zum Beitrag ↑
11.07.2018 12:14:36
Auf allen meiner Notebooks nutze ich den NM und die verbinden sich ohne Rückfragen oder sonstige Settings mit dem Standardnetzwerk. In allen sind schon beide WLANs eingerichtet.
Eben. Mit dem Standardnetzwerk, bei WLAN und 2 SSIDs immer die am höchsten priorisierte Verbindung. Aber du wolltest per Kommando/Script umschalten und nicht ständige "Rückfälle" erleiden. :mrgreen:
(Nach erfolgreicher Umschaltung des WLANs per Kommando wird der Raspi ohne Weiteres wohl auch mit zuletzt aktivem WLAN booten. Nehme das stark an.)
Richard hat geschrieben: ↑ zum Beitrag ↑
11.07.2018 12:14:36
Das mit den Prioritäten muss ich mir nochmal ansehen.
Teste es mit Laptop und 2 SSIDs, mit dem grafischen Debiannetwork-manager-gnome geht es am bequemsten - für Maus-Schubser. Erkenntnisse dann für Raspi verwenden.
Zuletzt geändert von BenutzerGa4gooPh am 11.07.2018 17:05:10, insgesamt 1-mal geändert.

Richard
Beiträge: 639
Registriert: 11.10.2012 14:18:37
Lizenz eigener Beiträge: GNU General Public License

Re: WLAN-Verbindung wechseln

Beitrag von Richard » 11.07.2018 15:45:48

Am Notebook geht das sehr gut, wen man da das Standard-WLAN als "immer verbinden" setzte, wird genau das bei jedem reboot erneut verbunden.

Hab aber ein anderes Problem. Wenn ich versuche im nmtui versuche eine Verbindung zu bearbeiten kommt

nmtui:ERROR:nmt-newt-listbox.c:333:update_active_internal: assertion failed: (priv->active >= 0 && priv->active < priv->entries->len

Laut hier https://bugzilla.redhat.com/show_bug.cgi?id=1119663 wäre der Fehler mit der 0.9.10.2 behoben, ich habe aber nur die 9.10.0 und finde kein PPA für Raspbian Jessy - ein Update auf Stretch würde ich gern vermeiden, der Pi hier wird als Infrarot-Receiver eingesetzt, es war ein absoluter Akt die ganzen Sachen einzurichten. Bekomm ich nie wieder so hin.

Falls jemand eine Quelle für die gefixte Version hat. Sonst bleibt nur selbst bauen?

BenutzerGa4gooPh

Re: WLAN-Verbindung wechseln

Beitrag von BenutzerGa4gooPh » 11.07.2018 16:53:50

Richard hat geschrieben: ↑ zum Beitrag ↑
11.07.2018 15:45:48
Sonst bleibt nur selbst bauen?
Nö. Du kannst WLAN-Verbindungen komplett mit nmcli-Kommandos konfigurieren. Schaue dir obige Links an oder google nach praktischen Beispielen. nmtui ist nur ein Frontend für Faule.
Oder probiere mal - angeblich interaktiv - Example 12 mit WLAN: https://people.freedesktop.org/~lkundra ... mples.html
Bissel suchen oder Manpage nach entsprechender WLAN-Syntax, jedenfalls ein Frontend brauchst du nicht.

Hier steht auch was zur WLAN-Konfiguration: https://wiki.ubuntuusers.de/NetworkMana ... _ohne_GUI/
(Links in meinen obigen Beiträgen sind ausführlicher.)

Zum Wechsel der Verbindung mit nmcli: https://wiki.siduction.de/index.php?tit ... mandozeile (unten)

Und nun (mehr) Eigeninitiative! :wink:

Edit: Link korrigiert

mat6937
Beiträge: 2927
Registriert: 09.12.2014 10:44:00

Re: WLAN-Verbindung wechseln

Beitrag von mat6937 » 11.07.2018 21:09:48

Richard hat geschrieben: ↑ zum Beitrag ↑
10.07.2018 17:57:59
Muss ich auch die WLAN-Einrichtung per /etc/network/interfaces ausschalten und stattdessen wpa_supplicant verwenden?
Wenn Du eine service unit hast, musst Du den wpa_supplicant nicht mit der interfaces-Datei starten. Du könntest die Zuweisung der IP-Adresse an das Interface, mit Hilfe der interfaces-Datei (noch) machen, aber mit jessie (systemd) gibt es elegantere Möglichkeiten (z. B. systemd-networkd oder dhcpcd).

Mit einer service unit wird auch der wpa_supplicant verwendet. Hier z. B. meine (auf jessie/PI) service unit:

Code: Alles auswählen

pi@raspberrypi:~ $ systemctl cat wpa_supplicant-nl80211@wlan0.service
# /lib/systemd/system/wpa_supplicant-nl80211@wlan0.service
[Unit]
Description=WPA supplicant daemon (interface- and nl80211 driver-specific version)
Requires=sys-subsystem-net-devices-wlan0.device
BindsTo=sys-subsystem-net-devices-wlan0.device
After=sys-subsystem-net-devices-wlan0.device
Before=network.target
Wants=network.target
ConditionPathExists=!/tmp/wpasupplicant_wlan0_lock

[Service]
Type=simple
RemainAfterExit=yes
ExecStart=/sbin/wpa_supplicant -B -qq -c/etc/wpa_supplicant/wpa_supplicant-nl80211-wlan0.conf -Dnl80211 -iwlan0
#ExecStartPost=-/usr/local/bin/starts_after_wpa_restart
Restart=on-failure
RestartSec=120
StartLimitInterval=125
StartLimitBurst=2

[Install]
Alias=multi-user.target.wants/wpa_supplicant-nl80211@wlan0.service

Richard
Beiträge: 639
Registriert: 11.10.2012 14:18:37
Lizenz eigener Beiträge: GNU General Public License

Re: WLAN-Verbindung wechseln

Beitrag von Richard » 12.07.2018 08:42:11

Hab jetzt einfach mal auf Stretch geupdated. Hab jetzt aber erstmal keine WLAN-Verbindung mehr. Glaube da wurde was geändert von Jessy auf Stretch. Muss ich nochmal gucken. Ich wollte halt gerne trotzdem ein laufendes nmtui haben, da ich meine Pi oft auch über SSH von unterwegs steuere und das recht simple zu sein scheint. Ein nmcli kann auch mal schief gehen, auch in Scripten. Wenn nmtui geht guck ich mir auch mal nmcli an.

BenutzerGa4gooPh

Re: WLAN-Verbindung wechseln

Beitrag von BenutzerGa4gooPh » 12.07.2018 19:31:40

Richard hat geschrieben: ↑ zum Beitrag ↑
12.07.2018 08:42:11
Hab jetzt aber erstmal keine WLAN-Verbindung mehr. Glaube da wurde was geändert von Jessy auf Stretch.
U. a. predictable interfaces.
https://0010100.net/blog/?x=entry:entry170723-085401
ausführlicher:
https://www.freedesktop.org/wiki/Softwa ... faceNames/
https://lists.debian.org/debian-user/20 ... 01453.html

Richard
Beiträge: 639
Registriert: 11.10.2012 14:18:37
Lizenz eigener Beiträge: GNU General Public License

Re: WLAN-Verbindung wechseln

Beitrag von Richard » 15.07.2018 14:13:13

Ich hab jetzt doch alles unter Stretch eingerichtet und mal den Network Manager versucht. Leider findet er aber weder mit nmcli noch mit nmtui WLANs. nmcli zeigt

Code: Alles auswählen

nmcli device wifi list
*  SSID  MODUS  CHAN  RATE  SIGNAL  BARS  SICHERHEIT
Bei nmtui wird nur die derzeit noch bestehende Ethernet-Verbindung angezeigt (die soll später wegfallen).

Für die WLAN-Verbindung mit wpa_supplicant musste ich "-D wext" einfügen, also

Code: Alles auswählen

sudo wpa_supplicant -i wlan0 -D wext -c /etc/wpa_supplicant/wpa_supplicant.conf
damit er den WLAN-Dongle erkannte. Liegt wohl am etwas älteren Realtek-Chip. Ist scheinbar ab Stretch nötig. Ist ein RTL8188SU.

Muss ich das auch für den NM extra mit angeben? Ich denke der Weg über nmtui ist der einfachste um auch mal fix die Verbindung zu wechseln.

BenutzerGa4gooPh

Re: WLAN-Verbindung wechseln

Beitrag von BenutzerGa4gooPh » 15.07.2018 14:40:22

Code: Alles auswählen

ip link show
oder
ifconfig -a
so wegen Upgrade auf Stretch und meinem letzten Beitrag ...

USB-Sticks kriegen ab Stretch lange (MAC-Adresse enthalten), predictable IF-Namen. Selber vergebener Name (oder der alte?) könnte in Verbindung mit Debiannetwork-manager besser sein. Wie gesagt, mein letzter, offensichtlich ungelesener Beitrag. :wink:
Muss ich das auch für den NM extra mit angeben? Ich denke der Weg über nmtui ist der einfachste um auch mal fix die Verbindung zu wechseln.
Bei Verwendung des Netzwerkmanagers / nmtui muss kein wpa-supplicant anderweitig konfiguriert werden, imho auch konfliktträchtig, wenn man das nicht richtig macht: Dann sollte man dem Netzwerkmanager "sagen", um welche Verbindungen er sich (nicht) kümmern soll. Lasse ihn besser komplett verwalten, also nichts "vorbei" konfigurieren.

Vmtl. funktioniert Trick nach Upgrade auf Stretch: WLAN-Firmware deinstallieren und neu installieren. Dann dürfte der Netzwerkmanager die neuen IF-Namen kapiert haben. Natürlich per Ethernet-Zugang machen.
Zuletzt geändert von BenutzerGa4gooPh am 15.07.2018 15:04:15, insgesamt 1-mal geändert.

Richard
Beiträge: 639
Registriert: 11.10.2012 14:18:37
Lizenz eigener Beiträge: GNU General Public License

Re: WLAN-Verbindung wechseln

Beitrag von Richard » 15.07.2018 15:03:09

Hab deinen Beitrag gelesen, Raspbian Stretch verwendet aber diese neuen Interfacenamen nicht. Bei mir heißen sie eth0 und wlan0. Ich hab auch kein Upgrade gemacht, sondern diesmal Stretch komplett neu eingerichtet.

Auchhab ich nicht gesagt, dass ich wpa_suppplicant und NM gleichzeitig nutzen will oder gleichzeitig nutze. Hab mit wpa_supplicant eine Verbindung aufgebaut und dann wieder die Config gelöscht und rebootet. NM findet aber kein WLAN. Bei wpa_supplicant war die Angabe eines Treibers nötig, evtl. braucht NM sowas auch?

BenutzerGa4gooPh

Re: WLAN-Verbindung wechseln

Beitrag von BenutzerGa4gooPh » 15.07.2018 15:06:58

Hast du notwendige WLAN-Firmware nach Neuinstallation installiert? Ich habe keinen Raspi, weiß nicht ob mit Raspbian notwendig.

Code: Alles auswählen

journalctl -b -p err (wenn systemd in Raspbian) bzw.
dmesg | grep -i firmware
zeigen Fehler. Komplettes dmesg durchsehen bringt vlt. auch Erkenntnisse. Ansonsten schaue in meine Links oben und diagnostiziere den Netzwerkmanager mit nmcli-Kommandos und poste Fehlermeldungen! So kann man wenig sagen.

Problematisch: Raspbian ist offenbar anders als Debian (keine predictable IFs, systemd?). Wärst vielleicht besser im Raspi-Forum aufgehoben. Geht ja nur noch darum, den Debiannetwork-manager wieder in Betrieb zu nehmen. Jetzt gehe ich erst mal baden. :wink:

Richard
Beiträge: 639
Registriert: 11.10.2012 14:18:37
Lizenz eigener Beiträge: GNU General Public License

Re: WLAN-Verbindung wechseln

Beitrag von Richard » 25.07.2018 10:37:52

Hab es nun hinbekommen Ethernet und WLAN über nmcli einzurichten, reproduzierbar ist das alles nicht. u.a. musste ich über eine Art Eingabekonsole des NM gehen. Der Eingabeprompt änderte sich. Das musste ich aber mit sudo öffnen, da sonst Änderungen nicjt übernommen wurden.

Jetzt muss ich blöderweise auch nmtui per sudo öffnen um Verbindungseinstellungen zu ändern. Normal läuft ja die NM-GUI nicht über sudo.

Antworten