Существует несколько беспроводных сетей, доступных с тем же SSID. Я ищу решение соединиться с определенным (BSSID).
довод "против" nmcli ifname AP кажется хорошим, но к сожалению, это не работает. Это просто соединяется назад с исходной сетью.
Можно использовать Network Manager
интерфейс cli, nmcli
.
я уверен, что Вы уже имеете BSSID
. Можно проверить и проверить его с:
(эти $
командная строка. Строки после команды являются выводом.)
$ 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 ▂▄▆_
cli для соединения с эти BSSID
:
$ nmcli d wifi connect XX:XX:XX:XX:XX:XX
, Что команда даст Вам подсказку GUI для пароля. Вы могли ввести пароль на commanline (может быть проблема безопасности):
$ nmcli d wifi connect XX:XX:XX:XX:XX:XX password "mypassword"
последний не запросит пароль, но соединится с указанной сетью BSSID в команде. , Если Вы были уже ранее подключены к другой сети, она будет заменена той, указанной в команде.
команда также добавит информацию о соединении к /etc/NetworkManager/system-connections
местоположение. Местоположение защищено.
Последующие связи могут быть установлены через значок сети в области уведомлений созданным именем.
легкий способ сделать это должно использовать GUI, обеспеченный Администратором сети.
Переходят к значку сети в верхней панели, выбирают Edit Connections
, определяют местоположение профиля беспроводного соединения для желаемого SSID, открытого для РЕДАКТИРОВАНИЯ, и переходят к полю BSSID и любому 1) откройтесь желаемый BSSID, или 2) вручную введите желаемый BSSID.
Посмотрите ниже для беспроводного соединения в качестве примера, показывающего его поле BSSID.
Этот ответ был сначала отправлен MariusMatutiae на SuperUser. Рассмотрите голосование там, если это помогает Вам.
Можно сделать это путем соединения с AP вручную.
Во-первых, является самым легким выключить администратора сети при выполнении того:
sudo service network-manager stop
Затем необходимо определить BSSID AP, к которому Вы хотите присоединиться: команда
sudo iw dev wlan0 scan
(если Вы будете использовать wlan0 в качестве своего беспроводного интерфейса), то произведет большой вывод, среди которого Вы найдете что-то как:
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
(вывод дольше, чем это). Соответствующая часть является, конечно, BSS f8:1a:67:aa:7f:b9.
Затем, необходимо будет освободить интерфейс любых предыдущих IP-адресов на всякий случай:
sudo ip link set wlan0 down sudo ip addr flush dev wlan0 sudo ip link set wlan0 up
Теперь Вы указываете, что хотите соединиться с определенным AP:
sudo iwconfig wlan0 essid MySSID_NAME ap f8:1a:67:aa:7f:b9
где, конечно, AP предшествует BSSID, Вы просто определили. Теперь необходимо запустить wpa_supplicant,
sudo wpa_supplicant -Dnl80211 -i wlan0 -B -c FILE_with_WPA_Secrets
(если Вы не знаете, как настроить файл с Вашими учетными данными WPA, можно искать его здесь, например; просто будьте осторожны, где это говорит, что сеть = {должна быть сеть = {без пространства). Наконец,
sudo dhclient -v wlan0
(флаг-v не работает над всеми дистрибутивами Linux, мне нравится он, потому что я могу контролировать то, что происходит).
Править
Инструкции выше работы для сети с безопасностью WPA. Передняя безопасность WEP, замените команду wpa_supplicant:
sudo iwconfig wlan0 key s:Your_WEP_password
Помните что эти два символа s: перед Вашим паролем необходимы. После этого еще раз
sudo dhclient -v wlan0
Надеюсь, это поможет.