openwrt linux portal 實現 支援 https 支援基於時長和流量控制
簡介
openwrt中實現portal的應用主要有wifidog和coovachilli等。下面就分別介紹兩個應用程式的實現原理。
wifidog實現原理簡介
通過iptables的nat表的重定向規則用以重定向http請求到wifidog的web伺服器,
然後web服務傳送http 302重定向到portal主頁,從而實現portal彈出功能。當客戶端認證
通過後,增加取消該客戶端衝向的規則用以實現portal認證通過的正常上網功能。
優點:高效、便於擴充套件。
缺點:暫不支援https的重定向。
coovachilli的實現原理簡介
coovachilli通過接管wifi介面的所有資料,當發現未認證通過的的客戶端的http請求時返回portal主頁,其他請求則丟棄。 當客戶端認證通過後則轉發請求。從而實現Portal功能。
優點:可實現精確的資料包的控制。
缺點:對效能影響較大、暫不支援https。
介紹以上兩種portal的實現程式,其實也並沒有什麼卵用。今天我想給大家介紹一種新portal實現,該實現應該算是wifidog的升級擴充套件版,但比wifidog更簡單。
實現功能說明
1、實現對http和https彈出portal的支援。(以來支援https的web伺服器,可以基於uhttpd修改)。
2、支援免認證的IP地址集合。(也就是portal白名單)
3、支援對認證客戶端基於時間和流量做控制。
整體架構說明
整體架構圖 原圖連線:https://www.processon.com/view/link/55e48812e4b02026c200e796
資料流向圖 原圖連線https://www.processon.com/view/link/55e48830e4b02026c200e804
轉載於:https://blog.51cto.com/gofly/1689815