一、背景
背景:wpa_supplicant工具在某些场景的使用上感觉不够简洁、灵活,因此找到了这个工具,nmcli只需要在新增无线时指定相关的配置即可生成各种认证的配置,完成各种认证。
二、nmcli安装使用
nmcli文档:https://developer-old.gnome.org/NetworkManager/stable/nmcli.html
安装: apt install network-manager
注:不同内核和驱动效果可能不一样,有些内核下,部分指令无法连接成功,建议使用推荐的镜像
功能 | 指令 | 说明 |
进入nmcli交互 | nmcli connection edit type wifi | |
检查设备状态 | nmcli device status | |
查看激活的连接 | nmcli connection show --active | |
查看已存在的连接 | nmcli connection show | |
显示设备详情 | nmcli device show enp0s8 | enp0s8为网卡名 |
新增的连接查看配置文件 | /etc/NetworkManager/system-connections 目录下找到对应的连接名称 | |
新增企业认证 | nmcli connection add con-name wifi_name type wifi ifname wlx5cde341992c9 ssid wifi_name wifi-sec.key-mgmt wpa-eap 802-1x.eap peap 802-1x.identity 1 802-1x.password 1 ipv4.method auto 802-1x.phase2-auth mschapv2 | wifi_name 为wifi名,wlx5cde341992c9为网卡名,802-1x.identity后面为账号,802-1x.password后面为密码 |
新增psk连接 | nmcli connection add con-name wifi_name type wifi ifname wlx5cde341992c9 ssid sdn_test_init wifi-sec.key-mgmt wpa-psk wifi-sec.psk sdn_test_init_psk ipv4.method auto | wifi_name 为ssid名称,wlx5cde341992c9为无线网卡名称,wpa-psk表示为wpa类型,wifi-sec.psk后面接PSK密钥, ipv4.method auto表示IPV4地址为DHCP |
新增Open | nmcli connection add con-name wifi_name type wifi ifname wlx5cde341992c9 ssid wifi_name ipv4.method auto | |
新增802.1x账号认证 | nmcli connection add con-name wifi_name type wifi ifname wlx5cde341992c9 ssid wifi_name 802-1x.eap peap 802-1x.identity 1 802-1x.password 1 802-1x.phase2-auth mschapv2 wifi-sec.key-mgmt IEEE8021X ipv4.method auto | 重点在wifi-sec.key-mgmt IEEE8021X 需要证书认证的参数需要带 ( wifi-sec.key-mgmt wpa-eap 802-1x.eap ttls 802-1x.phase2-auth mschapv2 802-1x.ca-cert ~/ca.pem 802-1x.client-cert ~/cert.pem \ 802-1x.private-key-password "..." 802-1x.private-key ~/key.pem) |
新增802.1x 安全账号认证ttls | nmcli connection add con-name wifi_name type wifi ifname wlx5cde341992c9 ssid wifi_name 802-1x.eap ttls 802-1x.identity test123 802-1x.password test111 802-1x.phase2-auth mschapv2 wifi-sec.key-mgmt IEEE8021X ipv4.method auto | |
扫描wifi | nmcli dev wifi | |
启用连接 | nmcli connection up wifi_name ifname wlx5cde341992c9 | |
删除连接 | nmcli connection delete wifi_name | |
列出所有无线网络 | nmcli d wifi list | |
关闭/打开 所有无线网卡 | nmcli nm wifi off/on | |
修改连接 | 修改为动态地址:nmcli con modify wifi_name ipv4.method auto 静态地址:nmcli connection add con-name <连接名> ifname <网卡名> type <连接类型> ipv4.method manual ipv4.addresses | |
交互部分指令 | nmcli> set ipv4.dns 8.8.8.8 8.8.4.4 nmcli> print nmcli> verify nmcli> save nmcli> quit | |
802.1x证书认证 tls | nmcli connection add con-name wifi_name type wifi ifname wlx5cde341992c9 ssid wifi_name 802-1x.eap tls wifi-sec.key-mgmt IEEE8021X ipv4.method auto 802-1x.client-cert /etc/pki/wifi/client.p12 802-1x.private-key /etc/pki/wifi/client.key 802-1x.private-key-password 123456 |
(wpa2-psk可选none, ieee8021x, wpa-psk, wpa-eap, sae )
(802-1x.eap 可选leap, md5, tls, peap, ttls, sim, fast, pwd )
(802-1x.phase2-auth可选pap, chap, mschap, mschapv2, gtc, otp, md5, tls)
自动连接参数: connection.autoconne true
注:上述指令如果一直正常,突然无法连接了,可能是 网卡出现异常,需要重启设备恢复
参考:https://blog.51cto.com/u_7072753/2416910