在企业或学习环境中,批量激活Microsoft产品(如Windows和Office)是一个常见需求,KMS(Key Management Service,密钥管理服务)是微软提供的一种本地激活方案,它允许组织在内网中搭建激活服务器,无需每台设备都连接到微软服务器,本文将详细介绍如何在稳定且轻量的CentOS系统上,搭建一个迷你的KMS服务,以满足局域网内的激活需求。
理解KMS与准备工作
KMS的核心思想是“托管激活”,客户端计算机连接到内网的KMS服务器进行激活,激活状态并非永久,而是有180天的有效期,客户端在此期间需要定期(至少每7天)联系KMS服务器以续订激活期,这种机制非常适合管理大量计算机。
在开始搭建之前,请确保您满足以下基本条件:
准备项 | 要求 | 说明 |
---|---|---|
服务器 | 一台运行CentOS 7/8/9的计算机 | 物理机或虚拟机均可,资源占用极低 |
权限 | root或sudo权限 | 用于安装软件和管理系统服务 |
网络 | 稳定的局域网连接 | 确保客户端能够访问到此服务器 |
防火墙 | 了解基本配置 | 需要开放KMS服务所使用的TCP端口 |
我们将使用一个名为 vlmcsd
的开源KMS模拟器项目,它非常轻量,资源消耗极小,且兼容性好,是搭建迷你KMS服务的理想选择。
系统更新与必要工具安装
我们需要确保CentOS系统是最新的,并安装编译和运行 vlmcsd
所需的基本工具,打开终端,执行以下命令。
对于使用 yum
的CentOS 7:
sudo yum update -y sudo yum install -y git wget gcc make
对于使用 dnf
的CentOS 8/9:
sudo dnf update -y sudo dnf install -y git wget gcc make
这些命令会安装Git(用于获取源代码)、wget(一个下载工具)、gcc和make(编译C语言代码所必需的编译套件)。
下载、编译与配置vlmcsd
我们从GitHub上获取 vlmcsd
的最新源代码并进行编译。
克隆源代码仓库
git clone https://github.com/Wind4/vlmcsd.git
进入项目目录并编译
cd vlmcsd make
这个过程非常迅速,
vlmcsd
的代码很精简,编译成功后,所有可执行文件都会生成在bin
目录下。部署可执行文件
为了方便管理,我们将编译好的主程序复制到系统路径下。sudo cp bin/vlmcsd /usr/local/bin/
你可以在任何位置直接通过
vlmcsd
命令来启动服务。
将vlmcsd配置为系统服务
手动启动服务在服务器重启后就会失效,因此我们需要将其配置为一个 systemd
服务,使其能够开机自启并稳定运行。
创建服务单元文件
使用你喜欢的文本编辑器(如nano
或vim
)创建一个新的服务文件:sudo nano /etc/systemd/system/vlmcsd.service
填入服务配置
将以下内容粘贴到文件中:[Unit] Description=KMS Emulator (vlmcsd) After=network.target [Service] Type=simple ExecStart=/usr/local/bin/vlmcsd -L 0.0.0.0:1688 User=nobody Restart=on-failure RestartSec=5s [Install] WantedBy=multi-user.target
配置说明:
Description
: 服务的描述信息。After=network.target
: 确保在网络服务启动后再启动KMS服务。ExecStart
: 服务的启动命令。-L 0.0.0.0:1688
参数表示监听所有网络接口的1688端口(KMS标准端口)。User=nobody
: 以nobody
用户身份运行,增强安全性。Restart=on-failure
: 如果服务意外退出,系统会自动尝试重启。
启用并启动服务
保存并关闭文件后,执行以下命令来重新加载systemd
配置,并启用和启动KMS服务:sudo systemctl daemon-reload sudo systemctl enable vlmcsd.service sudo systemctl start vlmcsd.service
检查服务状态
你可以通过以下命令确认服务是否正在正常运行:sudo systemctl status vlmcsd.service
如果看到
active (running)
的绿色字样,说明KMS服务已成功启动。
配置防火墙与客户端激活
最后一步是确保服务器的防火墙允许来自客户端的KMS请求,KMS服务使用TCP协议的1688端口。
对于 firewalld
(CentOS 7及以上版本默认):
sudo firewall-cmd --permanent --add-port=1688/tcp sudo firewall-cmd --reload
对于 iptables
:
sudo iptables -A INPUT -p tcp --dport 1688 -j ACCEPT sudo service iptables save
至此,CentOS上的迷你KMS服务器已全部搭建完成,你可以在局域网内的Windows或Office客户端上进行激活了。
以Windows客户端为例,需以管理员身份打开命令提示符(CMD),执行以下命令(将 <your_server_ip>
替换为你的CentOS服务器的IP地址):
slmgr.vbs /skms <your_server_ip> slmgr.vbs /ato
客户端需要安装对应版本的批量授权版(VL)镜像,并使用GVLK(通用批量许可密钥)进行激活,这些密钥是公开的,微软官方提供,用于指定产品版本并指向KMS服务器。
相关问答FAQs
问题1:为什么我的客户端无法连接到KMS服务器,激活总是失败?
解答: 这个问题通常由几个原因导致,请检查CentOS服务器上的防火墙是否确实开放了TCP 1688端口,确认客户端与服务器之间的网络是否通畅,可以使用 ping <your_server_ip>
命令测试,在服务器上运行 sudo systemctl status vlmcsd.service
确保KMS服务本身处于 active (running)
状态,请确保你使用的是批量授权版(VL)的Windows或Office,并且输入了正确的GVLK密钥,因为零售版是无法通过KMS激活的。
问题2:KMS激活是永久性的吗?我需要多久重新激活一次?
解答: KMS激活不是永久性的,它有一个180天的激活有效期,为了维持激活状态,客户端计算机必须至少每7天连接一次KMS服务器进行续订,只要客户端能在此周期内成功联系到KMS服务器,激活有效期就会自动重置为新的180天,如果一台计算机超过180天没有联系KMS服务器,它就会进入宽限期,并最终变为未激活状态,这种机制确保了只有组织内网中的计算机才能保持激活状态。
【版权声明】:本站所有内容均来自网络,若无意侵犯到您的权利,请及时与我们联系将尽快删除相关内容!
发表回复