Linux 内核支持计算来自连接的 SSID 网络的 802.11 信标?

Linux kernel support for counting 802.11 beacons from a connected SSID network?

有谁知道可以计算您已连接的网络的 802.11 信标的方法吗?不管它是接入点还是 Adhoc 网络,因为两者都会发出 802.11 信标。

我是从 Linux 平台开发的角度 (Linux and/or Android) 问这个问题。我一直在使用 Adhoc 网络和 Linux 设备,并且需要一种方法来确定网络中的节点是否处于活动状态而无需编写心跳服务。我知道接入点会定期发出 802.11 信标供客户端检测它们,我想知道 Adhoc 网络客户端是否有一些相似之处。 (有与 ESSID 和 BSSID 相关的 Adhoc 功能,这表明客户端必须通告 Adhoc 网络)

我一直在通过使用 Kali Linux 和 Alfa Wifi 适配器来监控 802.11 无线流量来测试这个理论。 (不是典型的设置,我只想计算来自连接网络的信标)然后我在 2 Linux 系统之间设置了一个 2 节点的 Adhoc 网络。 airodump-ng 注意到客户端生成了大量帧。诚然,我没有设置 iptables 规则来阻止所有出站 TCP/UDP,因此 activity 可能是一些试图上网的后台进程。

启动 Wireshark 后,我注意到一些(如果不是全部的话)帧是 802.11 信标!它们非常有规律地发出,例如每秒 2-5 个信标。

我不知道 802.11 Adhoc 是否必须具备某些功能或配置才能发出这些信标,或者是否可以对其进行调整,但它们就在那里。

可以编写一个函数来计算连接的 Adhoc 网络的信标,如果其中一个客户端停止发送它们,您可以假设与该客户端的通信中断。

我认为 Netfilter 不会看到这些帧,因为它位于网络堆栈的较高位置。例如承载架上方

问题是我需要一种方法来为我已连接的网络提供 seeing/counting 802.11 信标,而无需特殊的 wifi 适配器或渗透测试工具。有什么建议么?谢谢!

答案是否定的。通常,如果您的 802.11 adapter/driver 未处于监控模式(混杂模式),信标将不会通过堆栈向上浮动,即使对于已连接的网络也是如此。监控模式关闭所有过滤。有点令人失望,要么全有要么全无,但事实就是如此。