利用VLMCSD部署本地KMS服务器(Windows + CentOS7)

利用KMS激活Windows操作系统和Office早已不是什么新鲜事,但是呢,不信任来路不明的激活工具,外部服务器又不稳定,随时可能停服,所以,还是发扬自己动手、丰衣足食的优良作风,求人不如求己,那就自己搭一台好了。当然,这里说的部署并不是真的要部署一台微软的KMS服务器,显然博主掏不起那个银子,所以,薅羊毛而已啦,下面进入正题。

项目名称:VLMCSD
项目简介:KMS Emulator in C (Currently runs on Linux, Mac OS, iOS, Windows with or without Cygwin)
项目主页https://github.com/Wind4/vlmcsd
软件下载https://github.com/Wind4/vlmcsd/releases/download/svn1112/binaries.tar.gz

首先通过上述下载页面将软件下载下来,不过由于GitHub自身原因,下载不是特别的稳定,博主已经把最新版本的源代码和编译好的工具下载好并打包上传,网友们可以自行下载。信不过博主的,可以通过上述链接自行下载。

# vlmcsd-1112-2018-10-20-Hotbird64
链接: https://pan.baidu.com/s/1Bh4BJR3zwWuucXvgSJr2XA
提取码: dgr4

1. Windows 平台部署KMS服务器 

将下载好的工具软件解压到指定的目录下,记得事先关闭杀毒软件(Windows自带的Windows Defender也算)以防发生意外。将工具软件的服务端拷贝到系统文件夹中,方便后续创建系统服务,操作如下:

# VLMCSD 服务端参考路径
# $APP_PATH\vlmcsd-1112-2018-10-20-Hotbird64\binaries\Windows\intel\vlmcsd-Windows-x64.exe
copy vlmcsd-Windows-x64.exe %windir%\System32\vlmcsd.exe

接下来,以管理员模式创建命令提示符窗口,我们要创建系统服务并设置为自动启动,同时打开防火墙服务端口,参考命令如下:

# Create System Service
sc create KMSSrv binpath=%windir%\System32\vlmcsd.exe type=own start=auto displayname="KMS Emulator"

# Run Vlmcsd
net start KMSSrv

# Open Port:1688
netsh advfirewall firewall add rule name="KMS Emulator Server" dir=in action=allow protocol=TCP localport=1688

 至此,KMS服务器算是搭建完毕了,接下来,就要测试下服务器是否生效,同样在刚才解压的工具软件目录下,找到如下客户端程序并拷贝到系统文件夹,参照下述命令执行:

# 拷贝客户端程序到SysWow64
copy vlmcs-Windows-x64.exe %windir%\SysWOW64\vlmcs.exe

# 执行测试命令
vlmcs.exe -v -l 3 localhost

2. Linux 平台部署KMS服务器

下面的内容要求读者至少要有Linux操作系统的基础知识,这里以CentOS为例进行演示,博主不会讲解的特别详细,对Linux系统不了解的朋友可以不必向后看了。

操作系统:CentOS7 (1804) 64Bit
测试平台:VMWare Workstation 14

同样,首先要把软件包取回本地,博主这里因为是虚拟机环境,为了节省时间,所以就直接使用VMWare-Tools提供的共享目录功能替代了下载过程,wget命令换cp的区别而已,参考注释掉的wget命令即可。

# 获取工具软件包
# wget -O /tmp/binaries.tar.gz https://github.com/Wind4/vlmcsd/releases/download/svn1112/binaries.tar.gz
cp /mnt/hgfs/SandBox/Swap/binaries.tar.gz /tmp/

# 解包
tar -xzf /tmp/binaries.tar.gz -C /tmp/

 

现在,是最关键的一步,需要为VLMCSD创建系统服务,参照下述命令以及上述截图,请读者自行配置该服务。

# 拷贝Vlmcsd服务端到目标目录
cp /tmp/binaries/Linux/intel/static/vlmcsd-x64-musl-static /usr/bin/
# 修改文件权限添加可执行权限
chmod 755 /usr/bin/vlmcsd-x64-musl-static
# 为服务创建PID文件
touch /var/run/vlmcsd.pid
# 创建服务配置文件
touch /lib/systemd/system/vlmcsd.service
# 参照下述模板编辑服务配置
vim /lib/systemd/system/vlmcsd.service

[Unit]
Description=KMS Emulator
After=network.target

[Service]
Type=forking
PIDFile=/var/run/vlmcsd.pid
ExecStart=/usr/bin/vlmcsd-x64-musl-static -p /var/run/vlmcsd.pid
ExecStop=/bin/kill -HUP $MAINPID
PrivateTmp=true

[Install]
WantedBy=multi-user.target

服务创建完毕之后,接下来就是启动服务并开通防火墙默认1688端口,见证奇迹的时刻到了!

# 重新载入服务
systemctl daemon-reload
# 设置Vlmcsd服务自启动
systemctl enable vlmcsd.service
# 启动Vlmcsd服务
systemctl start  vlmcsd.service
# 添加防火墙规则放通1688端口
firewall-cmd --zone=public --add-port=1688/tcp --permanent
firewall-cmd --reload

# 测试Vlmcsd服务器
vlmcs.exe -v -l 8 192.168.3.18

好了,至此,如何利用VLMCSD在Windows及Linux系统中部署KMS服务器已经讲解完毕,输入如上命令测试下服务器看看服务是否正常运行了?记得把IP地址替换成自己的哟!需要特别补充说明的是,该项目最后一次发布的RELEASE版本(也就是上文提供网盘下载的版本)仅支持到Office 2016以及Windows 10 Enterprise 2016 LTSB,是不支持、也无法激活Office 2019以及Windows 10 Enteprise LTSC 2019版本的。支持激活的应用列表可参考下图,有更高版本需要的,请自行下载、编译最新项目代码。

3. 获取最新版VLMCSD代码并编译

可以看到,最新版本的VLMCSD是支持激活Office 2019以及Windows 10 Enterprise LTSC 2019的,有需要的朋友可以自行下载编译最新项目代码获取支持,这里就不再详述了。

### 安装和配置 KMS 服务器 #### 停止并禁用默认防火墙 为了确保KMS服务能够正常工作,需要先停止并禁用系统的默认防火墙。这可以通过下面的命令来实现: ```bash systemctl stop firewalld.service systemctl disable firewalld.service ``` 如果计划继续使用iptables作为替代方案,则可以安装`iptables-services`包[^2]。 #### 下载 vlmcsd 软件包 前往GitHub上的vlmcsd项目页面获取最新版本的服务端程序,并将其放置于适当位置以便后续操作。具体来说是从指定链接下载压缩包,解压后定位至`binaries/Linux/intel/static/`目录下的可执行文件`vlmcsd-x64-musl-static`,并将此文件复制到`/usr/bin/vlmcsd`路径下[^3]。 #### 设置权限与启动项 给定目标二进制文件相应的执行权限,并通过编辑`/etc/rc.local`文件的方式设置其随系统启动而自动运行: ```bash chmod +x /usr/bin/vlmcsd echo "/usr/bin/vlmcsd" >> /etc/rc.local ``` #### 开放必要的网络端口 为了让其他设备能访问到本地主机所提供的KMS服务,需允许外部流量到达监听中的TCP端口1688。对于采用firewall-cmd管理规则的情况而言,可通过如下指令完成上述需求: ```bash firewall-cmd --add-port=1688/tcp --permanent firewall-cmd --reload ``` 验证所做更改是否生效的方法之一就是利用netstat工具检查当前活跃连接列表里是否存在对应条目: ```bash netstat -lnpt | grep 1688 ``` #### 创建 Systemd Service 文件 (可选) 考虑到Systemd已经成为现代Linux发行版中最常用的初始化管理系统之一,在这里建议创建一个专门用于控制vlmcsd进程生命周期的服务单元定义文档。这样做不仅有助于简化日常维护流程,而且还能提高整体安全性水平。以下是可供参考的一个简单例子: ```ini [Unit] Description=Volume License Management Service Daemon After=syslog.target network.target [Service] Type=simple ExecStart=/usr/bin/vlmcsd Restart=on-failure [Install] WantedBy=multi-user.target ``` 保存以上内容为`kms-script.service`之后,记得按照惯例刷新守护进程缓存以及启用新添加的功能组件: ```bash systemctl daemon-reload systemctl start kms-script.service systemctl enable kms-script.service ```
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值