我正在创建一个无法访问Internet的接入点。用户可以在Raspberry Pi上查看本地托管的内容
我想要一个跳转点,用户可以在Facebook上分享内容。此时我需要将它们从WiFi网络中踢出来,以便他们可以使用自己的3G / 4G连接。
如何在不重新启动hostapd的情况下立即强制关闭接入点的mac地址?
答案 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地址的功能,以允许客户端连接。
修改源代码的示例如下:
答案 2 :(得分:0)
防止主机自动重新加入网络,在“ hostapd_cli取消身份验证” cmd之前,您可以在下面运行cmd以启用允许的macaddr列表 hostapd_cli macaddr_acl 1
假设macaddr尚未添加到允许列表中,它将被阻止加入。
以后通过hostapd_cli macaddr_acl 0
禁用它,以便sta可以加入