Використовуйте Менеджер мереж для підключення до точки доступу Wi-Fi у командному рядку


26

Я хотів би підключитися до точки бездротового доступу з командного рядка. В ідеалі мені знадобиться лише назва AP. Але апаратна адреса також працювала б.

Я знаю, що можу використовуватись nmcliдля підключення до керованого мережевого з'єднання, але в моєму випадку точка доступу може бути ще не налаштована для Менеджера мереж (Дивіться різницю між результатами 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

[...]

Як підключитися до точки доступу, яка може бути або не відома NM?

Додатково: З'ясувати, чи потрібне з'єднання фразову фразу, і також було б чудово подати його в командному рядку (тобто, було б непогано, якби менеджер мережі не відкривав жодних діалогів клавіш або помилки на gui)

Відповіді:


6

Ви можете використовувати cnetworkmanagerдля цього.

Редагувати:

Після деякого розслідування стає зрозумілим, що неможливо одночасно запустити двох "постачальників конфігурації користувачів" (програму, що прослуховує певну адресу dbus), і cnetworkmanager повинен діяти як такий "постачальник конфігурації" (принаймні, до з'єднання налаштовано).

Тепер ви можете додати інформацію для підключення до gconf під /system/networking/connectionsключем (ви можете зробити це з командного рядка або сценарію), а потім використовувати dbus або інструмент командного рядка, наприклад cnetworkmanager або nmcli для підключення до нього. Можливо, вам також доведеться спочатку додати ключ до введення ключа користувача (щоб уникнути спливаючих паролів).

Але, звичайно, це не працюватиме на робочому столі, який використовує інший NM-клієнт, ніж nm-аплет (наприклад, KDE). Вам доведеться розібратися, як надати конфігурацію для них теж ...

Редагувати 2:

Здається, це можливо через org.freedesktop.NetworkManagerUserSettingsсистемний DBus, але це все погано задокументовано IMO ...

Ви можете прочитати про налаштування конфігурації та специфікацію інтерфейсу DBus .

І ось відповідний приклад (можливо, ви хочете встановити з'єднання користувача замість системного з'єднання, хоча)


Ще нічого. На жаль, cnetworkmanager не працюватиме належним чином, окрім networkmanager-applet ("Інший аплет працює")
Стефано Палаццо

Я читав, як NM & nm-аплет працює і редагував свою відповідь.
січня

11

Це можна зробити безпосередньо, використовуючи nmcli, навіть якщо з'єднання ще не налаштовано в Менеджері мереж:

nmcli dev wifi con "myssid" password "myssidpassword"

Якщо ви не хочете, щоб у вашій історії зберігався пароль бездротового зв’язку в останніх версіях (можливо, новіший, ніж зазначено нижче), ви можете додати, --askщо nmcli підкаже про відсутність необхідної інформації.

nmcli --ask device wifi connnect "myssid"

Цей інструмент додано в Менеджер мережі 0.9.6, тому це працює лише в Ubuntu 12.10 або пізнішої версії.

Ви також можете отримати список доступних точок доступу за допомогою:

nmcli dev wifi list

conне впізнаєтьсяnmcli dev wifi
kaiser

Яку версію ви використовуєте? Це працює для мене і задокументовано як приклад на сторінці сторінки.
Робі Басак

nmcli -vє0.9.4.0
кайзер

Отже, ви використовуєте 12.04? Як я вже говорив у своїй відповіді, це працює лише на Ubuntu 12.10 або пізнішої версії.
Робі Басак

Це може бути так. Цікаво, чи міг би я sudo apt-get updateце зробити.
кайзер

2

Ви можете використовувати iwconfig (wifitools) для шифрування Wep, або wpa_supplicant для wpa та wep; також ви використовуєте wicd-прокляття, якщо шукаєте щось легше, удачі =)


Я дуже хотів би використовувати мережевий менеджер, можливо, через dbus. Я не можу занадто возитися з операційною системою, так як програма, яку я пишу, не запускається лише на моїй власній машині. Вся конфігурація, де це можливо, повинна залишатися незмінною.
Стефано Палацо

1

Ви можете перевірити iwconfig та iwlist:

  • iwconfig маніпулює основними параметрами бездротового зв'язку
  • iwlist дозволяють ініціювати сканування та списку частот, бітрейтів, ключів шифрування ...

Варіантів багато. Дізнайтеся більше про бездротові інструменти для Linux .


2
Як я вже говорив, я хотів би інтегруватися з мережевим менеджером, а не замінювати його.
Стефано Палацо
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.