1. 程式人生 > 實用技巧 >openwrt linux portal 實現 支援 https 支援基於時長和流量控制

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


wKiom1Xkh3iAOJ0qAAFhLVvC6RA338.jpg資料流向圖 原圖連線https://www.processon.com/view/link/55e48830e4b02026c200e804

wKioL1XkibDAHTCTAAFZKKqyyi8921.jpg


轉載於:https://blog.51cto.com/gofly/1689815