使用Network-Manager在命令行上连接到WiFi接入点


26

我想从命令行连接到无线访问点。理想情况下,我只需要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

[...]

如何连接到NM可能知道或可能不知道的接入点?

额外:找出连接是否需要密码,并在命令行上提交也很方便(也就是说,如果网络管理员不会弹出任何密钥环对话或gui上的错误)

Answers:


6

您可以cnetworkmanager为此使用。

编辑:

经过一番调查,很明显,不可能同时运行两个“用户配置提供程序”(一个在特定dbus地址上侦听的应用程序),并且cnetworkmanager需要充当这样的“配置提供程序”(至少直到连接已建立)。

现在,您可以做的是在/system/networking/connections密钥下添加与gconf的连接信息(您可以从命令行或脚本执行此操作),然后使用dbus或cnetworkmanager或nmcli之类的命令行工具进行连接。也许您还必须先将密钥添加到用户的密钥环中(以避免弹出密码)。

但是,当然,这在使用除nm-applet(例如KDE)以外的其他NM客户端的桌面上将不起作用。您还必须弄清楚如何为他们提供配置...

编辑2:

似乎可以通过org.freedesktop.NetworkManagerUserSettings系统DBus来实现,但这是IMO记录不足的东西。

您可能需要阅读有关配置设置DBus接口规范的信息

这是一个相关的示例(尽管您可能想要设置用户连接而不是系统连接)


依然没有。不幸的是,除了networkmanager-applet(“另一个applet正在运行”)之外,cnetworkmanager不能正常工作
Stefano Palazzo

我确实阅读了NM&nm-applet的工作原理并编辑了我的答案。
2010年1

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

connmcli dev wifi
kaiser

您使用什么版本?它对我有用,在手册页中作为示例进行了说明。
罗比·巴萨克

nmcli -v0.9.4.0
kaiser 2014年

所以您正在使用12.04?正如我在回答中所说,这仅适用于Ubuntu 12.10或更高版本。
罗比·巴萨克

可能是这种情况。我想知道是否可以sudo apt-get update
kaiser 2014年

2

您可以使用iwconfig(wifitools)进行wep加密,或者使用wpa_supplicant进行wpa和wep,如果您正在寻找更简单的东西,也可以使用wicd-curses,祝您好运=)


我真的想使用网络管理器,也许通过dbus。我不会太在意操作系统,因为我正在编写的程序不仅会在我自己的机器上运行。所有配置(如果可能)应保持不变。
Stefano Palazzo

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.