20181016|KMS服务器的搭建

【注意】最后更新于 October 16, 2018,文中内容可能已过时,请谨慎使用。

前几天重装本站的主机之后,本站部署的KMS服务器也一并失效了。

于是我在今天中午抽空重新部署了KMS服务器,顺便把部署过程发出来分享给大家~

不要担心,文章的内容看似很长,实际上需要进行的操作只有四五步。其余的都是对软件或命令的介绍,以及排除故障的思路。

首先是服务器的基本情况:

  • 操作系统:CentOS 7.5 (X64)
  • KMS服务端:2017-06-17 (1111)

第一步:下载vlmcsd

  • vlmcsd发布地址:http://forums.mydigitallife.info/threads/50234-Emulated-KMS-Servers-on-non-Windows-platforms
  • 2017-06-17 (1111)版二进制包下载:http://rgho.st/6c6R7RwMZ 或 https://www.upload.ee/files/7131474/vlmcsd-1111-2017-06-17-Hotbird64.7z.html
  • 2017-06-17 (1111)版源码包下载:http://rgho.st/7JwqCtsJG 或 https://www.upload.ee/files/7131476/vlmcsd-1111-2017-06-17-Hotbird64-source-only.7z.html

第二步:解压缩并进行安装

  • 从以上几个地址下载到的7zip压缩包的解压密码应该都是:2017

1.解压后找到  \vlmcsd-1111-2017-06-17-Hotbird64\binaries\Linux\intel\glibc 这个文件夹。

2.检查服务器操作系统的位数,可以通过以下两个命令中的任意一个来查看linux机器是32位还是64位

  • file /sbin/init
  • file /bin/ls

3.根据自己的操作系统位数找到 vlmcsd-x**-glibc 这个文件,这个文件就是vlmcsd的服务端。

4.使用winscp把 vlmcsd-x64-glibc 这个文件上传到服务器的/root目录。

5.使用putty连接服务器,为vlmcds创建文件夹并把程序拷贝过去,复制以下两条命令即可完成。

  • mkdir /usr/local/vlmcsd
  • cp vlmcsd-x64-glibc /usr/local/vlmcsd/

6.给vlmcsd-x64-glibc加入执行权限,并改名为vlmscd,复制以下两条命令即可完成。

  • cd /usr/local/vlmcsd/
  • chmod u+x vlmcsd-x64-glibc
  • mv vlmcsd-x86-glibc vlmcsd

第三步:测试启动

执行命令:

  • ./vlmcsd

查看启动的进程:

  • ps aux|grep vlmcsd

如果启动成功则可以看到所启动的进程的PID及命令行等,使用kill pid可以关闭进程。

PS:

如果有其他端口占用1688,会报如下错误:

  • Warning: 0.0.0.0:1688: Address already in use
  • Fatal: Could not listen on any socket.

找出占用的进程关闭即可,可以使用lsof命令和netstat命令。

上文中supervisor关闭命令为。

  • supervisorctl shutdown

第四步:设置开机启动

把命令加到/etc/rc.local或/etc/rc.d/rc.local,并加上可执行权限即可完成开机启动的设置。

为了查看日志,加上vlmcsd -l /var/log/vlmcsd.log。

以下是原教程中的操作过程:

  • echo “/usr/local/vlmcsd/vlmcsd -l /var/log/vlmcsd.log > /dev/null 2>&1” » /etc/rc.d/rc.local
  • chmod +x /etc/rc.local

经过我的测试发现在腾讯云的CENTOS中无效,简单排查了一下修改为一下操作即可:

  • echo “/usr/local/vlmcsd/vlmcsd -l /var/log/vlmcsd.log > /dev/null 2>&1” » /etc/rc.d/rc.local

主要原因是因为CentOS 7中系统启动管理已经由传统的Linux SysV init改为systemd,所以配置方法跟原来的不一样。

重启服务器

  • reboot

第五步:客户端测试

首先,为服务器添加解析记录(kms.tracewalker.com)。

在windows中打开CMD。

使用cd命令跳转到 \vlmcsd-1111-2017-06-17-Hotbird64\binaries\Windows\intel 这个目录下。

执行命令:

  • vlmcs-Windows-x86.exe -v -l 3 kms.tracewalker.com

如果是64位系统,可以执行:

  • vlmcs-Windows-x64.exe -v -l 3 kms.tracewalker.com

命令后面的参数的含义是:

  • -v 输出详细信息
  • -l 3表示发送Windows Server 2008 Datacenter的激活请求,具体版本对应列表可以通过vlmcs.exe -x查看
  • kms.tracewalker.com 表示KMS服务器的域名,也可以直接输入服务器的IP地址

结果如下:

Request Parameters

==================

Protocol version : 6.0

Client is a virtual machine : No

Licensing status : 2 (OOB grace)

Remaining time (0 = forever) : 43200 minutes

Application ID : 55c92734-d682-4d71-983e-d6ec3f16059f (Windows)

SKU ID (aka Activation ID) : 2d5a5a60-3040-48bf-beb0-fcd770c20ce0 (Windows 10 Enterprise 2016 LTSB)

KMS ID (aka KMS counted ID) : 969fe3c0-a3ec-491a-9f25-423605deb365 (Windows 10 2016 (Volume))

Client machine ID : 20b9abc8-bf3c-4ff5-9b01-eacc92ff00bc

Previous client machine ID : 00000000-0000-0000-0000-000000000000

Client request timestamp (UTC) : 2018-10-16 06:09:22

Workstation name : we-love.acer.biz

N count policy (minimum clients): 25

Connecting to 123.206.61.224:1688 … 123.206.61.224:1688: 由于连接方在一段时间后没有正确答复或连接的主机没有反应,连接 尝试失败。

Fatal: Could not connect to any KMS server

可以看到在连接服务器的时候服务器没有响应,我检查了一下,是因为没有在服务器上放心kms服务使用的1688端口导致的。

因为安装了宝塔面板,所以直接打开宝塔面板添加放行:

填加了放行后再次打开CMD运行客户端进行测试:

Request Parameters

==================

Protocol version : 6.0

Client is a virtual machine : No

Licensing status : 2 (OOB grace)

Remaining time (0 = forever) : 43200 minutes

Application ID : 55c92734-d682-4d71-983e-d6ec3f16059f (Windows)

SKU ID (aka Activation ID) : 2d5a5a60-3040-48bf-beb0-fcd770c20ce0 (Windows 10 Enterprise 2016 LTSB)

KMS ID (aka KMS counted ID) : 969fe3c0-a3ec-491a-9f25-423605deb365 (Windows 10 2016 (Volume))

Client machine ID : 4a5ba140-673b-49d7-adf0-b94773d0d2c1

Previous client machine ID : 00000000-0000-0000-0000-000000000000

Client request timestamp (UTC) : 2018-10-16 06:13:15

Workstation name : kms.apple.ua

N count policy (minimum clients): 25

Connecting to 123.206.61.224:1688 … successful

Performing RPC bind …

… NDR64 … BTFN … NDR32 … successful

Sending activation request (KMS V6) 1 of 1

Response from KMS server

========================

Size of KMS Response : 260 (0x104)

Protocol version : 6.0

KMS host extended PID : 06401-00206-484-791593-03-1052-9600.0000-2682017

KMS host Hardware ID : 3A1C049600B60076

Client machine ID : 4a5ba140-673b-49d7-adf0-b94773d0d2c1

Client request timestamp (UTC) : 2018-10-16 06:13:15

KMS host current active clients : 50

Renewal interval policy : 10080

Activation interval policy : 120

可以看到客户端成功的收到了来自服务端的相应,到了这一步,kms服务器的搭建就算成功了!

另附:在虚拟中快速的进行搭建的方法

在 \vlmcsd-1111-2017-06-17-Hotbird64\floppy 文件夹中找到 floppy144.vfd 这个文件。

将其改名为floppy144.flp或floppy144.img,然后用vmware加载为软盘就能运行了。启动后直接就能用了。

本文的部分内容参考或转载自以下文章,并根据自身的实际情况进行了修改和注释:

  1. 使用vlmcsd搭建KMS服务器激活环境:https://blog.csdn.net/gsls200808/article/details/50326201
  2. Emulated KMS Servers on non-Windows platforms:https://forums.mydigitallife.net/threads/emulated-kms-servers-on-non-windows-platforms.50234/

也可以看看