快速部署的KMS 服务
支持Windows与Office全系列激活
快速部署,仅需一句命令即可使用
内置各版本KMS密钥,无需自行查询
网页端、命令行下快速检索密钥与说明
API接口,检查其他KMS服务器工作状态
以 kms.343.re 为例,在成功部署以后:
在需要KMS服务的地方,填入 kms.343.re 即可激活;
可通过网页或命令行curl获取激活密钥:
# 输出操作说明
shell> curl kms.343.re
# 输出Windows的KMS密钥
shell> curl kms.343.re/win
# 输出Windows Server的KMS密钥
shell> curl kms.343.re/win-server
# 输出Office激活命令
shell> curl kms.343.re/office
# 端口号可不填,默认为1688
shell> curl kms.343.re/check/kms.dnomd343.top:1688
KMS Server: kms.dnomd343.top (1688) -> available
如果您对Linux及容器较为熟悉,可以直接参考以下命令部署;若接触较少,建议阅读后文的详细部署流程
开启完整服务,1688 端口用于KMS激活,1689 端口用于HTTP访问(反向代理):
docker run -d --restart=always --network host dnomd343/kms-server
# 或使用bridge网络
docker run -d --restart=always -p 1688-1689:1688-1689 dnomd343/kms-server
仅开启KMS服务:
docker run -d --restart=always --network host dnomd343/kms-server --disable-http
# 或使用环境变量指定
docker run -d --restart=always --network host --env DISABLE_HTTP=TRUE dnomd343/kms-server
开启DEBUG模式:
docker run -d --restart=always --network host dnomd343/kms-server --debug
# 或使用环境变量指定
docker run -d --restart=always --network host --env DEBUG=TRUE dnomd343/kms-server
使用自定义端口:
docker run -d --restart=always --network host dnomd343/kms-server --kms-port 11688 --http-port 23333
# 或使用环境变量指定
docker run -d --restart=always --network host --env KMS_PORT=11688 --env HTTP_PORT=23333 dnomd343/kms-server
服务器
1688/tcp端口接受外网KMS激活请求,务必检查是否被防火墙拦截。
如果开启了 ufw 防火墙服务,使用以下命令放行:
shell> ufw allow 1688/tcp
shell> ufw status
如果开启了 firewalld 防火墙服务,使用以下命令放行:
shell> firewall-cmd --zone=public --add-port=1688/tcp --permanent
shell> firewall-cmd --reload
shell> firewall-cmd --list-ports
部分云服务商可能会在网页端控制台提供防火墙服务,请在对应页面开放 1688/tcp 端口。
shell> docker --version
···Docker版本信息···
若上述命令未输出版本信息,使用以下命令安装:
shell> sudo curl https://get.docker.com | bash
··· Docker安装信息 ···
本项目基于Docker构建,在Docker Hub或Github Package可以查看已构建的各版本镜像。
kms-server 同时发布在多个镜像源上(国内网络可使用阿里云仓库加速):
Docker Hub :dnomd343/kms-server
Github Package :ghcr.io/dnomd343/kms-server
阿里云镜像 :registry.cn-shenzhen.aliyuncs.com/dnomd343/kms-server
下述命令中,容器路径可替换为上述其他源
使用以下命令启动KMS服务:
shell> docker run -d --restart=always --network host dnomd343/kms-server
容器使用
1688/tcp与1689/tcp端口,前者用于KMS激活,后者为HTTP服务
容器启动时,添加
--kms-port xxx与--http-port xxx选项可修改以上端口
若仅需KMS激活功能,无需执行后续步骤,本步完成后即可正常使用;同时,建议添加 --disable-http 选项关闭内部HTTP服务,以减少多余的性能占用。
这一步用于配置反向代理,对外暴露kms-server的HTTP服务
将用于KMS服务的域名DNS解析到当前服务器,配置反向代理到本机 1689/tcp 端口,以Nginx为例:
# 进入nginx配置目录
shell> cd /etc/nginx/conf.d
# 添加反向代理配置
shell> vim kms.conf
配置文件如下,按备注修改域名与证书:
…
重启Nginx服务
shell> nginx -s reload
访问KMS服务域名,页面正常显示即反向代理成功。
检查部署的KMS服务器是否正常,例如检测新搭建的服务器 kms.dnomd343.top ,执行以下命令:
shell> curl kms.343.re/check/kms.dnomd343.top
KMS Server: kms.dnomd343.top (1688) -> available
输出 available 即工作正常,若失败请检查防火墙是否屏蔽1688端口。
--debug :进入DEBUG模式,输出调试日志
--kms-port :指定KMS激活端口,默认值为 1688
--http-port :指定HTTP服务端口,默认值为 1689
--disable-http :禁用HTTP服务,默认值为 false
-v 或 --version :显示版本信息并退出
-h 或 --help :显示帮助信息并退出
DEBUG :值为 true 时,进入DEBUG模式
KMS_PORT :指定KMS激活端口,默认值为 1688
HTTP_PORT :指定HTTP服务端口,默认值为 1689
DISABLE_HTTP :值为 true 时,禁用HTTP服务
kms-server 预留了以下JSON接口,用于输出内置的KMS密钥。
/json:输出全部KMS密钥;
/win/json:输出各版本Windows的KMS密钥;
/win-server/json:输出各版本Windows Server的KMS密钥;
kms-server 内置了检测其他KMS服务器是否可用的功能,接口位于 /check 下,使用以下参数:
host:目标服务器IPv4、IPv6地址或域名
port:目标服务端口,可选,默认值为 1688
shell> curl -sL "https://kms.343.re/check?host=8.210.148.24" | jq .
{
"success": true,
"available": true,
"host": "8.210.148.24",
"port": 1688,
"message": "kms server available"
}
shell> curl -sL "https://kms.343.re/check?host=kms.dnomd343.top&port=8861" | jq .
{
"success": true,
"available": false,
"host": "kms.dnomd343.top",
"port": 8861,
"message": "kms server connect failed"
}
本地构建
shell> git clone https://github.com/dnomd343/kms-server.git
shell> cd ./kms-server/
shell> docker build -t kms-server .
交叉构建
shell> docker buildx build -t dnomd343/kms-server --platform="linux/amd64,linux/arm64,linux/386,linux/arm/v7" https://github.com/dnomd343/kms-server.git --push
MIT ©2021 @dnomd343
暂无开放 Issues,或尚未同步最近议题。