我想从命令行连接到无线接入点。理想情况下,我只需要 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上的错误)
您可以直接使用 执行此操作
nmcli
,即使尚未在网络管理器中配置连接:如果您不想将无线密码存储在最新版本的历史记录中(可能比下面提到的更新),您可以添加
--ask
nmcli 提示您缺少所需的信息。此功能是在 Network Manager 0.9.6 中添加的,因此仅适用于 Ubuntu 12.10 或更高版本。
您还可以通过以下方式获取可用接入点列表:
你可以用
cnetworkmanager
这个。编辑:
经过一番调查,很明显不可能同时运行两个“用户配置提供者”(一个监听某个 dbus 地址的应用程序),而 cnetworkmanager 需要充当这样的“配置提供者”(至少在连接已建立)。
现在,您可以在
/system/networking/connections
密钥下添加与 gconf 的连接信息(您可以从命令行或脚本执行此操作),然后使用 dbus 或 cnetworkmanager 或 nmcli 等命令行工具连接到它。也许您还必须首先将密钥添加到用户的密钥环(以避免密码弹出)。但当然,这在使用另一个 NM 客户端而不是 nm-applet(例如 KDE)的桌面上是行不通的。您还必须弄清楚如何为他们提供配置...
编辑2:
似乎可以通过
org.freedesktop.NetworkManagerUserSettings
系统 DBus 来实现,但这在 IMO 的文档中都没有得到很好的记录……您可能想了解配置设置和DBus 接口规范。
这是一个相关的例子(也许你想建立一个用户连接而不是系统连接)
您可以使用 iwconfig (wifitools) 进行 wep 加密,或使用 wpa_supplicant 进行 wpa 和 wep,如果您正在寻找更简单的东西,您也可以使用 wicd-curses,祝您好运 =)
您可以查看 iwconfig 和 iwlist:
有很多选择。查看适用于 Linux 的无线工具了解更多信息。