Linux编译部署KMS服务( vlmcsd )
GitHub 上有一个有趣的开源项目,名为 vlmcsd 的 KMS 激活服务器。您可以使用它在 Windows Server 以外的平台上部署自己的 KMS 服务器。您可以在 Linux、Android、FreeBSD、macOS 等上安装这样的 KMS 服务器。在接下来的教程中,我们将向您展示如何在 Linux 主机上编译安装 vlmcsd,并使用它来激活在本地网络上运行桌面 Windows 版本、Windows Server 和 Microsoft Office 的计算机
vlmcsd
1. 安装基础依赖
首先,安装编译所需要的软件包:
- RHEL 6/7、CentOS6/7、OEL 6/7
sudo yum makecache fast
sudo yum install git gcc make -y
- Fedora、RHEL 8+、CentOS 8+ 等
sudo dnf makecache
sudo dnf install git gcc make -y
- Debian、Ubuntu
sudo apt update
sudo apt install git gcc make -y
2. 下载 vlmcsd 源码
克隆 vlmcsd 源码到本地 /opt 目录下
root@linux:~# cd /opt
root@linux:/opt# git clone https://github.com/Wind4/vlmcsd.git
3. 编译 vlmcsd
root@linux:/opt# cd vlmcsd # 进入项目目录
root@linux:/opt/vlmcsd# make CC=gcc # 编译项目
4. 启动KMS服务器并验证配置
编译完成之后会在 bin/ 目录下生成两个可执行文件
root@linux:/opt/vlmcsd# ls -lh bin/
total 104K
-rwxr-xr-x 1 root root 57K Aug 13 16:00 vlmcs
-rwxr-xr-x 1 root root 43K Aug 13 16:00 vlmcsd
| 程序 | 作用 |
|---|---|
| vlmcs | KMS的客户端,可以用来测试 kms 服务 |
| vlmcsd | KMS的服务端 |
运行 KMS 服务器:
root@linux:/opt/vlmcsd# bin/vlmcsd # 运行KMS服务端
root@linux:/opt/vlmcsd# ps -aux | grep vlmcsd # 查看KMS的服务端是否运行
root 6696 0.0 0.0 2232 680 ? Ss 16:11 0:00 bin/vlmcsd
root 6698 0.0 0.2 9176 1916 pts/1 S+ 16:11 0:00 grep vlmcsd
KMS服务端程序会自动转入后台运行,然后我们执行下KMS的客户端,验证是否正常启动:
root@linux:/opt/vlmcsd# bin/vlmcs 127.0.0.1
Connecting to 127.0.0.1:1688 ... successful
Sending activation request (KMS V6) 1 of 1 -> 55041-00206-552-470661-03-10250-7601.0000-0302021 (3A1C049600B60076)
这意味着您已在 Linux 上成功编译并运行 KMS 服务器。
5. 添加vlmcsd、vlmcs 到系统服务
- 安装 vlmcsd 、vlmcs 到
/usr/local/bin/,便于系统 PATH 调用。
root@linux:/opt/vlmcsd# sudo install bin/vlmcs /usr/local/bin/vlmcs
root@linux:/opt/vlmcsd# sudo install bin/vlmcsd /usr/local/bin/vlmcsd
root@linux:/opt/vlmcsd# whereis vlmcs vlmcsd
vlmcs: /usr/local/bin/vlmcs /opt/vlmcsd/bin/vlmcs
vlmcsd: /usr/local/bin/vlmcsd /opt/vlmcsd/bin/vlmcsd
- 添加vlmcsd的 man使用手册到系统中(可选)
点击查看代码
root@linux:/opt/vlmcsd# sudo gzip man/vlmcs.1 man/vlmcsd.7 man/vlmcsd.8 man/vlmcsd.ini.5 # man调用时希望手册被压缩过
root@linux:/opt/vlmcsd# cp man/vlmcs.1.gz /usr/share/man/man1/
root@linux:/opt/vlmcsd# cp man/vlmcsd.7.gz /usr/share/man/man7/
root@linux:/opt/vlmcsd# cp man/vlmcsd.8.gz /usr/share/man/man8/
root@linux:/opt/vlmcsd# cp man/vlmcsd.ini.5.gz /usr/share/man/man5/
root@linux:/opt/vlmcsd# mandb # 重新生成man数据库数据索引缓存(会重新识别新添加的手册路径)
root@linux:/opt/vlmcsd# man -k vlmcs # 查看 vlmcs 相关的手册
vlmcs (1) - a client for testing and/or charging KMS servers
vlmcsd (7) - a guide to KMS activation using vlmcsd
vlmcsd (8) - a fully Microsoft compatible KMS server
vlmcsd.ini (5) - vlmcsd KMS emulator configuration file
6. 配置 systemd 服务
- 复制 vlmcsd 配置文件 vlmcsd.ini 到
/etc/vlmcsd.ini
root@linux:/opt/vlmcsd# cp etc/vlmcsd.ini /etc/vlmcsd.ini
- 添加 systemd 守护管理脚本
root@linux:/opt/vlmcsd# sudo tee /etc/systemd/system/vlmcsd.service <<'EOF'
[Unit]
Description=MSFT KMS Server Emulator
Documentation=man:vlmcsd(7) man:vlmcsd(8) man:vlmcsd.ini (5)
After=network.target
Wants=network-online.target
[Service]
Type=simple
User=nobody
Group=nogroup
Restart=on-failure
WorkingDirectory=/usr/local/bin
ExecStartPre=/usr/bin/test -f /etc/vlmcsd.ini
ExecStart=/usr/local/bin/vlmcsd -D -e -v -i /etc/vlmcsd.ini
ExecStop=/usr/bin/kill -s QUIT $MAINPID
ExecReload=/usr/bin/kill -s HUP $MAINPID
ProtectSystem=full
ProtectHome=true
NoNewPrivileges=true
PrivateTmp=true
CapabilityBoundingSet=CAP_NET_BIND_SERVICE
AmbientCapabilities=CAP_NET_BIND_SERVICE
LimitNOFILE=4096
[Install]
WantedBy=multi-user.target
EOF
- 启动vlmcsd服务,使其在后台运行:
root@linux:~# systemctl daemon-reload
root@linux:~# systemctl enable --now vlmcsd.service
Created symlink /etc/systemd/system/multi-user.target.wants/vlmcsd.service → /etc/systemd/system/vlmcsd.service.
root@linux:~# systemctl status vlmcsd.service
● vlmcsd.service - MSFT KMS Server Emulator
Loaded: loaded (/etc/systemd/system/vlmcsd.service; enabled; preset: enabled)
Active: active (running) since Thu 2025-08-14 10:17:36 CST; 11s ago
Docs: man:vlmcsd(7)
man:vlmcsd(8)
man:vlmcsd.ini
Process: 9903 ExecStartPre=/usr/bin/test -f /etc/vlmcsd.ini (code=exited, status=0/SUCCE>
Main PID: 9904 (vlmcsd)
Tasks: 1 (limit: 760)
CPU: 106ms
CGroup: /system.slice/vlmcsd.service
└─9904 /usr/local/bin/vlmcsd -D -e -v -i /etc/vlmcsd.ini
Aug 14 10:17:36 linux vlmcsd[9904]: 2025-08-14 10:17:36: Read ini file /etc/vlmcsd.ini
Aug 14 10:17:36 linux vlmcsd[9904]: 2025-08-14 10:17:36: Read KMS data file version 2.>
Aug 14 10:17:36 linux vlmcsd[9904]: 2025-08-14 10:17:36: Listening on 0.0.0.0:1688
Aug 14 10:17:36 linux vlmcsd[9904]: 2025-08-14 10:17:36: Using CSVLK Windows (Windows >
Aug 14 10:17:36 linux vlmcsd[9904]: 2025-08-14 10:17:36: Using CSVLK Office2010 (Offic>
Aug 14 10:17:36 linux vlmcsd[9904]: 2025-08-14 10:17:36: Using CSVLK Office2013 (Offic>
Aug 14 10:17:36 linux vlmcsd[9904]: 2025-08-14 10:17:36: Using CSVLK Office2016 (Offic>
Aug 14 10:17:36 linux vlmcsd[9904]: 2025-08-14 10:17:36: Using CSVLK WinChinaGov (Wind>
Aug 14 10:17:36 linux vlmcsd[9904]: 2025-08-14 10:17:36: Using CSVLK Office2019 (Offic>
Aug 14 10:17:36 linux vlmcsd[9904]: 2025-08-14 10:17:36: vlmcsd svn1113-5-g70e0357, bu>
8. 在 Windows 使用命令激活 系统
在客户端计算机上,运行以下命令以激活Windows或Office:[接下来所有的命令需要以管理员身份运行的 PowerShell中执行]
- 设置KMS激活服务器地址
PS C:\Users\Windows> slmgr /skms 10.112.6.62 (修改成你服务器的IP)

- 安装产品密钥:
PS C:\Users\Windows> slmgr /ipk M7XTQ-FN8P6-TTKYV-9D4CC-J462D

具体的产品密码可以在微软官方的网站中获取,获取链接如下:
KMS client activation and product keys
- 激活系统
PS C:\Users\Windows> slmgr /ato

- 查看系统激活信息
PS C:\Users\Windows> slmgr /dlv

可以看到KMS激活一次的有效期是180天,这主要是为了限制这些正版授权只能在组织内使用。但KMS激活通常并不需要用户手动180天激活一次。
这是因为,通过上面的流程激活后,Windows系统和Office会自动每7天自动重新尝试一次KMS激活,激活成功后有效期会重置为180天。如此反复,只要这台电脑半年内没有与KMS服务器断连,就能自动续期保持激活状态,不需要用户手动操作
参考链接:
手动编译并部署 vlmcsd 教程
Installing an Open Source KMS Server (Vlmcsd) on Linux
浙公网安备 33010602011771号