【Linux】之【Get√】nmcli device wifi list 与 wpa_cli scan 和 wpa_cli scan_result 区别

nmcli device wifi list 是 NetworkManager 的命令行工具 nmcli 的一部分,它用于列出当前可用的无线网络。它的作用和 wpa_cli 的扫描功能类似,但有一些不同点。

1. nmcli device wifi list

功能:
  • nmcli device wifi list 命令用于显示当前设备扫描到的可用 Wi-Fi 网络。
  • 它会列出附近的所有 Wi-Fi 网络,并显示每个网络的基本信息,例如 SSID、信号强度、频率、加密类型等。
  • nmcli 命令是 NetworkManager 的工具,因此它不仅仅是一个简单的扫描命令,还提供了一整套管理和配置网络连接的功能。
示例:
bash 复制代码
nmcli device wifi list

输出示例:

复制代码
IN-USE  SSID              MODE   CHAN  RATE       SIGNAL  BARS  SECURITY
        HomeWiFi          Infra  11    54 Mbit/s  100     ▂▄▆█  WPA2
        PublicWiFi        Infra  6     54 Mbit/s  80      ▂▄▆█  WPA
        MyWiFi            Infra  1     54 Mbit/s  60      ▂▄▆_  WEP
输出字段:
  • IN-USE : 显示当前正在使用的网络(会显示 * 或 x 表示当前连接的网络)。
  • SSID: 无线网络的名称(SSID)。
  • MODE : 网络模式(例如,Infra 表示基础设施模式)。
  • CHAN: 网络使用的信道。
  • RATE: 网络的速率。
  • SIGNAL: 信号强度(以百分比表示)。
  • BARS: 信号强度的条形图表示。
  • SECURITY: 无线网络的加密方式(如 WPA2, WEP 等)。
优点:
  • 更高层次的网络管理 :nmcli 提供了更多的网络管理功能,不仅仅局限于扫描和显示 Wi-Fi 网络,还可以用于连接、断开网络,管理 IP 配置等。
  • 便于自动化 :可以将 nmcli 命令放入脚本中,进行自动化的网络配置。

2. wpa_cli scan 和 wpa_cli scan_result

功能:
  • wpa_cli 是与 wpa_supplicant(Wi-Fi 配置和管理工具)交互的命令行工具,专门用于控制和调试 Wi-Fi 连接。
  • wpa_cli scan 是向 wpa_supplicant 发出扫描请求,获取周围可用的 Wi-Fi 网络。
  • wpa_cli scan_result 用于显示扫描结果。
示例:
bash 复制代码
sudo wpa_cli scan
sudo wpa_cli scan_result
输出示例:
复制代码
bssid / frequency / signal level / flags / ssid
00:11:22:33:44:55  2412    -50   [WPA2-PSK]   MyWiFi
00:11:22:33:44:56  2417    -70   [WPA-PSK]    AnotherWiFi
输出字段:
  • BSSID: 无线网络的 MAC 地址(基础设施网络的唯一标识符)。
  • Frequency: 网络的频率(通常为 2.4 GHz 或 5 GHz)。
  • Signal level: 信号强度(单位:dBm)。
  • Flags: 加密类型、网络状态等。
  • SSID: 无线网络的名称(SSID)。
优点:
  • 低级别的管理工具 :wpa_cli 更底层,直接与 wpa_supplicant 通信,提供了更多关于 Wi-Fi 协议栈的信息。
  • 适用于调试和更细粒度的控制:适合用于调试 Wi-Fi 连接和进行更细粒度的控制(如修改 Wi-Fi 加密方式、配置等)。

3. 区别:

特性 nmcli device wifi list wpa_cli scan 和 wpa_cli scan_result
功能 提供可用 Wi-Fi 网络列表,并具有完整的网络管理功能 通过 wpa_supplicant 扫描 Wi-Fi 网络,仅显示扫描结果
依赖工具 依赖 NetworkManager 依赖 wpa_supplicant
输出格式 更友好的输出格式,适合普通用户查看 输出格式较为基础,适合技术人员调试和使用
适用场景 一般网络管理、连接、断开 Wi-Fi 网络 更底层的 Wi-Fi 配置和调试,适用于开发和调试
加密支持 显示加密类型(WPA2, WPA 等) 显示加密类型及更多 Wi-Fi 相关信息(如信号强度、BSSID 等)
命令功能 仅限列出 Wi-Fi 网络,但可以执行更多网络操作 仅提供扫描和获取结果的功能,但支持更多 Wi-Fi 连接配置
系统兼容性 更适合现代 Linux 系统(如 Ubuntu),更方便的管理工具 适用于大部分使用 wpa_supplicant 的 Linux 系统

总结:

  • nmcli device wifi list:适用于更高层次的网络管理,适合一般用户用来查看和管理 Wi-Fi 网络,输出信息简洁,易于理解。
  • wpa_cli scan 和 wpa_cli scan_result:提供更底层的 Wi-Fi 管理和调试功能,适用于开发人员和技术人员,能够显示更多详细的扫描信息并进行调试。

根据你的需求,选择使用合适的命令。例如,如果你需要更简便的 Wi-Fi 网络扫描和连接管理,nmcli 是一个更好的选择;如果你需要更底层的操作或调试,wpa_cli 更适合。

相关推荐
律宏阔4 小时前
WSL Docker 端口明明空闲,但就是绑不上端口
linux·windows
律宏阔4 小时前
WSL 突然断网,无法 ping 内网或外网
linux·windows
穷人小水滴4 小时前
用容器编译 VirtualBox 虚拟机软件 (ArchLinux, podman)
linux·容器·virtualbox
乱码三千5 小时前
如何优雅地直连无公网 IP 的远程 GPU 服务器
linux·人工智能·程序员
yunwei375 小时前
使用 eBPF 跟踪 Nginx 请求
linux·后端·性能优化
yunwei375 小时前
使用 eBPF 跟踪 MySQL 查询
linux·后端·性能优化
yunwei375 小时前
eBPF 示例教程:使用 XDP 捕获 TCP 信息
linux·后端·性能优化
judezh5 小时前
api 容器一直 unhealthy?我把一个 Agent 运行时的健康检查逐条拆了,查出四个问题
运维·docker
GeW5 小时前
制造业高端化,为什么必须重估Linux和数据库?
linux
百万蹄蹄向前冲5 小时前
双端同步!云服务器装最新Node.js v26.10全过程追踪
服务器·人工智能·node.js