Użyj Menedżera sieci, aby połączyć się z punktem dostępu Wi-Fi w wierszu polecenia


26

Chciałbym połączyć się z bezprzewodowym punktem dostępowym z wiersza poleceń. Idealnie, potrzebowałbym tylko nazwy AP. Ale adres sprzętowy również by działał.

Wiem, że mogę używać nmclido łączenia się z zarządzanym połączeniem sieciowym, ale w moim przypadku punkt dostępu może nie zostać jeszcze skonfigurowany dla Network-Managera (zobacz różnicę między danymi wyjściowymi nm-toola nmcli con).

Przykładowe dane wyjściowe 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  [...]

Przykładowe dane wyjściowe 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

[...]

Jak połączyć się z punktem dostępu, który może być nieznany NM?

Dodatkowo: Sprawdzanie, czy połączenie wymaga hasła, i przesłanie go również w wierszu polecenia byłoby również świetne (to znaczy, że byłoby miło, gdyby menedżer sieci nie otworzył żadnych okien dialogowych kluczy lub błędy w GUI)

Odpowiedzi:


6

Możesz cnetworkmanagerdo tego użyć .

Edytować:

Po pewnym dochodzeniu staje się jasne, że nie jest możliwe jednoczesne uruchomienie dwóch „dostawców konfiguracji użytkownika” (aplikacja nasłuchująca pod określonym adresem dbus), a cnetworkmanager musi działać jako „dostawca konfiguracji” (przynajmniej do czasu połączenie jest skonfigurowane).

Teraz możesz dodać informacje o połączeniu z gconf pod /system/networking/connectionskluczem (możesz to zrobić z wiersza poleceń lub skryptu), a następnie użyć dbus lub narzędzia wiersza polecenia, takiego jak cnetworkmanager lub nmcli, aby się z nim połączyć. Być może będziesz musiał najpierw dodać klucz do kluczy użytkownika (aby uniknąć wyskakujących haseł).

Ale oczywiście nie zadziała to na pulpicie, który używa innego klienta NM niż nm-applet (np. KDE). Trzeba też wymyślić, jak zapewnić dla nich konfigurację ...

Edycja 2:

Wydaje się, że jest to możliwe org.freedesktop.NetworkManagerUserSettingsw systemie DBus, ale to wszystko jest źle udokumentowane IMO ...

Możesz przeczytać o ustawieniach konfiguracji i specyfikacji interfejsu DBus .

Oto odpowiedni przykład (być może chcesz skonfigurować połączenie użytkownika zamiast połączenia systemowego)


Wciąż nic. Niestety cnetworkmanager nie będzie działał poprawnie oprócz apletu menedżera sieci („Uruchomiony jest inny aplet”)
— Stefano Palazzo

Przeczytałem o działaniu apletu NM i nm i zredagowałem swoją odpowiedź.
— JanC

11

Możesz to zrobić bezpośrednio nmcli, nawet jeśli połączenie nie jest jeszcze skonfigurowane w Network Managerze:

nmcli dev wifi con "myssid" password "myssidpassword"

Jeśli nie chcesz, aby hasło sieci bezprzewodowej było przechowywane w historii w najnowszych wersjach (być może nowszych niż wymienione poniżej), możesz dodać, --askaby nmcli pytał o brakujące informacje, których potrzebuje.

nmcli --ask device wifi connnect "myssid"

Ta funkcja została dodana w Network Manager 0.9.6, więc działa tylko w Ubuntu 12.10 lub nowszym.

Możesz również uzyskać listę dostępnych punktów dostępowych za pomocą:

nmcli dev wifi list

connie jest rozpoznawany przeznmcli dev wifi
— kaiser

Jakiej wersji używasz? To działa dla mnie i zostało udokumentowane jako przykład na stronie podręcznika.
— Robie Basak,

nmcli -vjest0.9.4.0
— kaiser

Więc używasz 12.04? Jak powiedziałem w mojej odpowiedzi, działa to tylko na Ubuntu 12.10 lub nowszym.
— Robie Basak,

Może tak być. Zastanawiam się, czy mógłbym sudo apt-get updateto zrobić.
— kaiser

2

Możesz użyć iwconfig (wifitools) do szyfrowania WEP lub wpa_supplicant dla WPA i WEP, a także używasz wicd-curses, jeśli szukasz czegoś łatwiejszego, powodzenia =)


Naprawdę chciałbym użyć menedżera sieci, może przez dbus. Nie mogę za bardzo zadzierać z systemem operacyjnym, ponieważ program, który piszę, nie będzie działał tylko na moim komputerze. Cała konfiguracja, jeśli to możliwe, powinna pozostać niezmieniona.
— Stefano Palazzo

1

Możesz sprawdzić iwconfig i iwlist:

  • iwconfig manipuluje podstawowymi parametrami sieci bezprzewodowej
  • iwlist pozwala inicjować skanowanie i wyświetlać częstotliwości, przepływności, klucze szyfrowania ...

Istnieje wiele opcji. Więcej informacji znajdziesz w Wireless Tools for Linux .


2
Jak powiedziałem, chciałbym zintegrować się z menedżerem sieci, a nie zastąpić go.
— Stefano Palazzo
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.