KMS激活系列-01手动编译并部署vlmcsd教程
手动编译并部署 vlmcsd 教程
当前环境:PVE LXC(Ubuntu 24.04)
适用:Ubuntu 24.04 LTS
目标:从源码编译 vlmcsd,并以 systemd 服务守护、随容器启动
目录
环境与前置条件
| 条目 | 要求 |
|---|---|
| 容器类型 | 非特权 LXC(PVE 模板默认) |
| 操作系统 | Ubuntu 24.04 LTS (noble) |
| 网络 | 能直接访问 GitHub;若受限请提前配置代理或镜像 |
| 权限 | root 用户或具备 sudo 权限 |
| 端口 | 外部需能访问 TCP 1688(默认 KMS 端口) |
2. 安装基础依赖
首先更新软件源并安装编译工具链与必需库。
sudo apt update
sudo apt install -y git build-essential libcurl4-openssl-dev
- git:用于克隆源码
- build-essential:提供
gcc/make等编译工具 - libcurl4-openssl-dev:新版本 curl 开发库,替代已淘汰的
libcurl3-nss
3. 获取 vlmcsd 源码
将源码放到 /opt 目录(可自行调整路径)。
sudo mkdir -p /opt && cd /opt
sudo git clone --depth=1 https://github.com/Wind4/vlmcsd.git
cd vlmcsd
--depth=1只拉取最新版本,克隆速度更快。
4. 编译项目
在源码根目录直接执行 make。$(nproc) 会自动并行使用全部 CPU 核心。
make -j"$(nproc)"
编译完成后,生成的二进制位于 bin/ 目录:
| 文件 | 作用 |
|---|---|
vlmcsd |
KMS 服务器守护进程 |
vlmcs |
测试客户端 |
5. 安装可执行文件
手动复制到 /usr/local/bin/,便于系统 PATH 调用。
sudo install -m 755 bin/vlmcsd /usr/local/bin/
sudo install -m 755 bin/vlmcs /usr/local/bin/
项目本身没有
make install目标,因此需要手动复制。
6. 准备日志文件(可选)
如果计划将日志写入文件而非直接输出到 journald,请先创建并赋权。
sudo touch /var/log/vlmcsd.log
sudo chown nobody:nogroup /var/log/vlmcsd.log
7. 创建 systemd 服务
编写服务单元,使用 前台模式 -D 让 systemd 直接管理进程(Type=simple)。
sudo tee /etc/systemd/system/vlmcsd.service <<'EOF'
[Unit]
Description=KMS emulator (vlmcsd)
After=network.target
[Service]
Type=simple
ExecStart=/usr/local/bin/vlmcsd -D -l /var/log/vlmcsd.log # 前台运行并写日志
User=nobody
Group=nogroup
Restart=always
[Install]
WantedBy=multi-user.target
EOF
- 如希望日志进入
journalctl,可改为-l-,并删除第 6 步创建的日志文件。 - 若需自定义端口,例如 1689,可在
ExecStart中追加-p 1689。
8. 启动并设为开机自启
sudo systemctl daemon-reload
sudo systemctl enable --now vlmcsd
9. 运行验证
-
查看服务状态:
systemctl status vlmcsd --no-pager- 应显示
active (running)。
- 应显示
-
确认端口监听:
ss -lntp | grep 1688- 看到
LISTEN行即表示成功在 0.0.0.0:1688 监听。
- 看到
10. 常见自定义与故障排查
| 场景 | 处理方法 |
|---|---|
| 修改监听端口 | 在 ExecStart 添加 -p <端口号> 并重启服务 |
| 固定静态 EPID | 在 ExecStart 添加 -e <EpidString> |
| 日志直接进 journal | 把 -l /var/log/vlmcsd.log 改为 -l- |
| 服务报 start-limit-hit | 确认已使用 -D;如需后台模式,去掉 -D 并改 Type=forking |
| 无法克隆 GitHub | 使用代理,或改用镜像如 https://hub.fastgit.org |
参考链接
- vlmcsd GitHub
https://github.com/Wind4/vlmcsd - Ubuntu 24.04 Release Notes
https://discourse.ubuntu.com/t/ubuntu-24-04-lts-release-notes/39367 - systemd.service 手册
man systemd.service
结语
至此,vlmcsd 已在 Ubuntu 24.04 LXC 容器中编译并守护运行。若要进一步整合 Nginx 反向代理、Prometheus 监控或自动化备份,只需额外配置即可。祝部署顺利,欢迎在评论区交流经验!

浙公网安备 33010602011771号