Wie kann ich eine Verbindung zu einer bestimmten BSSID herstellen?

9

Es sind mehrere drahtlose Netzwerke mit derselben SSID verfügbar. Ich suche nach einer Lösung, um eine Verbindung zu einer bestimmten herzustellen (per BSSID).

nmcli con up ifname ap scheint gut zu sein, aber leider funktioniert es nicht. Es wird nur eine Verbindung zum ursprünglichen Netzwerk hergestellt.

Krisz
quelle

Antworten:

18

Sie können die Network ManagerCLI-Schnittstelle verwenden nmcli.

Ich bin sicher, Sie haben bereits die BSSID. Sie können dies überprüfen und überprüfen mit:
( $Dies ist die Eingabeaufforderung. Die Zeilen nach dem Befehl sind die Ausgabe.)

$ nmcli -f in-use,ssid,bssid,signal,bars  dev wifi
*  SSID               BSSID              SIGNAL  BARS 
*  Apollo III (TWC)   XX:XX:XX:XX:XX:XX  98      ▂▄▆█ 
   Chromecast8481     XX:XX:XX:XX:XX:XX  97      ▂▄▆█ 
   --                 XX:XX:XX:XX:XX:XX  94      ▂▄▆█ 
   Apollo III (1)     XX:XX:XX:XX:XX:XX  87      ▂▄▆█ 
   TWCWiFi            XX:XX:XX:XX:XX:XX  80      ▂▄▆_ 
   CableWiFi          XX:XX:XX:XX:XX:XX  80      ▂▄▆_ 
   TWCWiFi-Passpoint  XX:XX:XX:XX:XX:XX  80      ▂▄▆_ 
   Apollo III (1)     XX:XX:XX:XX:XX:XX  70      ▂▄▆_

Die Cli für die Verbindung zum BSSIDist:

$ nmcli d wifi connect XX:XX:XX:XX:XX:XX

Dieser Befehl gibt Ihnen eine GUI-Eingabeaufforderung für das Kennwort. Sie können das Passwort in die Kommandozeile eingeben (möglicherweise aus Sicherheitsgründen):

$ nmcli d wifi connect XX:XX:XX:XX:XX:XX password "mypassword"

Letzterer fordert nicht zur Eingabe eines Kennworts auf, stellt jedoch über die im Befehl angegebene BSSID eine Verbindung zum angegebenen Netzwerk her. Wenn Sie bereits zuvor mit einem anderen Netzwerk verbunden waren, wird dieses durch das im Befehl angegebene ersetzt.

Der Befehl fügt auch die Verbindungsinformationen zum /etc/NetworkManager/system-connectionsSpeicherort hinzu. Der Standort ist geschützt.

Nachfolgende Verbindungen können über das Netzwerksymbol im Benachrichtigungsbereich unter dem erstellten Namen hergestellt werden.

LD James
quelle
4

Diese Antwort wurde zuerst von MariusMatutiae auf SuperUser gepostet . Bitte überlegen Sie, dort abzustimmen, wenn dies Ihnen hilft.

Sie können dies tun, indem Sie manuell eine Verbindung zum AP herstellen.

Erstens ist es am einfachsten, den Netzwerkmanager auszuschalten, wenn Sie einen ausführen:

  sudo service network-manager stop

Dann müssen Sie die BSSID des AP identifizieren, dem Sie beitreten möchten: den Befehl

 sudo iw dev wlan0 scan

(Wenn Sie wlan0 als drahtlose Schnittstelle verwenden) wird eine Menge Ausgabe erzeugt, unter denen Sie Folgendes finden:

  BSS f8:1a:67:aa:7f:b9 (on wlan0) -- associated
    TSF: 629432841083 usec (7d, 06:50:32)
    freq: 2417
    beacon interval: 100
    capability: ESS Privacy ShortPreamble SpectrumMgmt ShortSlotTime (0x0531)
    signal: -70.00 dBm
    last seen: 0 ms ago
    Information elements from Probe Response frame:
    SSID: MySSID_NAME

(Die Ausgabe ist länger als diese). Der relevante Teil ist natürlich BSS f8: 1a: 67: aa: 7f: b9 .

Als nächstes müssen Sie Ihre Schnittstelle von allen vorherigen IP-Adressen befreien, nur für den Fall:

  sudo ip link set wlan0 down
  sudo ip addr flush dev wlan0
  sudo ip link set wlan0 up

Jetzt geben Sie an, dass Sie eine Verbindung zu dem bestimmten AP herstellen möchten:

  sudo iwconfig wlan0 essid MySSID_NAME ap f8:1a:67:aa:7f:b9

Dabei steht ap natürlich vor der soeben identifizierten BSSID . Jetzt müssen Sie wpa_supplicant starten .

 sudo wpa_supplicant -Dnl80211 -i wlan0 -B -c FILE_with_WPA_Secrets

(Wenn Sie nicht wissen, wie Sie die Datei mit Ihren WPA-Anmeldeinformationen einrichten sollen, können Sie sie beispielsweise hier nachschlagen. Seien Sie nur vorsichtig, wenn dort network = {steht , sollte network = { ohne Leerzeichen sein.) Zuletzt,

 sudo dhclient -v wlan0

(Das Flag -v funktioniert nicht in allen Linux-Distributionen. Ich mag es, weil ich überwachen kann, was passiert.)

BEARBEITEN

Die obigen Anweisungen gelten für ein Netzwerk mit WPA-Sicherheit. Ersetzen Sie für die WEP-Sicherheit den Befehl wpa_supplicant durch:

  sudo iwconfig wlan0 key s:Your_WEP_password

Denken Sie daran, dass die beiden Zeichen s: vor Ihrem Passwort erforderlich sind. Danach noch einmal

  sudo dhclient -v wlan0

Hoffe das hilft.

Die ungeraden
quelle
3

Der einfache Weg, dies zu tun, ist die Verwendung der von Network Manager bereitgestellten GUI.

Gehen Sie zum Netzwerksymbol im oberen Bereich, wählen Sie Edit Connections, suchen Sie das drahtlose Verbindungsprofil für die gewünschte SSID, öffnen Sie es zum Bearbeiten und gehen Sie zum Feld BSSID und entweder 1) öffnen Sie die gewünschte BSSID oder 2) geben Sie die gewünschte BSSID manuell ein .

Unten finden Sie ein Beispiel für eine drahtlose Verbindung, die das BSSID-Feld zeigt.

Geben Sie hier die Bildbeschreibung ein

Heynnema
quelle