准备 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

结果如图:

在 CentOS 中部署 KMS 服务器(vlmcsd)的更多相关文章

  1. 在Ubuntu中搭建KMS服务器

    介绍 基于vlmcsd搭建的KMS服务器. 根据github上的说明,这个工具是用C写的,没有任何依赖,可以直接运行.而且它横跨几乎现在所有的系统平台,如Android, FreeBSD, Solar ...

  2. Centos中部署NetCore项目(二)

    前言 在centos中部署程序,一般都不会是使用控制台进程直接启动,或者是后台运行.而是一些守护进程管理工具进行管理,例如supervisor. 部署Web相关程序,使用nginx是比较普遍的, 安装 ...

  3. 在centos中部署jenkins

    在centos中部署jenkins,需要的环境:安装jdk,Apache-tomcat 这两步我前面文章里已写,再次忽略 到官网下载最新的jenkins 我这里的是  jenkins.war 把该文件 ...

  4. 在Centos中部署redis运行状态图形化监控工具 — RedisLive

    写在前面 前两天看到张善友老师的一篇文章<先定个小目标, 使用C# 开发的千万级应用>,里面给出了一张腾讯OA基础服务中redis运行情况的一张监控图,然后想到自己的项目中前不久也上了re ...

  5. AWS EC2中部署Apache服务器(LAMP)

    关键词: 1.新建aws ec2实例 2.使用putty连接到aws ec2 实例(SSH协议) 3.使用filezilla连接到aws ec2实例(SFTP协议) 4.在aws ec2上部署apac ...

  6. Centos中部署NetCore项目(一)

    前言 本文是基于centos8,dotnetcore3.1. (为了服务器安全使用,程序部署最好不要直接root账号进行操作.) 如果使用sudo命令时候,提示用户不在sudoers文件中的解决方法. ...

  7. 如何在 CentOS 中设置 NTP 服务器

    网络时间协议(NTP)用来同步网络上不同主机的系统时间.你管理的所有主机都可以和一个指定的被称为 NTP 服务器的时间服务器同步它们的时间.而另一方面,一个 NTP 服务器会将它的时间和任意公共 NT ...

  8. 应用SVN(CentOS中搭建SVN服务器)

    简单介绍如何在虚拟机 CentOS 中,搭建 SVN 服务器. 软件版本信息 Vmware 10.0.0 build-1295980 CentOS 7.0-1406-x64 Java 1.7.0_67 ...

  9. .NetCore中的程序通过Docker在CentOS中部署

    基础说明 安装Docker过程就略过了 创建一个Asp.Net Core程序 启用Docker支持,会生成Dockerfile文件,接下来看下这个文件,当然不同的版本生成的具体可能不一致 FROM m ...

随机推荐

  1. 为Docker Desktop安装kubernet-dashboard

    在上一篇,在windows上,用最简方法(比其他的脚本法,提前拉取镜像简便太多了)安装好了docker desktop,并启用了内置的kubernetes. 这种安装方法实际上是在Hyper-v虚拟机 ...

  2. redhat 7.6 ssh 服务配置

    安装ssh yum install openssh 查看端口 netstat -ntpl netstat -ntpl | grep :22 启动和关闭 service sshd restart/sta ...

  3. 「CH6901」骑士放置

    「CH6901」骑士放置 传送门 将棋盘黑白染色,发现"日"字的两个顶点刚好一黑一白,构成一张二分图. 那么我们将黑点向源点连边,白点向汇点连边,不能同时选的一对黑.白点连边. 当 ...

  4. centos6.5安装图形操作界面

    yum -y install xorg-x11-fonts-Type1 #安装Xwindow yum -y groupinstall "X Window System" #安装GN ...

  5. STP 指定端口 根端口 区别和理解

    不多说,先上图,A为指定端口,B为非指定端口. 看本文的网友应该知道根端口和指定端口的选举,但是对指定端口和根端口的理解不清楚.这里我就略过选举过程,直接描述这两者的区别和存在的意义. 指定端口:转发 ...

  6. 一文解读SDN (转)

    一. 什么是SDN? SDN字面意思是软件定义网络,其试图摆脱硬件对网络架构的限制,这样便可以像升级.安装软件一样对网络进行修改,便于更多的APP(应用程序)能够快速部署到网络上. 如果把现有的网络看 ...

  7. MySQL定时任务event,储存过程(定时删除指定时间前90天指定表的数据)

    MySQL定时任务event,储存过程(定时删除指定时间前90天指定表的数据) 分类: MySql5.x2014-06-23 15:16 1266人阅读 评论(0) 收藏 举报 mysql数据库 &l ...

  8. Python 中的经典类新式类

    Python 中的经典类新式类 要知道经典类和新式类的区别,首先要掌握类的继承 类的继承的一个优点就是减少代码冗余 广度优先和深度优先,这主要是在多类继承的时候会使用到 经典类和新式类的主要区别就是类 ...

  9. 二十三、java连接oracle数据库操作:jdbc

    1.jdbc 1) 含义:JDBC是java语言连接数据库,Java Date Base Connectivity2) jdbc的本质:在编程时java程序会去连接不同的数据库,而每个数据库的底层的实 ...

  10. CF6

    A A 不解释 #include<bits/stdc++.h> using namespace std; namespace red{ inline int read() { int x= ...