在hostap上断开用户连接

时间:2013-10-16 09:46:25

标签: wifi raspberry-pi access-point

我正在创建一个无法访问Internet的接入点。用户可以在Raspberry Pi上查看本地托管的内容

我想要一个跳转点,用户可以在Facebook上分享内容。此时我需要将它们从WiFi网络中踢出来,以便他们可以使用自己的3G / 4G连接。

如何在不重新启动hostapd的情况下立即强制关闭接入点的mac地址?

3 个答案:

答案 0 :(得分:4)

您可以使用hostapd_cli命令来控制hostapd守护程序。 要强制客户端关闭wifi,您可以使用“取消关联”或“取消验证”命令。

hostapd_cli deauthenticate 00:5e:3d:38:fe:ab

确保在hostapd配置中正确设置了ctrl_interface!

默认为:

ctrl_interface=/var/run/hostapd

这取决于客户端是否会立即重新连接。这可以通过使用iptables过滤他的数据包来“补救”,因此他不再获得IP,因此很可能不再尝试连接。

注意:使用iptables执行后者可能会使客户端“黑名单”到您的AP,至少在一段时间内!

注意2:如果您没有为DHCP服务器提供默认路由,则根本不需要将它们与wifi断开连接。虽然大多数设备(智能手机)都会完全避开wifi,因为它不是他们所期望的(互联网连接)。

答案 1 :(得分:0)

就像Badmaster的回答一样,客户端会尝试重新连接到我的AP,并且它已连接。但在我的情况下,我想强制客户端断开连接,AP在重新连接时不会接受它。

所以我只需在disassociate的相关函数中添加一些代码,然后在函数hostapd_drv_sta_disassoc()中调用文件ctrl_iface_ap.c中的函数hostapd_ctrl_iface_disassociate。我添加了将客户端的mac地址添加到hapd->conf->deny_mac中的mac deny列表的代码。在使这些代码生效之前,您应确保文件hostapd.conf中的mac访问控制设置正确。

然后命令hostapd_cli deauthenticate 00:5e:3d:38:fe:ab可以强制客户端断开连接,不会再连接。

同时,我创建了一个从mac deny列表中删除mac地址的功能,以允许客户端连接。

修改源代码的示例如下:

  1. Force disconnect a P2P Client/STA from GO/AP side

  2. hostapd: make it possible to remove addresses from maclists

答案 2 :(得分:0)

防止主机自动重新加入网络,在“ hostapd_cli取消身份验证” cmd之前,您可以在下面运行cmd以启用允许的macaddr列表 hostapd_cli macaddr_acl 1

假设macaddr尚未添加到允许列表中,它将被阻止加入。

以后通过hostapd_cli macaddr_acl 0禁用它,以便sta可以加入