如何使用 Nmcli 命令从 Linux 终端连接 Wi-Fi
Linux 系统中有多个命令行工具可用于管理无线网络接口。其中许多可用于简单查看无线网络接口状态(是处于开启状态还是关闭状态,或者是否连接到任何网络),例如iw、iwlist、ip、ifconfig等。
还有一些用于连接无线网络,其中包括: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)
考虑上述命令的输出,网络设备/接口处于DOWN 状态,您可以使用ip 命令将其打开 (UP),如下所示。
$ sudo ip link set wlp1s0 up
如果您收到以下错误,则表示您的 Wifi 在笔记本电脑或计算机上被严格阻止。
RTNETLINK answers: Operation not possible due to RF-kill
要删除或解除阻止,您需要运行以下命令来解决错误。
$ echo "blacklist hp_wmi" | sudo tee /etc/modprobe.d/hp.conf $ sudo rfkill unblock all
然后尝试再次打开网络设备,这次它应该可以工作了。
$ sudo ip link set wlp1s0 up
如果您知道想要连接的 Wi-Fi 网络的ESSID,请转到下一步,否则请发出以下命令再次扫描可用的 Wi-Fi 网络。
$ sudo iw wlp1s0 scan
最后,使用以下命令连接到 Wi-Fi 网络,其中Hackernet(Wi-Fi 网络 SSID)和localhost22(密码/预共享密钥)。
$ nmcli dev wifi connect Hackernet password localhost22
连接后,通过对外部机器执行 ping 来验证您的连接,并分析 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网络。与往常一样,如果您发现本文有用,请在下面的评论部分分享您的想法。