---
title: 架構
description: NexCMP的組成方式：網域、nginx、面板與worker服務，以及它們連線的所有系統，包含每個路徑使用的連接埠與資料。
url: https://nexcmp.com/zh-tw/docs/infrastructure/architecture/
applies_to: NexCMP 1.6.1
updated: 2026-11-02
---

# 架構 {#architecture}

> **管理後台位置：**此為參考頁面。此處說明的服務可透過`sudo nexcmp status`檢視；連線設定位於 Infrastructure 與 System › Settings。

## 架構圖 {#the-picture}

![NexCMP架構：客戶透過DNS與選用的Cloudflare連線至nginx，nginx將請求代理至連接埠3000的面板，面板與背景工作處理序呼叫CloudStack、Proxmox VE、iDRAC、Ceph、支付閘道、SMTP及AI供應商，而VPN與IPv6代理節點則回呼面板](https://nexcmp.com/zh-tw/docs/images/infrastructure/architecture.svg)

### 用文字說明同一張圖表 {#the-same-diagram-in-words}

1. 客戶或管理員開啟 `https://cloud.example.com` (使用者入口網站)、`https://cloud.example.com/admin` (管理主控台) 或呼叫 REST API。DNS 將網域名稱指向您的伺服器，或指向透過代理連至伺服器的 Cloudflare。
2. 面板伺服器上的 **nginx** 傾聽連接埠 80 (重新導向與憑證更新) 及 443 (TLS)，並將所有請求轉發至連接埠 `127.0.0.1:3000` 上的 **panel**。完成安裝精靈後，面板僅會傾聽迴圈介面 (loopback interface)。
3. **panel** (`nexcmp.service`) 提供客戶入口網站、管理主控台、REST API、安裝精靈以及節點所需的下載項目 (agent二進位檔、安裝腳本、`cmp` 命令列工具)。它也會每天檢查一次您的授權。
4. **worker** (`nexcmp-vmd.service`) 傾聽僅限本機的 `127.0.0.1:8112`。它執行所有需要時間或必須按排程執行的工作：佈建作業、與 CloudStack 和 Proxmox VE 的同步、計費排程、頻寬收集以及瀏覽器主控台連線。
5. 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**。
6. **VPN nodes** 執行 `cmp-agent`。每個節點透過一次性權杖註冊一次，接著每 5 秒透過 HTTPS 向面板發送一次心跳訊號，並在回覆中接收其設定。**IPv6 proxy nodes** 由面板透過 SSH 安裝一次，之後再從面板拉取設定。
7. 狀態存放在 SQLite 資料庫以及 `/var/lib/nexcmp` 中的少數檔案。CloudStack、Proxmox、S3、iDRAC 和 AI provider 的憑證皆使用主金鑰檔案於同個區域中進行加密儲存 (AES-256-GCM)。

## 服務與程序 {#services-and-processes}

| 程序 | 執行身分 | 傾聽連接埠 | 功能 |
|---|---|---|---|
| `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。

## 檔案與其位置 {#files-and-where-they-are}

| 路徑 | 內容 |
|---|---|
| `/opt/nexcmp` | 程式：版本、`bin/`、共用檔案（例如範本產生器）。由 root 所有，對服務而言為唯讀。 |
| `/etc/nexcmp` | 安裝程式設定（`install.conf`）、連接埠與繫結（`nexcmp.env`）。 |
| `/var/lib/nexcmp` | SQLite 資料庫、上傳的品牌標誌、代理程式下載資料夾、授權狀態、主金鑰檔案。請備份這些檔案。 |
| `/var/log/nexcmp` | 記錄檔。 |

請參閱 [備份與還原](https://nexcmp.com/zh-tw/docs/getting-started/backup-and-restore/)。主金鑰檔案必須與資料庫一同備份，否則還原後的資料庫將無法解密其儲存的憑證。

## 連線架構 {#who-connects-to-whom}

| 方向 | 路徑 | 連接埠 | 注意事項 |
|---|---|---|---|
| 客戶至面板 | 網際網路、DNS、選用的 Cloudflare、nginx | 443 | 請參閱 [DNS 與 Cloudflare](https://nexcmp.com/zh-tw/docs/getting-started/dns-and-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 | 您輸入的連接埠 | 僅限安裝一次。 |

## 為什麼這很重要 {#why-it-matters}

- **連得到的主機就是會被攻擊的主機。** 設定精靈完成後，請保持連接埠 3000 關閉。啟用 TLS 時，安裝程式會自動執行此操作。
- **背景程式必須正在執行**，才能建立或計費任何項目。`sudo nexcmp status` 顯示兩項服務與健康狀態檢查。
- **規劃對外防火牆。** 若面板伺服器的對外流量經過過濾，請允許上方表格中的目的地位址。
- **管理流量不走公開路徑。** 連線至 CloudStack、Proxmox VE、iDRAC 與 Ceph 的流量會直接從面板伺服器連至這些系統，絕不透過 nginx 或 Cloudflare。
