架構
**管理後台位置:**此為參考頁面。此處說明的服務可透過
sudo nexcmp status檢視;連線設定位於 Infrastructure 與 System › Settings。
架構圖
用文字說明同一張圖表
- 客戶或管理員開啟
https://cloud.example.com(使用者入口網站)、https://cloud.example.com/admin(管理主控台) 或呼叫 REST API。DNS 將網域名稱指向您的伺服器,或指向透過代理連至伺服器的 Cloudflare。 - 面板伺服器上的 nginx 傾聽連接埠 80 (重新導向與憑證更新) 及 443 (TLS),並將所有請求轉發至連接埠
127.0.0.1:3000上的 panel。完成安裝精靈後,面板僅會傾聽迴圈介面 (loopback interface)。 - panel (
nexcmp.service) 提供客戶入口網站、管理主控台、REST API、安裝精靈以及節點所需的下載項目 (agent二進位檔、安裝腳本、cmp命令列工具)。它也會每天檢查一次您的授權。 - worker (
nexcmp-vmd.service) 傾聽僅限本機的127.0.0.1:8112。它執行所有需要時間或必須按排程執行的工作:佈建作業、與 CloudStack 和 Proxmox VE 的同步、計費排程、頻寬收集以及瀏覽器主控台連線。 - NexCMP 會從這兩個程序對外發起呼叫:CloudStack (管理 API)、Proxmox VE (連接埠 8006 上的 API,憑證已釘選)、Dell iDRAC (管理網路上的 HTTPS Redfish)、Ceph RGW (HTTPS 上的 S3 與 Admin Ops)、payment gateways (Stripe、PayPal、USDT 與銀行轉帳提供者,亦會回呼您的 webhook URLs)、您的 SMTP 伺服器、具備 OpenAI 相容 API 的 AI provider,以及選用的 Telegram。
- VPN nodes 執行
cmp-agent。每個節點透過一次性權杖註冊一次,接著每 5 秒透過 HTTPS 向面板發送一次心跳訊號,並在回覆中接收其設定。IPv6 proxy nodes 由面板透過 SSH 安裝一次,之後再從面板拉取設定。 - 狀態存放在 SQLite 資料庫以及
/var/lib/nexcmp中的少數檔案。CloudStack、Proxmox、S3、iDRAC 和 AI provider 的憑證皆使用主金鑰檔案於同個區域中進行加密儲存 (AES-256-GCM)。
服務與程序
| 程序 | 執行身分 | 傾聽連接埠 | 功能 |
|---|---|---|---|
nginx | root (workers www-data) | 80, 443 | TLS、重新導向、代理至面板 |
nexcmp | nexcmp | 3000 (首次安裝期間為所有介面,之後為 127.0.0.1) | 入口網站、管理主控台、API、精靈、下載項目 |
nexcmp-vmd | nexcmp | 127.0.0.1:8112 | 作業、同步、計費、頻寬、主控台 |
nexcmp-update | root | 無 | 套用管理主控台要求的更新(路徑單元會等待請求) |
cmp-agent(在 VPN 節點上) | root | VPN 監聽連接埠 | 向面板回報、在公開 IPv4 上執行代理監聽器 |
面板與背景工作處理常式以一般使用者身分執行,不具任何 Linux 權限,且檔案系統除 /var/lib/nexcmp 與 /var/log/nexcmp 外皆為唯讀。它們不需要 root、不需要 Docker、不需要獨立資料庫,也不需要 Redis。
檔案與其位置
| 路徑 | 內容 |
|---|---|
/opt/nexcmp | 程式:版本、bin/、共用檔案(例如範本產生器)。由 root 所有,對服務而言為唯讀。 |
/etc/nexcmp | 安裝程式設定(install.conf)、連接埠與繫結(nexcmp.env)。 |
/var/lib/nexcmp | SQLite 資料庫、上傳的品牌標誌、代理程式下載資料夾、授權狀態、主金鑰檔案。請備份這些檔案。 |
/var/log/nexcmp | 記錄檔。 |
請參閱 備份與還原。主金鑰檔案必須與資料庫一同備份,否則還原後的資料庫將無法解密其儲存的憑證。
連線架構
| 方向 | 路徑 | 連接埠 | 注意事項 |
|---|---|---|---|
| 客戶至面板 | 網際網路、DNS、選用的 Cloudflare、nginx | 443 | 請參閱 DNS 與 Cloudflare。 |
| 面板至授權伺服器 | nexcmp.com | 443 | 啟用、每日檢查與更新。 |
| 面板至 CloudStack | API | 443 或 8080 | 虛擬機器主控台、頻寬與 Kubernetes 功能使用相同的端點。 |
| 面板至 Proxmox VE | API 與 WebSocket 主控台 | 8006 | 憑證透過 SHA-256 釘選。 |
| 面板至 iDRAC | Redfish | 443、VNC 5901 | 僅限管理網路。 |
| iDRAC 至 ISO 伺服器 | HTTP | 您的連接埠 | iDRAC 會拉取 ISO。 |
| 面板至 Ceph RGW | Admin Ops | 443 | |
| 面板至 SMTP | SMTP | 587 或 465 | |
| 面板至 AI 提供者 | HTTPS | 443 | 僅在 AI 模組開啟時。 |
| 支付閘道至面板 | Webhook | 443 | Stripe 與 PayPal 回呼。 |
| 節點至面板 | cmp-agent | 443 | 註冊、心跳、升級。 |
| 面板至 IPv6 代理節點 | SSH | 您輸入的連接埠 | 僅限安裝一次。 |
為什麼這很重要
- 連得到的主機就是會被攻擊的主機。 設定精靈完成後,請保持連接埠 3000 關閉。啟用 TLS 時,安裝程式會自動執行此操作。
- 背景程式必須正在執行,才能建立或計費任何項目。
sudo nexcmp status顯示兩項服務與健康狀態檢查。 - 規劃對外防火牆。 若面板伺服器的對外流量經過過濾,請允許上方表格中的目的地位址。
- 管理流量不走公開路徑。 連線至 CloudStack、Proxmox VE、iDRAC 與 Ceph 的流量會直接從面板伺服器連至這些系統,絕不透過 nginx 或 Cloudflare。