在 CentOS 中部署 KMS 服务器(vlmcsd)
准备 vlmcsd
下载 vlmcsd
本文使用的 vlmcsd 版本为 svn1111,支持的产品:
Windows Vista – 10
Windows Server 2008 - 2016
Office 2013 - 2019
Visio 2013 - 2019
Project 2013 – 2019
需要的可以点击此处:https://fangyd.ctfile.com/fs/18430465-312415932 下载已制作成 ISO 镜像文件的 vlmcsd 安装文件。
或者从 vlmcsd发布页:https://forums.mydigitallife.net/threads/emulated-kms-servers-on-non-windows-platforms.50234/ 进行下载,然后制作成 ISO 镜像文件。
制作 vlmcsd 的 ISO 镜像文件
此步骤仅适用于从 vlmcsd发布页下载的 vlmcsd。
将下载的 vlmcsd 解压缩(解压密码请查看 vlmcsd发布页上的说明),并制作成 ISO 镜像文件。
注:将 vlmcsd 的内容直接放在镜像文件根目录下。
1、安装 CentOS 6.8
本文使用的虚拟机软件为:VMware Wrokstation,安装的 CentOS 版本对应的镜像文件为:CentOS-6.8-i386-minimal.iso,需要的可以点击此处进行下载,或从各大 Linux 镜像站点进行下载。
注:硬件兼容性选择 Workstation 6,并且安装最小系统即可。
虚拟机只保留基本的硬件(光驱可在 vlmcsd 全部安装完成后移除,需使用光驱时可再次添加),选项中的内容无需更改,如图:
2、安装 vlmcsd
注:以下命令均以 root 权限执行,可使用 su 命令临时切换至 root 权限。
加载 ISO 镜像到光驱
将准备好的 vlmcsd 的 ISO 镜像文件加载到光驱。
注意:虚拟机硬件中已指明光驱使用主机上的哪个驱动器,不要加载错了。
3、挂载光驱到 CentOS
步骤及命令如下:
在 /mnt 目录下创建 cdrom 目录:
# mkdir /mnt/cdrom
挂载光驱:
# mount /dev/cdrom /mnt/cdrom
若不确定光驱的名称,可使用如下命令确定:
# ls -l /dev | grep cdrom
如图:
4、复制文件并赋予执行权限
步骤及命令如下:
创建目录,进入目录:
# mkdir /usr/local/vlmcsd
# cd /mnt/cdrom/ binaries/linux/intel/glibc
复件文件并重命名:
# cp vlmcsd-x86-glibc /usr/local/vlmcsd/vlmcsd
进入目录,赋予执行权限:
# cd /usr/local/vlmcsd
# chmod 755 vlmcsd
5、设置防火墙规则
vlmcsd 使用 tcp 协议的 1688 端口进行通信,所以必须打开 1688 端口,否则客户机将无法连接至 KMS 服务器,步骤及命令如下:
CentOS 6:
添加规则,保存规则:
# iptables -I INPUT -p tcp -m tcp --dport 80 -j ACCEPT
# service iptables save
# shutdown -h now
CentOS 7:
停止自带防火墙,禁止自带防火墙开机自启动:
# systemctl stop firewalld.service
# systemctl disable firewalld.service
安装 iptables:
# yum install iptables-services
若已安装 iptables 则忽略此步骤,可通过检查 /etc/sysconfig 目录下是否存在 iptables 文件来确定,命令如下:
# ls -l /etc/sysconfig | grep iptables
结果如图:
打开 /etc/sysconfig/iptables 文件:
# vi /etc/sysconfig/iptables
添加防火墙规则
在 -A INPUT -p tcp -m state --state NEW -m tcp --dport 22 -j ACCEPT 后添加以下两行内容:
# vlmcsd port(这是一行注释)
-A INPUT -p tcp -m state --state NEW -m tcp --dport 1688 -j ACCEPT
重启 iptables 使配置生效:
# systemctl restart iptables.service
# systemctl enable iptables.service
6、设置 vlmcsd 开机自启动
将以下内容添加到 /etc/rc.local:
# echo "/usr/local/vlmcsd/vlmcsd -l /var/log/vlmcsd.log > /dev/null 2>&1" >> /etc/rc.local
注:-l /var/log/vlmcsd.log 用于记录日志。
设置权限:chmod +755 /etc/rc.local
注:此命令可暂时忽略,若测试不成功再执行此命令。
7、注意事项
在防火墙规则添加完成后,可先手动运行 vlmcsd,命令如下:
# /usr/local/vlmcsd/vlmcsd
如果 1688 端口被其它程序占用,会有如下报错:
Warning: 0.0.0.0:1688: Address already in use
Fatal: Could not listen on any socket.
如需确认 vlmcsd 是否已运行,可使用如下命令:
# ps aux | grep vlmcsd
结果如图: