Ste*_*zzo 27 command-line network-manager wireless
我想从命令行连接到无线接入点。理想情况下,我只需要 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 [...]
Run Code Online (Sandbox Code Playgroud)
示例输出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
[...]
Run Code Online (Sandbox Code Playgroud)
如何连接到 NM 可能知道或不知道的接入点?
额外:找出连接是否需要密码,并在命令行上提交它也很棒(也就是说,如果网络管理器不会弹出任何密钥环对话或gui上的错误)
Rob*_*sak 12
您可以直接使用 执行此操作nmcli
,即使尚未在网络管理器中配置连接:
nmcli dev wifi con "myssid" password "myssidpassword"
Run Code Online (Sandbox Code Playgroud)
如果您不想在最近的版本(可能比下面提到的更新)中将无线密码存储在您的历史记录中,您可以添加--ask
让 nmcli 提示您缺少所需的信息。
nmcli --ask device wifi connnect "myssid"
Run Code Online (Sandbox Code Playgroud)
这个工具是在 Network Manager 0.9.6 中添加的,所以这只适用于 Ubuntu 12.10 或更高版本。
您还可以通过以下方式获取可用接入点列表:
nmcli dev wifi list
Run Code Online (Sandbox Code Playgroud)
您可以cnetworkmanager
为此使用。
编辑:
经过一番调查,很明显不可能同时运行两个“用户配置提供者”(一个监听某个 dbus 地址的应用程序),而 cnetworkmanager 需要充当这样的“配置提供者”(至少直到连接已建立)。
现在,您可以做的是在/system/networking/connections
密钥下添加连接到 gconf 的信息(您可以从命令行或脚本执行此操作),然后使用 dbus 或命令行工具(如 cnetworkmanager 或 nmcli)连接到它。也许您还必须首先将密钥添加到用户的密钥环中(以避免密码弹出窗口)。
但当然,这不适用于使用其他 NM 客户端而不是 nm-applet(例如 KDE)的桌面。您还必须弄清楚如何为他们提供配置...
编辑2:
似乎可以通过org.freedesktop.NetworkManagerUserSettings
系统 DBus 来实现,但这在 IMO 中的记录很差...
这是一个相关的例子(也许你想设置一个用户连接而不是系统连接)
归档时间: |
|
查看次数: |
37365 次 |
最近记录: |