使用网络管理器在命令行上连接到 WiFi 接入点

使用网络管理器在命令行上连接到 WiFi 接入点

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

我知道我可以使用nmcli来连接到托管网络连接,但就我而言,接入点可能尚未为网络管理器配置(请参阅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 上弹出任何密钥环对话框或错误就好了)

答案1

您可以直接使用 执行此操作nmcli,即使尚未在网络管理器中配置连接:

nmcli dev wifi con "myssid" password "myssidpassword"

如果您不想在最近的版本(可能比下面提到的更新)的历史记录中存储无线密码,您可以添加--asknmcli 提示您缺少所需的信息。

nmcli --ask device wifi connnect "myssid"

该功能是在网络管理器 0.9.6 中添加的,因此仅适用于 Ubuntu 12.10 或更高版本。

您还可以使用以下方式获取可用接入点的列表:

nmcli dev wifi list

答案2

您可以使用cnetworkmanager为了这。

编辑:

经过一番调查后,很明显不可能同时运行两个“用户配置提供程序”(在某个 dbus 地址上监听的应用程序),而 cnetworkmanager 需要充当这样的“配置提供程序”(至少在建立连接之前)。

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

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

编辑2:

似乎可以通过org.freedesktop.NetworkManagerUserSettings系统 DBus 来实现,但在我看来这些都没有详细记录...

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

这是一个相关的例子(也许您想建立用户连接而不是系统连接)

答案3

您可以使用 iwconfig (wifitools) 进行 wep 加密,或使用 wpa_supplicant 进行 wpa 和 wep 加密,如果您需要更简单的方法,也可以使用 wicd-curses,祝您好运 =)

答案4

您可以查看 iwconfig 和 iwlist:

  • 系统配置操纵基本无线参数
  • 列表允许启动扫描并列出频率、比特率、加密密钥……

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

相关内容