文:Tony
在日常瀏覽網絡時,大量彈出式廣告與追蹤腳本不僅影響閱讀體驗,更會佔用頻寬。傳統做法多是在 Raspberry Pi 上安裝 Pi-hole 等 DNS 攔截系統,但硬體成本與功耗相對較高。近日一位名為 ZedAxis(GitHub 帳號 M-Abozaid)的開源開發者推出了名為 esp32-c3-adblock 的極簡項目,僅需極低成本的 ESP32-C3
開發板,便能打造高效能的網絡級廣告攔截器。
極低硬體門檻:約 $39 即可上手
這項項目的核心優勢在於極低的硬體成本。ESP32-C3 SuperMini 開發板在市場上的零售價格僅約為 $5 美元(折合約 HK$39)。相比起單板電腦,ESP32-C3 不僅價格親民,其整體功耗極低,僅透過 USB 供電即可 24 小時不間斷運作,大幅降低長期營運成本。
演算法最佳化:僅耗 50KB RAM 封殺 537,000 網域
ESP32-C3 僅配備 400KB SRAM 與 4MB Flash 記憶體。為了在資源受限的單晶片上載入龐大的黑名單,作者使用了特別設計的 40-bit FNV-1a 雜湊演算法與排序二分搜尋機制。透過將網域轉化為固定長度的數值,系統能將多達 537,000 個廣告網域壓縮並儲存於 Flash 中,運行時僅需耗用約 50KB RAM,對電腦操作流暢度,完全不會受到影響。
DNS 轉發機制與極速回應
在運作邏輯上,這台裝置充當區域網路內的 DNS 伺服器。當裝置發出域名解析請求時,ESP32-C3 會即時進行比對;若屬於廣告或追蹤網域,會直接進行攔截;若為正常網域,則轉發至上游 DNS 解析。得益於記憶體內的高效比對,攔截查詢的回應時間僅約 10 毫秒。
部署靈活度與技術局限
使用者只需將開發板燒錄韌體並連接 Wi-Fi,再將路由器或手機的 DNS 設定指向該晶片 IP,即可全家享受無廣告體驗。不過需要注意,由於 DNS 攔截的本質機制,該系統無法防禦同網域內嵌廣告(例如 YouTube 影片內建廣告)。整體而言,這是一個展現極致嵌入式軟體最佳化的優秀 DIY 項目。
資料來源:uniladtech




