Я хотел бы подключиться к беспроводной точке доступа из командной строки. В идеале, мне нужно только имя AP. Но аппаратный адрес тоже подойдет.
Я знаю, что могу использовать nmcli
для подключения к управляемому сетевому соединению, но в моем случае точка доступа еще не может быть настроена для Network-Manager (см. Разницу между выходными данными nm-tool
и nmcli con
. ]).
Пример вывода nmcli
:
Auto pwln 3a3d62b1-bbdf-4f76-b4d2-c211fd5cfb03 802-11-wireless [...]
Wired Network aa586921-accf-4932-98c4-c873c310f08e 802-3-ethernet [...]
Cisco-UDP Uni 7f94847b-04dc-40b7-9955-5246fb77cc65 vpn [...]
T-mobile (D1) 867f345a-cbbf-4bd4-b883-a5e5ae0932f0 gsm [...]
Пример вывода nm-tool
:
State: connected
- Device: eth1 [Auto pwln] ----------------------------------------------------
[...]
Wireless Access Points (* = current AP)
*pwln: Infra, [...], Freq 2472 MHz, Rate 54 Mb/s, Strength 80 WPA WPA2
WLAN: Infra, [...], Freq 2422 MHz, Rate 54 Mb/s, Strength 20 WPA WPA2
[...]
Как подключиться к точке доступа, которая может или не может быть известна to NM?
Дополнительно: выяснить, нужна ли для соединения парольная фраза, и также подать ее в командной строке (то есть было бы неплохо, если бы сетевой менеджер не будет открывать какие-либо диалоги ключей или ошибки в графическом интерфейсе)
Вы можете использовать iwconfig (wifitools) для шифрования wep или wpa_supplicant для wpa и wep, также вы используете wicd-curses, если вы ищете что-то более простое, удачи =)
Вы можете сделать это напрямую, используя nmcli
, даже если соединение еще не настроено в Network Manager:
nmcli dev wifi con "myssid" password "myssidpassword"
Если вы не хотите сохранять пароль беспроводной сети в своей истории в последних версиях (возможно, новее, чем упомянуто ниже) вы можете добавить --ask
, чтобы nmcli запрашивала недостающую информацию, в которой она нуждается.
nmcli --ask device wifi connnect "myssid"
Эта возможность была добавлена в Network Manager 0.9.6, поэтому она работает только в Ubuntu 12.10 или более поздней версии.
Вы также можете получить список доступных точек доступа с помощью:
nmcli dev wifi list
Вы можете проверить iwconfig и iwlist:
Есть много вариантов. Ознакомьтесь с Wireless Tools for Linux , чтобы узнать больше.
Для этого вы можете использовать cnetworkmanager
.
Редактировать:
После некоторого расследования становится ясно, что невозможно одновременно запустить двух «провайдеров конфигурации пользователя» (приложение, прослушивающее определенный адрес dbus), и cnetworkmanager должен выступать в качестве такого «провайдера конфигурации» (по крайней мере, пока не будет установлено соединение).
Теперь, что вы можете сделать, это добавить информацию для подключения к gconf с помощью клавиши /system/networking/connections
(вы можете сделать это из командной строки или скрипта), а затем использовать dbus или инструмент командной строки, такой как cnetworkmanager или NMCLI подключиться к нему. Возможно, вам также придется сначала добавить ключ в связку ключей пользователя (чтобы избежать всплывающих окон паролей).
Но, конечно, это не будет работать на десктопе, который использует другой NM-клиент, чем nm-applet (например, KDE). Вы должны были бы выяснить, как обеспечить конфиг для них тоже ...
Редактировать 2:
Кажется, что это может быть возможно через org.freedesktop.NetworkManagerUserSettings
в системном DBus, но это все плохо документировано IMO ...
Возможно, вы захотите прочитать о настройках конфигурации и спецификации интерфейса DBus .
А вот соответствующий пример (может быть, вы хотите установить пользовательское соединение вместо системного, хотя)