「Linux」- 使用NetworkManager连接Wi-Fi热点 @20210330
我的系统是CentOS 7.5,最小化安装的,所以没有图形化界面,没有办法通过网线接入路由设备,要联网只能接入无线热点。
连接无线热点可以使用WAP Supplicant工具,也可以使用NetworkManager工具,还有一些其他的工具。
本文主要介绍NetworkManager来连接无线热点的方法。之所以使用它,是因为NetworkManager管理网络及其方便。
#1 安装「NetworkManager-wifi」插件
尴尬就尴尬在这里,都没有联网,怎么安装呢?反正就那么几种办法:
* 方法一、在设备上使用WPA Supplicant工具包先连接到无线。 * 方法二、把设备接到笔记本,然后笔记本的无线和有线桥接,但是STATION MODE下的无线网卡无法桥接。 * 方法三、下载离线包,复制到设置上使用RPM手动安装。 * 可能开有其他的方法……
很显然「方法一」,对于我来说,是最便捷的。所以,我先使用wpa_supplicant(8)进行无线连接,这里不展开介绍,可以参考「with WPA Supplicant」一文。注意,使用wpa_supplicant(8)只是临时连接无线热点,“临时”不是不能连接热点,因为它不太适用于网络的管理,在管理方面不如NetworkManager灵活。所以即使连接上了网络,也只是临时使用以下,最终还是使用NetworkManager进行连接。
然后,执行yum install -y NetworkManager-wifi来安装插件。实际上我执行了yum install -y NetworkManager*来安装了所有的插件,以防还需要其他的插件或进行其他的网络配置。
重启NetworkManager服务来加载插件:systemctl restart NetworkManager.service
如果不安装该插件,控制台会输出Error: no device found for connection 'wlan0'。执行journactl -f -u NetworkManager命令查看日志,会发现错误(wlan0): 'wifi' plugin not available; creating generic device,即缺少了NetworkManager-wifi插件。
#2 查看设备状态
执行命令nmcli device查看设备状态。在正常情况下,看到的输出如下:
# nmcli device DEVICE TYPE STATE CONNECTION wlan0 wifi disconnected -- lo loopback unmanaged --
但是在有些情况下,无线网卡wlan0出于ummanaged状态。如下所示:
# nmcli device DEVICE TYPE STATE CONNECTION wlan0 wifi unmanaged -- lo loopback unmanaged --
无线网卡wlan0处于unmanaged状态,这表示此设备不被Networkmanager管理。因此执行如下命令,让NetworkManager管理此设备:
nmcli dev set wlan0 managed yes
让NetworkManger管理此网卡。参考「Ethernet device not managed」一文。
如果有些设备不需要被NetworkManager管理,则可以使用nmcli命令或修改配置文件。配置文件的修改参考NetworkManager.conf手册中的unmanaged-devices指令。
#3 扫描无线热点
使用nmcli device wifi list命令来扫描热点。如下示例:
# nmcli device wifi list SSID MODE CHAN RATE SIGNAL BARS SECURITY xmstro-805 Infra 1 54 Mbit/s 64 ▂▄▆_ WPA1 WPA2 CMCC-kxH9 Infra 6 54 Mbit/s 59 ▂▄▆_ WPA1 WPA2 ChinaNet-ZmAv Infra 9 54 Mbit/s 49 ▂▄__ WPA1
#4 连接无线热点(关键步骤)
执行nmcli device wifi connect "SSID-Name" password "your password"命令连接无线热点。如下示例:
# nmcli device wifi connect "xmstro-805" password "8001801881" Device 'wlan0' successfully activated with 'f858dc0b-0912-4b18-8630-5d88992b65a5'.
#5 查看连接状态
使用nmcli connection show命令查看连接状态。如下示例:
# nmcli connection show NAME UUID TYPE DEVICE xmstro-805 f858dc0b-0912-4b18-8630-5d88992b65a5 802-11-wireless wlan0
emmmmm...就这么连上了。IP地址也是自动分配的,不需要手动设置。
## 其他设置方法
或者你可以使用老方法(我使用了这种方法,因为可设置更多的信息):
nmcli c add type wifi con-name "<name>" ifname "wlan0" ssid "<ssid>" nmcli c modify <name> wifi-sec.key-mgmt wpa-psk wifi-sec.psk "<password>" nmcli c up "<name>"
相关文章
「Linux」- 使用WPA Supplicant连接无线热点
参考文献
Connect to a wireless network using command line nmcli
How to connect to wifi using nmcli?
How can I find out what plugin is missing in nmcli?
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 地球OL攻略 —— 某应届生求职总结
· 提示词工程——AI应用必不可少的技术
· Open-Sora 2.0 重磅开源!
· 周边上新:园子的第一款马克杯温暖上架