3

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

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

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

4

3 回答 3

5

您可以使用 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,因为这不是他们所期望的(互联网连接)。

于 2013-10-17T12:26:01.043 回答
0

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

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

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

同时,我创建了一个函数,从 mac 拒绝列表中删除 mac 地址,以允许 Client 连接。

修改源代码示例如下:

  1. 强制断开 P2P 客户端/STA 与 GO/AP 端的连接

  2. hostapd:可以从 maclists 中删除地址

于 2014-12-16T08:38:42.123 回答
0

防止您的 sta 自动重新加入网络,在 'hostapd_cli deauthenticate' cmd之前,您可以运行下面的 cmd 以启用允许的 macaddr list hostapd_cli macaddr_acl 1

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

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

于 2018-09-06T00:12:07.637 回答