KMS激活系列-01手动编译并部署vlmcsd教程

手动编译并部署 vlmcsd 教程

当前环境:PVE LXC(Ubuntu 24.04)
适用:Ubuntu 24.04 LTS
目标:从源码编译 vlmcsd,并以 systemd 服务守护、随容器启动


目录

  1. 环境与前置条件
  2. 安装基础依赖
  3. 获取 vlmcsd 源码
  4. 编译项目
  5. 安装可执行文件
  6. 准备日志文件(可选)
  7. 创建 systemd 服务
  8. 启动并设为开机自启
  9. 运行验证
  10. 常见自定义与故障排查
  11. 参考链接

环境与前置条件

条目 要求
容器类型 非特权 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. 运行验证

  1. 查看服务状态:

    systemctl status vlmcsd --no-pager
    
    • 应显示 active (running)
  2. 确认端口监听:

    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 已在 Ubuntu 24.04 LXC 容器中编译并守护运行。若要进一步整合 Nginx 反向代理、Prometheus 监控或自动化备份,只需额外配置即可。祝部署顺利,欢迎在评论区交流经验!

posted @ 2025-07-15 17:46  李哲羽930  阅读(544)  评论(0)    收藏  举报