2013-10-16 151 views
2

我正在創建一個無法訪問Internet的訪問點。用戶可以查看本地託管在Raspberry Pi上的內容在hostap上斷開用戶連接

我想要一個跳轉點,用戶可以在Facebook上共享某些內容。此時我需要將它們從WiFi網絡中踢出,以便他們可以使用自己的3G/4G連接。

如何在不重新啓動hostapd的情況下立即關閉接入點的mac地址?

回答

3

您使用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,因爲它不是他們所期望的(互聯網連接)。

+0

擊中頭部的釘。發揮魅力。 – user1293545

+0

我對這個ctrl_interface很感興趣 - 因爲PID實際上是(在我的系統上)/var/run/hostapd.pid/wlan0。我決定嘗試/ var/run/hostapd(如上所述,在dist中),並且它工作正常!所以,upvote指出明顯的。 – Michael

0

就像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地址以允許客戶端連接的功能。

修改源代碼的示例如下:

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

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

相關問題