n2n-rest-api + Web UI 方案设想
針對 n2n-rest-api + Web UI 的遠端集中管理與監控需求,以下是目前社群中最成熟的幾種實作路徑,幫助你達成從「簡單 Web 管理」到「大螢幕可視化」的過渡:
1. 核心組件:n2n 內建的 Management UDP Port
n2n 的
supernode 和 edge 其實都內建了一個 管理連接埠(通常搭配 -M 參數開啟)。- 功能:透過這個 Port 發送指令,可以即時獲取 節點列表 (peer list)、流量統計、版本資訊。
- 優點:這是所有 Dashboard 的數據來源,不需要額外安裝複雜的 Agent。
2. 推薦的開源 Web UI 方案
如果你需要一個現成的網頁介面來遠端管理:
- n2n-rest-api (由 lucktu 或相關開發者維護):
- 特點:這是一個輕量級的後端,將 n2n 的管理指令轉化為 JSON 格式的 API。
- 管理功能:可以直接在網頁上看到當前連入 Supernode 的所有 Edge 資訊(虛擬 IP、外部 IP、連線時間)。
- 監控功能:提供簡單的在線狀態檢查。
- n2n-web-console (PHP/Python 版本):
- 特點:這類專案通常只有一個單一的網頁檔案,部署極快。
- 適用場景:放在伺服器上,隨時瀏覽器打開就能看到 Peer 列表。
3. 後續整合至可視化大屏 (Grafana)
這是你提到的「後續集成」最標準的做法:
- 數據流路徑:
- Exporter:使用
n2n-prometheus-exporter(或是你自己寫個腳本定期呼叫上面的 REST API)。 - 時序數據庫:存入 Prometheus。
- 大屏展現:在 Grafana 導入 Dashboards。
- Exporter:使用
- 可視化效果:你可以看到全球節點的分佈地圖、各節點即時頻寬佔用、延遲波動曲線等。
具體建議步驟:
- 第一步 (即時管理):在你的 Supernode 啟動參數加上
-M 5645(開啟管理埠),並部署一個簡單的 n2n-rest-api 容器。 - 第二步 (監控整合):確認 API 能抓到 JSON 數據後,未來只要用 Grafana 的 JSON Data Source 插件就能直接把數據畫成圖表,不一定要裝 Prometheus。
n2n-rest-api 的部署腳本(Docker 或 Shell),或是示範如何用 Python 抓取 n2n 狀態來對接你的可視化系统。
共有 0 条评论