利用vlmcsd搭建KMS激活服务器

IT, 其他
没有评论

KMS 激活服务是用于激活本地网络中的计算机,并且无需将计算机专门链接到Microsoft激活的一种方案。使用的是KMS客户端-服务器的拓扑。作为KMS客户端的计算机可以使用DNS或者静态IP定位KMS服务器,当KMS服务器满足激活KMS资格的时候即可为计算机提供激活服务。

利用这个原理有很多人开发过KMS各种良莠不齐的KMS激活器,有些不法分子甚至会在程序中夹带各种恶意代码。vlmcsd提供了一种开源的以C语言编写的KMS模拟器,同时它是跨平台的可以在Win,linux,OS X等多种系统平台使用。

部署服务

以Linux(CentOS 6.5)为例:

1.根据自己使用的系统版本,CPU类型我们可以选择相应的二进制文件。例如我这里使用的是CentOS 6.5 x64,运行平台为Intel平台的KVM虚拟机,那么我就在binaries文件夹下找到\binaries\Linux\intel\static路径,选择vlmcsd-x64-musl-static

2.在/usr/local下创建文件夹kms


mkdir -p /usr/local/kms

3.如果是从本地上传到/usr/local/kms目录,那么就需要重新赋予可执行权限


chmod u+x /usr/local/kms/vlmcsd-x64-musl-static

4.运行

 
/usr/local/kms/vlmcsd-x64-musl-static 

5.开放防火墙 如果使用iptables防火墙,并且默认规则为reject或者drop,那么需要为kms服务器设置相应的放行规则

 
iptables -I INPUT -p tcp -m state --state NEW -m tcp --dport 1688 -j ACCEPT

测试

使用vlmcs去测试服务端运行状况
以Windows为例,进入vlmcs-Windows-x64.exe 所在目录,按住shift右键在此位置打开命令行

 
vlmcs-Windows-x64.exe -v kms服务器地址

如果测试成功则显示如下内容

激活

使用管理员身份输入下列命令

slmgr /skms kms服务器地址
slmgr /ipk xxxxx-xxxxx-xxxxx-xxxxx-xxxxx
slmgr /ato
slmgr /xpr

kms使用的安装密匙微软已公布在官方文档

其他

如果需要自启动,那么需要对linux系统加入如下的脚本:


#!/bin/sh
# chkconfig: 2345 90 10
# description: Start or stop the kms server
#
### BEGIN INIT INFO
# Provides: vlmcsd
# Required-Start: $network $syslog
# Required-Stop: $network
# Default-Start: 2 3 4 5
# Default-Stop: 0 1 6
# Description: Start or stop the kms server
### END INIT INFO

name=kms-service
path=/usr/local/kms/
bin=vlmcsd-x64-musl-static

start(){
$path$bin
RETVAL=$?
if [ "$RETVAL" = "0" ]; then
echo "$name start success"
else
echo "$name start failed"
fi
}

stop(){
pid=`ps -ef | grep -v grep | grep -v ps | grep -i "${bin}" | awk '{print $2}'`
if [ ! -z $pid ]; then
kill -9 $pid
RETVAL=$?
if [ "$RETVAL" = "0" ]; then
echo "$name stop success"
else
echo "$name stop failed"
fi
else
echo "$name is not running"
RETVAL=1
fi
}

status(){
pid=`ps -ef | grep -v grep | grep -v ps | grep -i "${bin}" | awk '{print $2}'`
if [ -z $pid ]; then
echo "$name is not running"
RETVAL=1
else
echo "$name is running with PID $pid"
RETVAL=0
fi
}

case "$1" in
'start')
start
;;
'stop')
stop
;;
'status')
status
;;
'restart')
stop
start
RETVAL=$?
;;
*)
echo "Usage: $0 { start | stop | restart | status }"
RETVAL=1
;;
esac
exit $RETVAL

, ,
上一篇文章
NEKOPARA OVA WebRip 制作
下一篇文章
爱丽丝与藏六 BDRip 制作感受

发表评论

电子邮件地址不会被公开。 必填项已用*标注

Fill out this field
Fill out this field
请输入正确的电子邮件地址。

此站点使用Akismet来减少垃圾评论。了解我们如何处理您的评论数据

菜单