首页 > 文章列表 > 使用Nmcli命令从Linux终端连接WiFi

使用Nmcli命令从Linux终端连接WiFi

linux Linux系统 Linux命令 红帽 linux认证 红帽linux linux教程 linux视频
229 2025-04-11

使用Nmcli命令从Linux终端连接WiFi

Linux系统下无线网络管理有多种命令行工具可选。部分工具用于查看无线网卡状态(启用/禁用,连接状态),例如iwiwlistipifconfig。另一些工具则用于连接无线网络,其中nmcli是一个强大的命令行工具,可用于创建、显示、编辑、删除、启用和禁用网络连接,以及控制和显示网络设备状态。

首先,使用以下命令确定无线网卡名称。命令输出中,网卡名称/接口通常为wlp1s0,如下所示:

$ iw dev
phy#0
Interface wlp1s0
ifindex 3
wdev 0x1
addr 38:b1:db:7c:78:c7
type managed

接下来,检查Wi-Fi设备连接状态:

iw wlp2s0 link
Not connected.

如果未连接到任何网络,则扫描可用Wi-Fi网络:

sudo iw wlp2s0 scan
command failed: Network is down (-100)

如果出现Network is down错误,表示网卡处于DOWN状态。使用ip命令将其启用(UP):

$ sudo ip link set wlp1s0 up

如果出现RTNETLINK answers: Operation not possible due to RF-kill错误,则可能存在硬件无线开关问题。运行以下命令解除屏蔽:

$ echo "blacklist hp_wmi" | sudo tee /etc/modprobe.d/hp.conf
$ sudo rfkill unblock all

然后再次尝试启用网卡。

已启用网卡后,如果知道目标Wi-Fi网络的ESSID,则可直接连接;否则,再次扫描可用网络:

$ sudo iw wlp1s0 scan

最后,使用以下命令连接到Wi-Fi网络,其中Hackernet为Wi-Fi网络SSID,localhost22为密码/预共享密钥:

$ nmcli dev wifi connect Hackernet password localhost22

连接成功后,使用ping命令验证连接,例如:

$ ping 8.8.8.8
PING 8.8.8.8 (8.8.8.8) 56(84) bytes of data.
64 bytes from 8.8.8.8: icmp_seq=1 ttl=48 time=61.7 ms
64 bytes from 8.8.8.8: icmp_seq=2 ttl=48 time=61.5 ms
64 bytes from 8.8.8.8: icmp_seq=3 ttl=48 time=61.6 ms
64 bytes from 8.8.8.8: icmp_seq=4 ttl=48 time=61.3 ms
64 bytes from 8.8.8.8: icmp_seq=5 ttl=48 time=63.9 ms
^C
--- 8.8.8.8 ping statistics ---
5 packets transmitted, 5 received, 0% packet loss, time 4006ms
rtt min/avg/max/mdev = 61.338/62.047/63.928/0.950 ms

希望本文能帮助您从Linux命令行设置Wi-Fi网络。 欢迎在评论区分享您的经验。