Dhcp
斷開連接時清除 DHCP 租約
我有一個相當具體的情況,我對如何正確地做事有點茫然,所以我想是時候尋求幫助了。
情況是:我有一個安裝了 3G 調製解調器以及 hostapd 和 dnsmasq 的 Raspberry Pi。這意味著當我連接到 Pi 上的熱點時,我可以通過 3G 訪問網際網路。
該設置將用於為揚聲器提供 Internet 訪問,以便與 chromecast 音頻一起工作。一切正常,我可以連接到 WiFi 並從 spotify 播放音樂 - 一切都很好。幾乎。調製解調器中使用的蜂窩計劃僅限於數 GB - 足以播放音樂,但不足以讓人們在不負責音樂時忘記離開 wifi。
到目前為止,我所做的是將 Chromecast(和我自己的手機)放在靜態 IP 上並將 DHCP 範圍設置為恰好 1 個地址這幾乎解決了我的問題,除了 ip 為客戶端保留的明顯設計功能只要租約有效。我可以設置一個超短的租用時間,但這只會導致人們在嘗試連接時劫持 ip(如果有人已經連接)的其他問題。
理想情況下,我想做的是在斷開連接後立即清除客戶的租約。這可能嗎?我應該做點別的嗎?我是否已經寫了太多,以至於任何人都無法閱讀所有內容?
我有點茫然 - 我該怎麼辦?
那我自己回答吧。
hostapd_cli
可以執行腳本並與 hostapd 互動。與dhcp_release
in一起,dnsmasq_utils
您可以通過一些腳本來解決問題:
sudo hostapd_cli -a dhcp_release_script.sh
dhcp_release_script 如下所示:
#!/bin/bash #dhcp-release-script.sh #Chromecast, My Phone, My Laptop staticDevicesMac=("" "" "") if [[ $2 == "AP-STA-DISCONNECTED" ]] then if [[ ! "${staticDevicesMac[@]}" =~ "${3}" ]] then dhcp_release $1 10.0.0.20 $3 fi fi