---
title: 安装NexCMP
description: 使用单行安装命令在Ubuntu上安装NexCMP：参数详解、安装步骤、TLS与nginx配置，以及如何进入设置向导。
url: https://nexcmp.com/zh-cn/docs/getting-started/installation/
applies_to: NexCMP 1.6.1
updated: 2026-11-02
---

# 安装NexCMP {#install-nexcmp}

安装程序是由许可证服务器提供的单个脚本。它会检查服务器环境、激活许可证、下载并验证程序、安装各项服务，并（可选）使用Let's Encrypt证书配置nginx。

## 开始之前 {#before-you-start}

- 一台符合[requirements](https://nexcmp.com/zh-cn/docs/getting-started/requirements/)并具备root访问权限的服务器。
- 来自[license page](https://nexcmp.com/licenses)的**许可证密钥**和**主域名**——参见[License and purchase](https://nexcmp.com/zh-cn/docs/getting-started/license-and-purchase/)。
- 该域名的DNS解析记录——参见[DNS and Cloudflare](https://nexcmp.com/zh-cn/docs/getting-started/dns-and-cloudflare/)。您也可以先完成安装后续再配置DNS；安装程序会提示缺失的内容，之后直接重新运行即可。

## 安装 {#install}

1. 登录服务器并切换为root身份（或在命令前添加`sudo`）。
2. 运行许可证页面上提供的命令。命令格式如下：

```bash
curl -fsSL https://nexcmp.com/install.sh | sudo bash -s -- \
  --license NXC-XXXXX-XXXXX-XXXXX-XXXXX \
  --domain cloud.example.com \
  --email admin@example.com
```

3. 等待各项检查通过。全新安装只需几分钟；首次启动会创建数据库表结构，在慢速磁盘上最多可能需要一分钟。
4. 查看安装结束时的汇总信息。终端会输出门户及后台管理URL、**设置代码**以及后续步骤。

![安装程序完成并输出门户URL、管理端URL以及一次性设置代码](https://nexcmp.com/zh-cn/docs/images/getting-started/installation-01-finish.webp)

## 参数 {#parameters}

| 参数 | 默认值 | 说明 |
|---|---|---|
| `--license KEY` | 首次安装时必填 | 许可证密钥。 |
| `--domain NAME` | 首次安装时必填 | 主域名。必须与许可证匹配。`https://`和末尾路径会被自动去除。 |
| `--email ADDRESS` | 无 | 用于接收Let's Encrypt到期通知的联系邮箱。未填写时注册的证书将不绑定邮箱。 |
| `--port N` | `3000` | 面板的本地端口（1–65535）。 |
| `--no-nginx` | off | 不安装也不配置nginx / TLS。在自行运行反向代理或仅想初步体验NexCMP时使用此选项。 |
| `--behind-cloudflare` | 自动检测 | 强制启用“域名经由Cloudflare代理”模式。通常会自动从DNS检测。 |
| `--channel NAME` | `stable` | 发布通道。 |

**不带参数**重新运行安装程序将复用已保存的参数（`/etc/nexcmp/install.conf`）并安全升级，完整保留数据、配置和账户。这正是`sudo nexcmp update`所执行的操作。

## 安装程序执行的操作 {#what-the-installer-does}

1. **检查机器环境**——Ubuntu 22.04/24.04、x86_64、至少2 GB内存、8 GB可用磁盘空间。
2. **安装所需的软件包**（`curl`、`zstd`、`openssl`、`python3`、`openssh-client`……）。
3. **创建服务用户**`nexcmp`及相关目录：`/opt/nexcmp`（程序目录，归root所有，对服务只读）、`/etc/nexcmp`（配置）、`/var/lib/nexcmp`（数据）、`/var/log/nexcmp`。
4. **激活域名的许可证**并为该机器保存固定实例ID。
5. **下载您有权获取的最新版本**，然后验证其SHA-256和Ed25519签名。缺少有效签名的版本将被拒绝。绝不会降级正在运行的更新版本。
6. **写入配置和systemd服务单元**（`nexcmp`、`nexcmp-vmd`、`nexcmp-update`）并启动服务；随后等待`/healthz`响应。
7. **配置nginx和TLS**（除非指定`--no-nginx`）：使用certbot（webroot验证）为该域名以及能够正常解析的`admin.<domain>`/`partner.<domain>`申请Let's Encrypt证书。如果DNS尚未指向本服务器（或Cloudflare），则会跳过此步骤并予以提示。
8. **输出摘要信息**，包含URL以及尚未创建管理员时的**设置代码**。

## 控制面板端口（3000） {#the-panel-port-3000}

- 初次安装期间，控制面板会监听`0.0.0.0:3000`，以便您在`http://<server-IP>:3000/setup`打开设置向导。
- 向导完成**且**TLS生效后，控制面板仅监听`127.0.0.1`；nginx会将`https://<domain>`代理至该端口。
- 紧急情况下（nginx故障、DNS配置错误），您可以在限定时间内临时开放该端口：`sudo nexcmp open-port 30`（30分钟后自动关闭）——或者使用SSH隧道：`ssh -L 3000:127.0.0.1:3000 <server>`并访问`http://127.0.0.1:3000/`。

::: warning 明文HTTP
3000端口采用明文HTTP。仅限在可信网络中用于设置向导，或通过SSH隧道使用。切勿保持开放。
:::

## 在无公网域名的情况下安装（实验或测试） {#installing-without-a-public-domain-lab-or-test}

您也可以在尚未配置DNS的机器上进行安装：

```bash
curl -fsSL https://nexcmp.com/install.sh | sudo bash -s -- \
  --license NXC-XXXXX-XXXXX-XXXXX-XXXXX --domain lab.example.com --no-nginx
```

然后通过SSH隧道打开向导（`ssh -L 3000:127.0.0.1:3000 <server>`，访问`http://127.0.0.1:3000/setup`）。配置好DNS后，在不带`--no-nginx`的情况下重新运行安装程序。

## Docker与Kubernetes {#docker-and-kubernetes}

官方未发布容器镜像。支持的安装方式为使用安装程序（原生systemd安装）。

## 验证 {#verify}

```bash
sudo nexcmp status
```

您将看到版本号、`nexcmp: active`、`nexcmp-vmd: active`、`healthz: ok`，以及在向导完成前显示的设置代码。接下来请继续进行[设置向导](https://nexcmp.com/zh-cn/docs/getting-started/setup-wizard/)。

如果出现问题，请参阅[安装错误](https://nexcmp.com/zh-cn/docs/troubleshooting/installation-errors/)。
