我正在創建一個無法訪問Internet的訪問點。用戶可以查看本地託管在Raspberry Pi上的內容在hostap上斷開用戶連接
我想要一個跳轉點,用戶可以在Facebook上共享某些內容。此時我需要將它們從WiFi網絡中踢出,以便他們可以使用自己的3G/4G連接。
如何在不重新啓動hostapd的情況下立即關閉接入點的mac地址?
我正在創建一個無法訪問Internet的訪問點。用戶可以查看本地託管在Raspberry Pi上的內容在hostap上斷開用戶連接
我想要一個跳轉點,用戶可以在Facebook上共享某些內容。此時我需要將它們從WiFi網絡中踢出,以便他們可以使用自己的3G/4G連接。
如何在不重新啓動hostapd的情況下立即關閉接入點的mac地址?
您使用hostapd_cli命令來控制hostapd守護進程。 要強制客戶端關閉wifi,您可以使用「分離」或「deauthenticate」命令。
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,因爲它不是他們所期望的(互聯網連接)。
就像Badmaster的回答一樣,客戶端會嘗試重新連接到我的AP上,並且它已連接。但在我的情況下,我想強制客戶端斷開連接,並且AP在重新連接時不會接受它。
因此,我只是在disassociate
的相關功能中添加一些代碼,然後在功能hostapd_ctrl_iface_disassociate
中調用文件ctrl_iface_ap.c
中的功能hostapd_drv_sta_disassoc()
。我在hapd->conf->deny_mac
中添加了將客戶端的mac地址添加到mac拒絕列表的代碼。在使這些代碼正常工作之前,您應確保文件hostapd.conf
中的mac訪問控制設置正確。
然後命令hostapd_cli deauthenticate 00:5e:3d:38:fe:ab
可以強制客戶端斷開連接並且不會再次連接。
同時,我創建了一個從mac拒絕列表中刪除mac地址以允許客戶端連接的功能。
修改源代碼的示例如下:
擊中頭部的釘。發揮魅力。 – user1293545
我對這個ctrl_interface很感興趣 - 因爲PID實際上是(在我的系統上)/var/run/hostapd.pid/wlan0。我決定嘗試/ var/run/hostapd(如上所述,在dist中),並且它工作正常!所以,upvote指出明顯的。 – Michael