nmcli:扫描 WiFi 网络的正确方法

nmcli:扫描 WiFi 网络的正确方法

我正在编写一个需要切换 WiFi 网络的脚本。我应该如何扫描我想要连接的 WiFi 是否可用?

我尝试了以下操作:

  1. nmcli dev wifi list

    问题:它列出了以前扫描的网络,其中包括可用和不可用的网络。

  2. nmcli dev wifi rescan; sleep 10; nmcli dev wifi list;

    问题 1:它只是启动扫描并在扫描在后台运行时退出。我找不到如何检测扫描是否完成的方法。所以我使用了 10 秒的额外等待时间。

    问题 2:即使扫描完成后(10 秒后),它仍然列出最近关闭的 WiFi 网络。

  3. nmcli radio wifi off ; sleep 1; nmcli radio wifi on; sleep 4; nmcli dev wifi list

    这是最糟糕的意外。它仍然显示已关闭的 WiFi 网络。

以 root 身份运行命令没有任何区别。

nmcli 有什么问题?我做错了什么?

系统信息:

OS:
    Ubuntu 20.04 Desktop.

Driver: 
    Kernel driver in use: rtl8821ce

Laptop:
    hp 15 dy1751ms

WiFi
    product:      RTL8821CE 802.11ac PCIe Wireless Network Adapter
    vendor:       Realtek Semiconductor Co., Ltd.
    physical id:  0
    bus info:     pci@0000:01:00.0
    logical name: wlo1
    serial: xx:xx:xx:xx:xx:xx
    width: 64 bits
    clock: 33MHz
    capabilities: bus_master cap_list ethernet physical wireless
    configuration: broadcast=yes driver=rtl8821ce ip=192.168.10.12 latency=0 multicast=yes wireless=IEEE 802.11bgn
    resources: irq:137 ioport:3000(size=256) memory:8050000-8050ffff

答案1

回复很晚了,但也许对发现这一点的人有用:使用hidden yes,如

nmcli dev wifi connect SSID hidden yes

假设您已配置 SSID。即使上次重新扫描未列出您的 SSID,此操作仍会继续。如果不可用,则只会超时。

相关内容