• 奇技淫巧
  • Linux一键搭建KMS服务器为Windows和Office提供激活服务

Linux 快速搭建 KMS 激活服务器,让 PC 激活 Windows 和 Office 并自动续期,告别网上的来路不明的激活工具,防止意外中毒。

One key KMS

虽然目前已经有各种 PC 用的 KMS 激活程序,例如 KMSAuto 或者 KMS VL ALL 之类的,但是他们都会被
Windows Defender 或者普通的杀毒软件认为是病毒。

虽然你“相信”这些软件被报毒是很正常的,直接加入白名单了事,然而你确实不知道你从网上搜索下载的这些激活程序是不是真的经过别人的改造植入了病毒。

因此,我们可以利用自己的 Linux VPS 搭建 KMS 激活服务器给自己的 PC 使用,这样既安全无毒又不怕激活丢失。

如果你没有vps服务器,或者不愿意折腾,可以直接使用爱上程序员为大家提供的 KMS服务

一、搭建 KMS 服务

1. 下载脚本并运行,根据提示键入y开始安装

CentOS / Redhat / Fedora

  wget https://raw.githubusercontent.com/dakkidaze/one-key-kms/master/one-key-kms-centos.sh && chmod +x one-key-kms-centos.sh &&./one-key-kms-centos.sh

Debian / Ubuntu / Mint

  wget https://raw.githubusercontent.com/dakkidaze/one-key-kms/master/one-key-kms-debian.sh && chmod +x one-key-kms-debian.sh && ./one-key-kms-debian.sh

2. 下载配套脚本来控制启动/停止/重启等

  #下载脚本
  wget https://raw.githubusercontent.com/dakkidaze/one-key-kms/master/kms.sh && chmod +x kms.sh
  #启动 KMS 服务
  ./kms.sh start
  # 相关命令
  # start | stop | restart | status

3. 设置防火墙(如果需要)放行 1688 端口

iptables

  iptables -I INPUT -p tcp --dport 1688 -j ACCEPT

ufw

  ufw allow 1688

二、激活 Windows

再次提醒,只能激活 VL 版的系统

以管理员身份运行命令提示符或者 PowerShell,然后输入以下命令:

cd /d "%SystemRoot%\system32"
slmgr /skms 你的KMS服务端主机的IP或者域名
slmgr /ato
slmgr /xpr

成功的话你应该会看到这样的提示:

这样,每过 180 天,系统都会自动与你的 KMS 服务器通信来激活 Windows,只要到时候你的 KMS 服务器还在运行,Windows 就能继续激活

当然,你也可以随时通过 slmgr /skms 这条命令来更换你的 KMS 服务器地址

三、激活 Office

注意,只能激活 VL 版的Office
如果是零售版,Google一下有很多将零售版转换为 VL 版的方法和批处理脚本;如果你比较懒,也可以直接利用KMSAuto工具来转换

首先确定你的 Office 版本所对应的目录名称:

版本目录名称
2016Office16
2013Office15
2010Office14
  • 如果你的 Office 是 32 位的,那么目录就在
    C:\Program Files (x86)\Microsoft Office\目录名称
  • 如果是 64 位,那么在
    C:\Program Files\Microsoft Office\目录名称

接下来以管理员身份运行命令提示符或者PowerShell,然后输入以下命令:

#以 64 位的 Office2016 为例,进入 Office 目录
cd "C:\Program Files\Microsoft Office\Office16"
cscript ospp.vbs /sethst:你的KMS服务端主机的IP或者域名
cscript ospp.vbs /act

四、更多配置

开机自启

如果只是想简单的让 KMS 服务在 Linux 上开机自启,那么编辑 /etc/rc.local 文件,在exit 0(如果有)前面加上一句

#假设之前下载的那个 kms.sh 脚本位于 /root/kms.sh
/root/kms.sh start

然后保存即可

守护进程

也可以使用 systemd 来注册服务

创建 service 文件

vi /etc/systemd/system/kms.service

输入

[Unit]
Description=KMS Server By vlmcsd
After=network.target

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

[Install]
WantedBy=multi-user.target

然后就可以使用一下命令来管理了

# 启用开机自启
systemctl enable kms

# 运行服务
systemctl start kms

# 停止服务
systemctl stop kms

# 重启服务
systemctl restart kms

# 查看服务状态
systemctl status kms