Drahtlose Schnittstelle für mehrere Standorte konfigurieren

Drahtlose Schnittstelle für mehrere Standorte konfigurieren

Ich möchte meinen so konfigurieren, /etc/network/interfacesdass er verschiedene Zugriffspunkte erkennt und sich entsprechend mit ihnen verbindet. Dies ist der aktuelle Status dieser Datei:

source /etc/network/interfaces.d/*

# The loopback network interface
auto lo
iface lo inet loopback

# The primary network interface
allow-hotplug eth0
iface eth0 inet dhcp

auto ra0
iface ra0 inet dhcp
 wpa-ssid MyNet
 wpa-psk 00d8f778e1e86be0961aa767564d7364ee44fcbd704e4e31ee6c4af0f855c32f

Dies erkennt erfolgreich eine Ethernet-Verbindung und stellt eine Verbindung zu MyNet her, wenn es verfügbar ist. Wie konfiguriere ich es, damit es mehrere Zugriffspunkte erkennen kann?

Hierscheint die Antwort zu sein, aber ich konnte die Anweisungen nicht verstehen.

Ich habe mehrere GUIs ausprobiert (nm, wicd usw.), aber keine davon scheint auf meinem Laptop zu funktionieren. Ich bevorzuge es jedenfalls, es über die Befehlszeile zu tun.

Antwort1

Um mehrere WLAN-Konfigurationen/SSIDs anzusprechen, sollten Sie besser auf dieser wpa_supplicantEbene arbeiten.

Belassen Sie Ihre Schnittstelle einfach wie folgt:

auto ra0
iface ra0 inet dhcp

Installieren Sie wpa_supplicant mit:

apt get install wpasupplicant

Sie können in mehrere Standorte angeben wpa_supplicant.conf, wobei die SSID bestimmt, welche Konfiguration verwendet wird. Wie in:

network={
    ssid="ssid2"
    psk="ssid2 PASSWORD"
}

network={
    ssid="ssid1"
    psk="ssid1 PASSWORD"
}

Starten Sie den Dienst jedes Mal neu, wenn Sie eine Konfiguration für eine neue SSID hinzufügen.

Beim Verbinden mit einem AP wird, abhängig vom SSID-Namen, wpa_supplicantautomatisch die entsprechende Konfiguration ausgewählt.

Antwort2

Um /etc/network/interfacesdie Arbeit mit mehreren Standorten zu konfigurieren, müssen Sie den Unterschied zwischen logischen und physischen Schnittstellen verstehen. Physische Schnittstellen entsprechen den Hardwaregeräten, die Sie in Ihrem System installiert haben, und werden durch ein bestimmtes Benennungsschema identifiziert (wlan0, wlan1, eth0, ra0 usw.).

In Ihrer /etc/network/interfaceskönnen Sie für jede physische Schnittstelle nur eine Konfiguration angeben, daher kommen hier logische Schnittstellen ins Spiel. Sie können mehrere logische Schnittstellen für eine physische Schnittstelle haben. Dies wird als Zuordnung bezeichnet. Um eine logische Schnittstelle einer physischen Schnittstelle zuzuordnen, fügen Sie dies zu/etc/network/interfaces

mapping ra0 # map physical interface ra0...
    map home work # ...to 'home' and 'work' logical interfaces

Anschließend schreiben Sie die Konfiguration für jede dieser Schnittstellen:

iface home inet dhcp # configuration stanza for 'home' logical interface
 wpa-ssid Home
 wpa-psk 00d8f778e1e86be0961aa767564d7364ee44fcbd704e4e31ee6c4af0f855c32f

iface work inet dhcp # configuration stanza for 'work' logical interface
 wpa-ssid Work
 wpa-psk 00d8f778e1e86be0961aa767564d7364ee44fcbd704e4e31ee6c4af0f855c32f

Dies wird natürlich nicht funktionieren, da das System nicht weiß, welche Schnittstelle es verwenden soll. Daher verwenden wir , guessnetum dem System bei der Auswahl einer Konfiguration zu helfen.

sudo apt-get install guessnet

Anschließend verwenden wir guessnetin der Mapping-Strophe:

mapping ra0
        script /usr/sbin/guessnet-ifupdown # <-- We added this
        map home work

Guessnettestet die Netzwerke anhand bestimmter Kriterien (IP, ESSID, MAC-Adressen) und wählt die Konfiguration aus, die diese Tests nicht besteht. Im folgenden Beispiel wird, wenn ein Netzwerk mit der ESSID „Work“ verfügbar ist, die ra0zuvor definierte Schnittstelle eine Verbindung zu diesem herstellen und diese Konfiguration anwenden:

iface work inet dhcp 
 test wireless essid Work # We test if the ESSID of the network is 'Work'
 wpa-ssid Work
 wpa-psk 00d8f778e1e86be0961aa767564d7364ee44fcbd704e4e31ee6c4af0f855c32f

Antwort3

In unserem Fall wollten wir verschiedene WLANs bestimmten Geräten zuordnen. Dazu haben wir eine systemd-Vorlage erstellt:

# cat /usr/lib/systemd/system/wpa_supplicant\@.service 
[Unit]
Description=WPA supplicant for %i
Before=network.target
After=dbus.service
Wants=network.target
IgnoreOnIsolate=true

[Service]
ExecStart=/sbin/wpa_supplicant -s -O /run/wpa_supplicant-%i -c/etc/wpa_supplicant/wpa_supplicant-%i.conf -i%i

[Install]
WantedBy=multi-user.target

Dann habe ich die Konfigurationen wie folgt erstellt:

==> /etc/wpa_supplicant/wpa_supplicant-wlan0.conf <==
network={
    ssid="net0"
    psk="secretpass0"
}

==> /etc/wpa_supplicant/wpa_supplicant-wlan1.conf <==
network={
    ssid="net1"
    psk="secretpass1"
}

und startete sie wie folgt:

systemctl enable --now wpa_supplicant@wlan0
systemctl enable --now wpa_supplicant@wlan1

Vorbehalt:

Seltsamerweise scheint es meinen Dienst ignoriert und unter folgendem ausgeführt zu haben dhcpcd:

# ps ax|grep wpa

    653 ?        Ss     0:00 wpa_supplicant -B -c/etc/wpa_supplicant/wpa_supplicant-wlan1.conf -iwlan1
    668 ?        Ss     0:00 wpa_supplicant -B -c/etc/wpa_supplicant/wpa_supplicant-wlan0.conf -iwlan0

# systemctl status 668
● dhcpcd.service - DHCP Client Daemon
     Loaded: loaded (/lib/systemd/system/dhcpcd.service; enabled; vendor preset: enabled)
    Drop-In: /etc/systemd/system/dhcpcd.service.d
             └─wait.conf
     Active: active (running) since Sat 2023-07-08 21:16:25 BST; 1min 23s ago
       Docs: man:dhcpcd(8)
    Process: 545 ExecStart=/usr/sbin/dhcpcd -w -q (code=exited, status=0/SUCCESS)
      Tasks: 3 (limit: 1993)
     Memory: 4.3M
        CPU: 775ms
     CGroup: /system.slice/dhcpcd.service
             ├─653 wpa_supplicant -B -c/etc/wpa_supplicant/wpa_supplicant-wlan1.conf -iwlan1
             ├─668 wpa_supplicant -B -c/etc/wpa_supplicant/wpa_supplicant-wlan0.conf -iwlan0
             └─701 /usr/sbin/dhcpcd -w -q

dhclientVielleicht unterstützt der Debian-Netzwerkstapel wpa_supplicant-<device>.confDateien direkt und erledigt dies automatisch (beachten Sie, dass meine /etc/network/interfaces*-Dateien leer sind). Wenn dies der Fall ist, benötigen Sie lediglich unterschiedliche Konfigurationen für unterschiedliche Geräte ... aber bei uns funktioniert es trotzdem. Bitte kommentieren Sie, wenn Sie herausfinden, warum das so ist.

verwandte Informationen