如何使用NMCLI创建Wifi连接并通过WPA连接到SSID?


12

环境

  • BeagleBone Black运行Debian 7.7
  • nmcli工具,版本0.9.4.0

我尝试了一些命令示例来上手,但是没有一个示例可以帮助我添加连接和连接。

设备

# nmcli dev
DEVICE     TYPE              STATE        
wlan0      802-11-wireless   disconnected     <====
usb0       802-3-ethernet    unmanaged    
eth0       802-3-ethernet    connected 

连接数

我很少

nmcli con    
NAME                      UUID                                   TYPE              TIMESTAMP-REAL                    
Wired connection 1        00000000-4a11-43d1-9252-4b92de0e75c3   802-3-ethernet    Thu Oct 23 05:46:02 2014          
WLAN-A69E22               29eeb2f6-cf80-0000-0000-d23733e97eb4   802-11-wireless   Thu Oct 30 16:06:14 2014          
Wireless connection 1     bfaa9524-a1d9-0000-8279-71a56720c06c   802-11-wireless   Wed Feb 24 02:33:55 2015          
Wireless connection 2     00000000-d5cc-411b-a62e-000000000000   802-11-wireless   Wed Oct 22 23:31:24 2014   

网路

nmcli dev wifi list
SSID                              BSSID               MODE             FREQ       RATE       SIGNAL   SECURITY   ACTIVE  
'MAR'                       00:00:00:86:D0:22   Infrastructure   2462 MHz   54 MB/s    80       WEP        no      
'MYHOME'                    00:00:00:00:2D:16   Infrastructure   5180 MHz   44 MB/s    80       WPA WPA2   no

我想使用将新的无线连接添加到SSID MYHOMEnmcli并想连接到它。

我发现的文档似乎与我的版本不匹配 nmcli

对于Fedora,我发现以下方法可行,请参见此处

nmcli con add con-name MyCafe ifname wlan0 type wifi ssid MyCafe ip4 192.168.100.101/24 gw4 192.168.100.1

救命

连接数

# nmcli con help
Usage: nmcli con { COMMAND | help }
  COMMAND := { list | status | up | down | delete }

  list [id <id> | uuid <id>]
  status [id <id> | uuid <id> | path <path>]
  up id <id> | uuid <id> [iface <iface>] [ap <BSSID>] [--nowait] [--timeout <timeout>]
  down id <id> | uuid <id>
  delete id <id> | uuid <id>

设备

# nmcli dev help
Usage: nmcli dev { COMMAND | help }

  COMMAND := { status | list | disconnect | wifi }

  status
  list [iface <iface>]
  disconnect iface <iface> [--nowait] [--timeout <timeout>]
  wifi [list [iface <iface>] [bssid <BSSID>]]

似乎都不允许建立连接

一些输出

nmcli -f GENERAL,WIFI-PROPERTIES dev list iface wlan0

GENERAL.DEVICE:                         wlan0
GENERAL.TYPE:                           802-11-wireless
GENERAL.VENDOR:                         Realtek
GENERAL.PRODUCT:                        802.11n NIC
GENERAL.DRIVER:                         rtl8812au
GENERAL.HWADDR:                         04:8D:38:0F:D9:32
GENERAL.STATE:                          30 (disconnected)
GENERAL.REASON:                         42 (The supplicant is now available)
GENERAL.UDI:                            /sys/devices/ocp.3/47400000.usb/musb-hdrc.1.auto/usb1/1-1/1-1.3/1-1.3:1.0/net/wlan0
GENERAL.IP-IFACE:                       
GENERAL.NM-MANAGED:                     yes
GENERAL.FIRMWARE-MISSING:               no
GENERAL.CONNECTION:                     not connected
WIFI-PROPERTIES.WEP:                    yes
WIFI-PROPERTIES.WPA:                    yes
WIFI-PROPERTIES.WPA2:                   yes
WIFI-PROPERTIES.TKIP:                   yes
WIFI-PROPERTIES.CCMP:                   yes

1
假设Ubuntu尊重Debian的软件包编号,更改日志似乎表明该功能是在0.9.6.0中添加的“添加了从nmcli连接到新的WiFi网络的能力”)。FWIW通过dev对象而不是con对象进行访问,因此nmcli dev wifi connect <SSID> password <PASS> iface <IFACE>
steeldriver

好的,让我看看是否可以更新软件包。
zabumba

@joelmaranhao:你成功了吗?您如何将其更新到下一个版本?有一个不同的问题,也需要更新的版本,但apt-get upgrade将其保持在0.9.4。
nhee 2015年

升级到0.9.10,这是一个很大的更新。
iman

Answers:


12

nmtui是基于文本用户界面的nmcli的替代命令

以root身份输入

nmtui

在此处输入图片说明


这是在无数次cli黑客之夜后没有任何合理结果的唯一有效的解决方案(fedora 23)。为什么他妈的这是如此愚蠢的简单,没有人在任何现有的Wiki中编写它?非常感谢GAD3R!
bitbitdecker's

1
在我的Debian 8安装中,nmtui和nmcli都不可用。是什么赋予了?
艾莉亚

1
@Arya nmtui是的一部分network-managerpackages.debian.org/...
GAD3R

7
nmcli device wifi con "ssid" password "p455w04d"

1
谢谢你 我真的不明白为什么密码要求使用裸字/自变量/命令,而SSID却不需要。
pdoherty926 '18 -10-25

@ pdoherty926一个糟糕的解决方法是像在响应中那样使用清晰但错误的密码来运行命令。然后您可以使用nmcli connection up "ssid" passwd-file <path to file>
MrMas
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.