Installing an Open Source KMS Server (Vlmcsd) on Linux
Prerequisite: Study up on the KMS technology; nearly all the necessary information can be found in the Microsoft KMS Volume Activation FAQ. See also a complete list of GVLK (Generic Volume License Keys) at the Microsoft Documentation Site. Finally, the legacy version of this document can be referenced here.
To run the KMS server in a docker container, see the next section.
Running the KMS server as a native process on Linux
Install the git
and gcc
packages using the package manager appropriate for the flavor of Linux being used (Ubuntu - apt, Redhat - yum).
Clone and install the vlmcsd package:
git clone https://github.com/Wind4/vlmcsd cd vlmcsd make
Change to the bin directory:
cd bin
Run the KMS server:
./vlmcsd
You will see the following message:
Connecting to 127.0.0.1:1688 ... successful Sending activation request (KMS V6) 1 of 1 -> 55041-00206-559-475403-03-1076-6002.0000-1482020 (3A1C049600B60076)
This indicates the KMS server has been successfully compiled and run.
If running a firewall on the server, ensure TCP/1688 is opened.
To run vlmcsd automatically, create a daemon and manage it with systemd:
cp vlmcs /usr/bin touch /etc/systemd/system/kms-script.service chmod 664 /etc/systemd/system/kms-script.service nano /etc/systemd/system/kms-script.service
Add the following service description to the new file:
[Unit] Description=MSFT KMS Server Emulator After=network.target After=network-online.target Wants=network-online.target [Service] Type=oneshot ExecStart=/usr/bin/vlmcsd RemainAfterExit=yes LimitNOFILE=65536 [Install] WantedBy=multi-user.target
Then run the KMS service and add it to startup:
systemctl daemon-reload systemctl start kms-script.service systemctl status kms-script.service systemctl enable kms-script.service
Running the KMS server in a docker container on Linux
Ensure docker is installed and running on the server
Execute the following commands:
sudo docker pull teddysun/kms:latest sudo docker run -d -p 1688:1688 --restart=always --name kms_server teddysun/kms /vlmcsd -D -d -t 3 -e -v -R172800 -A10080
Executing via a docker compose file:
services: kms: image: teddysun/kms:latest container_name: kms ports: - 1688:1688 restart: always
Activating Windows via the KMS Server
To activate Windows manually, set the GVLK for your Windows version, the IP address of your KMS activation host, and run the activation command. The following commands are used (for example, for Windows Server 2022 Standard):
slmgr.vbs -ipk VDYBN-27WPP-V4HQT-9VMD4-VMK7H
slmgr.vbs -skms 192.168.14.147
slmgr.vbs -ato
After you run the last command, you will see the message: Product activated successfully. This means that your Windows copy has been successfully activated.
You can check the Windows activation status using the command:
slmgr.vbs -dlv