深色模式
① 安装主控 Console
主控是整套系统的核心,先装主控,再装财务端,最后装被控。
一键安装(推荐)
在一台全新的 Debian 12/13 服务器上(root):
bash
curl -fsSL https://nkxcloud-wiki.pages.dev/install-console.sh | bash脚本会自动:下载程序 → 生成自签证书与配置 → 安装 systemd 服务 → 启动,并打印访问地址。 重复执行就是升级(自动保留配置与数据库,升级前自动备份)。 对外使用时,console_public_url 应指向 HTTPS 且客户端可验证的地址;Agent 注册和财务端到主控的 API/WebSocket 都会校验证书。
完成后打开 https://你的IP/(或域名)→ 进入「安装向导」。
可用环境变量覆盖
bash
PANEL_NAME="NKXCLOUD 主控" LISTEN=:443 curl -fsSL https://nkxcloud-wiki.pages.dev/install-console.sh | bash安装脚本和编译包由文档站公开分发,源码仓库保持私有。
手动安装(不推荐,供排查用)
1. 上传程序
在本地编译或拿到 nkxconsole 二进制后:
bash
ssh root@主控IP
mkdir -p /opt/nkxconsole
# 从本地 scp 上传(示例)
# scp nkxconsole-linux-amd64 root@主控IP:/opt/nkxconsole/nkxconsole
chmod +x /opt/nkxconsole/nkxconsole2. 写配置文件
bash
cat > /opt/nkxconsole/config.json <<'JSON'
{
"panel_name": "NKXCLOUD 主控",
"listen": ":443",
"db": "/opt/nkxconsole/console.db",
"secret_file": "/opt/nkxconsole/secret.key",
"cert_file": "/opt/nkxconsole/cert.pem",
"key_file": "/opt/nkxconsole/key.pem",
"license_url": "https://license.niekaixiang.com",
"console_public_url": "console.example.com",
"bootstrap_admin": "",
"poll_seconds": 30,
"trusted_proxies": []
}
JSON
chmod 600 /opt/nkxconsole/config.json首次安装用「安装向导」
bootstrap_admin 留空,第一次打开 https://console.example.com/你的隐藏路径/login 会自动进入安装向导:填主控名称、管理员账号密码、对外地址、隐藏后台路径。 如果你想用固定账号,也可以写 "bootstrap_admin": "admin:至少12位的强密码"(跳过向导)。
财务端连接自建 CA 的主控时,在财务端 config.json 设置 console_ca_file 和可选的 console_server_name。旧配置里的 console_insecure、node_insecure 不再生效。
3. 生成自签证书
bash
cd /opt/nkxconsole
openssl req -x509 -newkey ec -pkeyopt ec_paramgen_curve:prime256v1 \
-keyout key.pem -out cert.pem -days 3650 -nodes -subj "/CN=console.example.com"
chmod 600 key.pem4. 安装 systemd 服务
bash
cat > /etc/systemd/system/nkxconsole.service <<'UNIT'
[Unit]
Description=NKXCLOUD Console (Master Control)
After=network.target
[Service]
Type=simple
WorkingDirectory=/opt/nkxconsole
ExecStart=/opt/nkxconsole/nkxconsole -config /opt/nkxconsole/config.json
Restart=always
RestartSec=3
LimitNOFILE=65535
[Install]
WantedBy=multi-user.target
UNIT
systemctl daemon-reload
systemctl enable --now nkxconsole
systemctl status nkxconsole --no-pager5. 上传被控安装包
被控的一键安装脚本会从主控下载被控程序,把编译好的 nkx-agent 放到:
/opt/nkxconsole/agent/nkx-agent重要
每次更新被控程序后,都要同步更新这个文件,否则新杜甫装到的是旧版本。
6. 访问与首次配置
- 浏览器打开
https://console.example.com(CF 已代理)→ 按提示完成安装向导,记住隐藏后台路径。 - 登录后进入 系统设置:
- 商业许可证:输入许可证密钥并在线激活;每份许可证绑定一套 Web、Console 和 Agent 节点数。
- 主控对外地址:填
console.example.com(生成被控安装命令用)。 - 主控出口 IP:必填——被控节点 API 的白名单只允许这个 IP 访问;如果你用域名 + Cloudflare,这里必须填主控 VPS 的真实出口 IP(不是 CF 的 IP)。
- 服务令牌:复制备用(财务端要用)。
- 到 被控节点 → 新增 登记第一台杜甫(见下一步)。
7. 升级主控
bash
systemctl stop nkxconsole
# 覆盖 /opt/nkxconsole/nkxconsole
systemctl start nkxconsole升级前建议备份 console.db(sqlite3 console.db ".backup /root/console-$(date +%F).db")。