it-swarm.cn

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

我想从命令行连接到无线接入点。理想情况下,我只需要AP的名称。但硬件地址也可以。

我知道我可以使用nmcli连接到托管网络连接,但在我的情况下,可能还没有为Network-Manager配置访问点(请参阅nm-toolnmcli 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的错误)

26
Stefano Palazzo

你可以使用 cnetworkmanager

编辑:

经过一些调查后,很明显无法同时运行两个“用户配置提供程序”(一个应用程序在某个dbus地址上侦听),而cnetworkmanager需要充当这样一个“配置提供者”(至少直到建立连接)。

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

但是当然,这不适用于使用另一个NM-client而不是nm-applet(例如KDE)的桌面。你必须弄清楚如何为它们提供配置......

编辑2:

看起来有可能通过系统DBus上的org.freedesktop.NetworkManagerUserSettings,但这都是记录不清的IMO ......

您可能想要阅读 配置设置DBus接口规范

这里是 一个相关的例子 (可能你想建立一个用户连接,而不是系统连接)

6
JanC

您可以使用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
11
Robie Basak

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

2
chilicuil

你可以查看iwconfig和iwlist:

  • iwconfig操纵基本的无线参数
  • iwlist允许启动扫描并列出频率,比特率,加密密钥......

有很多选择。查看 适用于Linux的无线工具 了解更多信息。

1
Fernando Briano