Verwenden Sie Network-Manager, um eine Verbindung zu einem WiFi Access Point in der Befehlszeile herzustellen

26

Ich möchte über die Befehlszeile eine Verbindung zu einem drahtlosen Zugriffspunkt herstellen. Im Idealfall brauche ich nur den Namen des AP. Aber die Hardware-Adresse würde auch funktionieren.

Ich weiß, dass ich nmclieine Verbindung zu einer verwalteten Netzwerkverbindung herstellen kann, aber in meinem Fall ist der Zugriffspunkt möglicherweise noch nicht für Network-Manager konfiguriert (siehe den Unterschied zwischen der Ausgabe von nm-toolund nmcli con).

Beispielausgabe von 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  [...]

Beispielausgabe von 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

[...]

Wie stelle ich eine Verbindung zu einem Zugangspunkt her, der NM möglicherweise nicht bekannt ist?

Extra: Herauszufinden, ob die Verbindung eine Passphrase benötigt, und diese auch über die Befehlszeile zu übermitteln, ist ebenfalls eine großartige Sache fehler auf der gui)

Stefano Palazzo
quelle

Antworten:

6

Sie können dafür verwenden cnetworkmanager.

Bearbeiten:

Nach einigen Untersuchungen wird klar, dass es nicht möglich ist, zwei "Benutzerkonfigurationsanbieter" (eine Anwendung, die eine bestimmte dbus - Adresse abhört) gleichzeitig auszuführen, und cnetworkmanager muss als solcher "Konfigurationsanbieter" fungieren (zumindest bis zum Verbindung wird aufgebaut).

Nun können Sie die Informationen für die Verbindung zu gconf unter dem /system/networking/connectionsSchlüssel hinzufügen (Sie können dies über die Befehlszeile oder ein Skript tun) und dann mit dbus oder einem Befehlszeilentool wie cnetworkmanager oder nmcli eine Verbindung herstellen. Möglicherweise müssen Sie auch zuerst den Schlüssel zum Schlüsselbund des Benutzers hinzufügen (um Passwort-Popups zu vermeiden).

Auf einem Desktop, auf dem ein anderer NM-Client als das nm-Applet (z. B. KDE) verwendet wird, funktioniert das natürlich nicht. Sie müssten herausfinden, wie Sie auch eine Konfiguration für sie bereitstellen können ...

Bearbeiten 2:

Es scheint, als ob es über org.freedesktop.NetworkManagerUserSettingsden System-DBus möglich wäre, aber das ist alles schlecht dokumentiert IMO ...

Vielleicht möchten Sie mehr über Konfigurationseinstellungen und die DBus-Schnittstellenspezifikation erfahren .

Und hier ist ein relevantes Beispiel (vielleicht möchten Sie eine Benutzerverbindung anstatt einer Systemverbindung einrichten)

JanC
quelle
Immer noch nichts. Leider funktioniert der cnetworkmanager neben dem networkmanager-applet ("Ein anderes applet läuft") nicht richtig
Stefano Palazzo
Ich habe nachgelesen, wie NM & nm-Applet funktioniert und meine Antwort bearbeitet.
21.
11

Sie können dies direkt mit tun nmcli, auch wenn die Verbindung noch nicht in Network Manager konfiguriert ist:

nmcli dev wifi con "myssid" password "myssidpassword"

Wenn Sie nicht möchten, dass das WLAN-Passwort in den letzten Versionen in Ihrem Verlauf gespeichert wird (möglicherweise neuer als unten angegeben), können Sie --asknmcli so einrichten, dass es Sie auffordert, fehlende Informationen anzugeben.

nmcli --ask device wifi connnect "myssid"

Diese Funktion wurde in Network Manager 0.9.6 hinzugefügt, sodass dies nur in Ubuntu 12.10 oder höher funktioniert.

Sie können auch eine Liste der verfügbaren Zugangspunkte abrufen mit:

nmcli dev wifi list
Robie Basak
quelle
conwird nicht erkannt vonnmcli dev wifi
kaiser
Welche Version benutzt du? Es funktioniert für mich und ist als Beispiel in der Manpage dokumentiert.
Robie Basak
nmcli -vis0.9.4.0
kaiser
Sie verwenden also 12.04? Wie ich in meiner Antwort sagte, funktioniert dies nur unter Ubuntu 12.10 oder höher.
Robie Basak
Dies könnte der Fall sein. Ich frage mich, ob ich es könnte sudo apt-get update.
Kaiser
2

Sie können iwconfig (wifitools) für die WEP-Verschlüsselung oder wpa_supplicant für WPA und WEP verwenden. Sie können auch wicd-curses verwenden, wenn Sie nach etwas Einfacherem suchen. Viel Glück.

chilicuil
quelle
Ich möchte wirklich den Netzwerk-Manager verwenden, vielleicht über dbus. Ich kann mich nicht zu sehr mit dem Betriebssystem herumschlagen, da das Programm, das ich schreibe, nicht nur auf meinem eigenen Computer ausgeführt wird. Die gesamte Konfiguration sollte nach Möglichkeit unverändert bleiben.
Stefano Palazzo
1

Sie können iwconfig und iwlist auschecken:

  • iwconfig manipuliert die grundlegenden Funkparameter
  • iwlist ermöglicht das Einleiten von Scan- und Listenfrequenzen , Bitraten, Verschlüsselungsschlüsseln ...

Es gibt viele Möglichkeiten. Weitere Informationen finden Sie unter Wireless Tools für Linux .

Fernando Briano
quelle
2
Wie gesagt, ich möchte den Netzwerk-Manager integrieren, nicht ersetzen.
Stefano Palazzo