用于自托管的容器化網關: 安全且本地化的 DNS、動態反向代理以及 Proxmox 電源編排功能。
引言
保持自托管基礎架構24×7全天候運行可能非常昂貴,尤其是當它大部分時間處于閑置狀態,毫無目的地消耗電力時。這是看門狗的起點,看門狗是一個最小的、高能效的樹莓派設置,充當本地網絡的哨兵,僅在需要時才啟動Proxmox等關鍵基礎設施。
但它的功能遠不止于此。
其目標并非讓用戶記住 IP 地址和端口號,或與局域網喚醒(Wake-on-LAN)數據包較勁,而是打造無縫的用戶體驗:接入局域網,通過人類可讀的域名訪問服務,其余工作由網關安全且透明地處理。
動機
核心想法源于一個簡單需求:在不使用 Proxmox 時使其斷電以節省能源,但在需要時能夠可靠地按需喚醒,同時無需向每個用戶暴露局域網喚醒的復雜細節。
樹莓派 3B+ 具有超低功耗和可靠的 24×7 運行時間,非常適合作為持久節點。它將充當訪問網關、DNS 解析器、反向代理,最重要的是,成為決定其他基礎設施何時需要喚醒的“看門狗”。
架構概述
硬件:樹莓派 3B+
容器化:Docker + Docker Compose
網絡接口:通過 OpenResty(Nginx + Lua)實現條件性反向代理,通過 Pi-hole 實現 DNS 路由

圖中箭頭代表數據流量
關鍵組件和工作流程
1.使用 Pi-hole 進行 DNS 路由
Pi-hole 作為網絡的本地 DNS 解析器。用戶無需記住原始 IP 地址和端口號,只需訪問 openwebui.com、photoprism.lan 等域名即可。它還能在整個網絡范圍內屏蔽廣告和遙測數據,提升隱私性和性能。
2.使用 OpenResty 進行條件性反向代理
這里體現了智能之處。OpenResty(一款捆綁了 Lua 的高性能 Nginx 發行版)充當可編程反向代理。每當有對 Proxmox 托管服務的請求時:
網關會檢查 Proxmox 節點是否在線。
如果節點離線,用戶將被重定向到“守門人(Gatekeeper)”,這是一個基于 Streamlit 的應用程序,提供局域網喚醒控制功能。
請求會被保留,直到節點啟動且服務可訪問。
一旦就緒,請求將被透明轉發。
這為終端用戶抽象了啟動過程,他們只需“點擊即用”。
3.Proxmox 電源編排
Proxmox的API目前用于手動發出關機命令。在未來的迭代中,這將通過監控節點活動并在系統長時間處于空閑狀態時啟動關閉來實現自動化。局域網喚醒已經通過運行在樹莓派上的Dockerized腳本進行了本機處理。
4.安全考慮
僅局域網訪問:所有服務僅在內部網絡中可訪問。
無公開端口:無需端口轉發或將 Proxmox 暴露到互聯網。
角色分離:除了通過 API 或局域網喚醒進行電源編排外,“看門狗”從不直接接觸 Proxmox 核心堆棧。
5.優勢
節能:僅在實際需要時才啟動 Proxmox。
安全至上:無服務公開暴露。所有流量均為內部或通過隧道傳輸。
用戶友好:無需記憶 IP 地址,局域網喚醒由簡單的 Web 應用程序處理。服務名稱人類可讀。
配置簡單:一次性設置腳本。易于適配。
6.未來增強功能
基于閑置檢測自動關閉 Proxmox。
集成 Grafana + Loki 以監控“看門狗”的運行時間和行為。
提供經過身份驗證的服務發現和電源控制的 Web 儀表板。
探索該項目,將其適配到您的設置中,或在github中貢獻您的力量。
https://github.com/ninja-con-gafas/watchdog
-
看門狗
+關注
關注
10文章
580瀏覽量
71581 -
網關
+關注
關注
9文章
5356瀏覽量
52505 -
樹莓派
+關注
關注
121文章
1952瀏覽量
107018
發布評論請先 登錄
STM32中的獨立看門狗和窗口看門狗是什么

MCU獨立看門狗和窗口看門狗的區別
利用看門狗提高系統可靠性

stm32看門狗時間計算 獨立看門狗和窗口看門狗的特性是什么
看門狗喂狗時間及程序
STM32看門狗配置(獨立看門狗IWDG和窗口看門狗WWDG)

軟件看門狗和硬件看門狗的作用和區別
MCU獨立看門狗與窗口看門狗的區別

STM32中的獨立看門狗和窗口看門狗
STM32中的獨立看門狗和窗口看門狗

什么是看門狗,工業路由器看門狗技術的功能優勢

評論