菜鸟科技网

hostapd cli命令怎么用?有哪些常用操作?

hostapd 不仅是一个守护进程,还提供了一个交互式的命令行客户端,允许你与正在运行的 hostapd 实例进行实时通信,这对于调试、查看状态、动态更改配置以及管理连接的客户端非常有用。

hostapd cli命令怎么用?有哪些常用操作?-图1
(图片来源网络,侵删)

如何启动 CLI 客户端?

CLI 客户端通常与 hostapd 守护进程一起安装,启动它的命令非常简单:

sudo hostapd_cli

重要提示:

  • 你必须使用 sudo 来运行 hostapd_cli,因为它需要与 hostapd 守护进程进行通信,而该守护进程通常以 root 权限运行。
  • 默认情况下,hostapd 会在 /var/run/hostapd/ 目录下创建一个 Unix domain socket(套接字)来等待客户端连接,如果你的 hostapd 配置中指定了不同的接口或路径,你可能需要使用 -i 参数来指定接口名称。
# hostapd 运行在 wlan0 接口上
sudo hostapd_cli -i wlan0
# hostapd 使用了自定义的控制接口路径
sudo hostapd_cli -p /path/to/custom/control_socket

启动后,你会看到一个 > 提示符,表示现在可以输入命令了。


常用 hostapd_cli 命令

以下是 CLI 中最常用和最有用的命令,并附有解释和示例。

hostapd cli命令怎么用?有哪些常用操作?-图2
(图片来源网络,侵删)

A. 状态和查看类命令

这些命令用于获取 hostapd 的运行状态信息。

命令 描述 示例/输出
status 最常用,显示 hostapd 守护进程的详细状态,包括接口状态、SSID、BSSID、是否已启动等。 > status <br> wlan0: <br> state: AP-ENABLED <br> ssid: MyWiFi <br> ...
ping 测试与 hostapd 守护进程的连接是否正常,如果连接正常,它会返回 PONG > ping <br> PONG
get 获取一个特定配置参数的当前值,参数名需要与配置文件中的完全一致。 > get ssid <br> MyWiFi
mib 显示 MIB(管理信息库)变量,这提供了非常底层的详细信息,如计数器、统计等。 > mib <br> ...
sta_list 列出所有已关联的客户端(STA)的 MAC 地址。 > sta_list <br> 00:11:22:33:44:55 <br> aa:bb:cc:dd:ee:ff
all_sta 显示所有已关联客户端的详细信息,包括每个客户端的信号强度、速率等。 > all_sta <br> 00:11:22:33:44:55: <br> aid: 1 <br> ...

B. 管理和控制类命令

这些命令用于控制 hostapd 的行为。

命令 描述 示例/输出
reload 非常实用,在不重启 hostapd 的情况下,重新加载配置文件,这允许你动态修改配置(如更改密码、信道等)并使其生效。 > reload <br> OK
relog 重新打开日志文件,这对于在 hostapd 运行时轮转日志文件很有用。 > relog <br> OK
update_beacon 更新 Beacon 帧中的元素(如 SSID),通常在 reload 后自动完成,但有时可以手动触发。 > update_beacon <br> OK
disable 禁用指定的 Wi-Fi 接口,接口将停止响应所有请求。 > disable <br> OK
enable 重新启用之前被禁用的 Wi-Fi 接口。 > enable <br> OK
terminate 危险,强制 hostapd 守护进程退出,这会导致所有客户端断开连接。 > terminate <br> OK

C. 客户端管理命令

这些命令用于管理已连接的客户端。

命令 描述 示例/输出
deauthenticate <MAC> 非常实用,断开指定 MAC 地址的客户端的连接,并强制其重新关联,可以指定原因码。 > deauthenticate 00:11:22:33:44:55 <br> OK
auth <MAC> 手动为指定 MAC 地址的客户端执行认证过程。 > auth 00:11:22:33:44:55 <br> OK
assoc <MAC> 手动为指定 MAC 地址的客户端执行关联过程,通常在认证成功后使用。 > assoc 00:11:22:33:44:55 <br> OK
sa_query <MAC> 发送 SA 查询请求给客户端,用于检测和清除旧的快速切换密钥。 > sa_query 00:11:22:33:44:55 <br> OK

实用场景示例

排查客户端无法连接的问题

  1. 首先检查 hostapd 状态

    > status

    输出应该显示 state: AP-ENABLED,如果是 AP-DISABLED,说明 AP 没有启动。

  2. 查看是否有客户端连接

    > sta_list

    如果列表为空,说明没有任何设备连接上你的热点。

  3. 检查日志: 你需要在另一个终端查看 hostapd 的日志文件(/var/log/syslog 或你指定的日志文件),寻找错误信息,如“authentication failure”或“association failure”。

  4. 尝试手动认证一个测试设备: 假设你有一个手机的 MAC 地址是 aa:bb:cc:dd:ee:ff,你可以尝试手动认证它:

    > auth aa:bb:cc:dd:ee:ff

    然后观察日志,看认证过程是否成功。

动态更改 Wi-Fi 密码

这是 hostapd_cli 的一个强大功能,无需重启服务。

  1. 修改你的 hostapd 配置文件/etc/hostapd/hostapd.conf),将 wpa_passphrase 更改为新密码。

    wpa_passphrase=NewSuperSecretPassword123
  2. 在 CLI 中执行 reload 命令

    > reload

    hostapd 会重新读取配置文件并应用新的设置。

  3. 验证新密码是否生效: 你可以再次使用 get 命令检查:

    > get wpa_passphrase

    注意:出于安全原因,它可能不会返回明文密码,但配置已经更新,新连接的设备将使用新密码,而已连接的设备可能会在下次握手后使用新密钥。

踢掉某个特定设备

如果某个设备连接异常或你不希望它连接,可以将其断开。

  1. 获取设备列表

    > sta_list

    假设你想踢掉设备的 MAC 是 cc:dd:ee:ff:00:11

  2. 执行断开命令

    > deauthenticate cc:dd:ee:ff:00:11

    该设备将会立即断开连接,并尝试重新连接。


退出 CLI

要退出 hostapd_cli,只需输入 quitexit

> quit

hostapd_cli 是一个功能强大的调试和管理工具,对于任何使用 hostapd 构建自定义 Wi-Fi 接入点的用户或系统管理员来说,熟练掌握以下命令是必不可少的:

  • status: 快速检查整体状态。
  • sta_list / all_sta: 查看客户端信息。
  • reload: 动态更新配置。
  • deauthenticate: 踢掉特定客户端。
  • ping: 验证连接。

通过 CLI,你可以实时监控和管理你的 Wi-Fi 网络,而无需停止和重启服务,极大地提高了运维效率。

分享:
扫描分享到社交APP
上一篇
下一篇