Когда операционная система имеет несколько доступных беспроводных сетей (и известно , что это: в ее «предпочтительном» списке), предполагается, что она должна осуществлять интеллектуальное управление роумингом между ними, обычно подключаясь к лучшей из них (измеряя это по нескольким факторам, как покрытие или скорость).
Но при работе с некоторыми дистрибутивами Linux (например, предназначенными для аудита безопасности) я обнаружил, что такое управление не очень разумно : иногда сеть зависает (не ведет себя полностью нормально), а операционная система остается в этой беспроводной сети.
Итак, я подумал о том, чтобы самому написать сценарий, чтобы заставить Linux выбирать другую беспроводную сеть, когда подключенная сеть замедляется или напрямую выходит из строя (возможно, это можно проверить, проверив связь с маршрутизатором / точкой доступа).
Что касается того, что я читал об управлении беспроводной сетью из командной строки, то «подключение к» кажется немного неудобным.
Кто-нибудь знает о хорошем инструменте командной строки для переключения в сеть, работающем под Linux? Помните, что мне не нужно подключаться к новой сети: я просто хочу подключиться к уже подключенной сети, поэтому предполагается, что операционная система знает пароль, данные шифрования и так далее.
Возможные примеры командной строки:
switchtowifi --essid MyWiFiNetwork
switchtowifi --essid MyWiFiNetwork --bssid 11:22:33:44:55:66
switchtowifi --channel 5
Первый пример переключается на любую уже сохраненную сеть WiFi с именем MyWiFiNetwork
.
Второй пример переключается на уже сохраненную сеть WiFi с именем MyWiFiNetwork
BSSID 11:22:33:44:55:66
.
Третий пример переключается на любую уже сохраненную сеть WiFi на канале 5.
Надеюсь, это не слишком поздно, чтобы быть полезным; но у меня есть аналогичное требование из-за наличия более одной точки доступа дома (включая тестирование некоторых, мое основное соединение и отдельную рабочую локальную сеть yadda yadda...)
Одна из проблем в этом вопросе заключается в том, что в нем нет упоминания о вашем дистрибутиве, используемых беспроводных утилитах, методе настройки известных вам сетей и т. д. Кроме того, насколько я вижу, на данный момент нет ничего подобного, без использования что- то вроде wicd-gtk и т. д.
Лично я использую Ubuntu, так как мне нравится управление пакетами/дистрибутивами, но я ненавижу Gnome/KDE и т. д. и выбираю Fluxbox, который делает обычные утилиты Wi-Fi немного бессмысленными/бесполезными.
Так; после отключения диспетчера сети, чтобы он не мешал, я вручную настроил нужные мне сети, используя подробности по адресу: http://linuxcommando.blogspot.co.uk/2013/10/how-to-connect-to-wpawpa2-wifi . -network.html
Файлы конфигурации для каждой сети я поместил в новый каталог в /etc/wpa_supplicant.d/SSID_HERE.conf, а затем сделал небольшой скрипт в /usr/local/bin/connectwifi , который (хотя и грубый WIP!) можно найти здесь . : http://dgunix.com/383-switching-between-wifi-networks-in-linux/
Надеюсь, это натолкнет вас хотя бы на некоторые идеи!
(Ответ найден на сайте Unix и Linux StackExchange)
Решение с использованием инструмента nmcli , включенного в большинство дистрибутивов или легко устанавливаемого через apt-get, yum... и т. д.:
Чтобы показать уже сохраненные сети Wi-Fi:
$ nmcli con
NAME UUID TYPE TIME
Wireless-1 28d6c265-xxxx-4e83-907f-ecb5ab3ac37c 802-11-wireless Thu
Wired-Network 30d29da3-xxxx-4ea2-94ff-0edac8954ff7 802-3-ethernet Sun
Wireless-2 89f31b44-xxxx-4b7d-abb1-8242a1fa7040 802-11-wireless Thu
Wireless-3 6adcb4e8-xxxx-4e88-bf50-872d9e5eb1f3 802-11-wireless Fri
Wireless-4 8c4fc701-xxxx-472e-aecc-40131c0d8d31 802-11-wireless Fri
Обратите внимание, что сеть хранится под уникальным идентификатором UUID .
Чтобы подключиться к любой из этих сетей (пример для Wireless-1
):
$ nmcli con up uuid 28d6c265-xxxx-4e83-907f-ecb5ab3ac37c
См. справочную страницу для получения дополнительных функций, таких как забыть, отключить, сканировать или подключиться к новой (еще не сохраненной) сети.
Инструмент nmcli
великолепен: он может работать с определенным беспроводным устройством (например: wlan0
) или с любым из них общим образом (например: вы просто указываете wifi
, и инструмент отвечает за установление соединения).
Информация взята отсюда .
Спасибо @ThatGuy за ссылку.
Можешь попробовать:
iw
который является основным инструментом для задач, связанных с сетью WiFi (см. Настройка беспроводной сети )iwconfig
/ iwlist
(набор инструментов, позволяющих управлять беспроводными расширениями),wpasupplicant
(в настоящее время в большинстве дистрибутивов wpa_supplicant установлен по умолчанию)Читать далее: