1.主机名请从默认的RaspberryPi 改为 test.com
sudo nano /etc/hostname
请将文件中的RaspberryPi改为 test.com
2.将树莓派的ip地址改为静态,此例中为172.16.0.68,网关出口为172.16.0.1
sudo nano /etc/dhcpcd.conf
在该文件的最末加上如下设定:
interface eth0static ip_address=172.16.0.68/24static routers=172.16.0.1static domain_name_servers=114.114.114.114 8.8.8.8
3.将主机本身解析到172.16.0.68
sudo nano /etc/hosts
注释掉关于RaspberryPi的记录,增加如下一行:
172.16.0.68 ????test.com
4.重启pi
5.本例中在windows系统中使用putty提供的pscp.exe上传相关文件。
一、建立kms服务器
在树莓派3上建立kms服务器有很多种做法,这里介绍一种比较简单的,一种复杂的。
请在(一)和(二)之中任择其一!
(一)使用已经编辑好的kms服务器文件。
该文件由Hotbird64大神编写。
下载地址为https://forums.mydigitallife.net/threads/emulated-kms-servers-on-non-windows-platforms.50234/
要下载需注册。
下载后的文件解包,我们需要的文件为:
\binaries\Linux\arm\little-endian\glibc\vlmcsd-armv6hf-Raspberry-glibc
将文件改名为:vlmcsdpi
1、新建KMS文件夹
mkdir /home/pi/kms
2、上传kms文件
在win下,启动cmd或者powershell,进入pscp.exe所在文件夹,我将pscp.exe和vlmcsdpi都放在e:\putty下面了。
cd e:\puttypscp e:\putty\vlmcsdpi pi@172.16.0.68:/home/pi/kms/
输入pi的密码后上传成功。
3、赋予执行权限
chmod 777 /home/pi/kms/vlmcsdpi
4、设定开机自启动
sudo nano /etc/rc.local
在exit 0之前加入:
/home/pi/kms/vlmcsdpi -l /var/log/vlmcsd.log > /dev/null 2>&1
5、启动服务:
/home/pi/kms/vlmcsdpi -l /var/log/vlmcsd.log
日志文件就是:/var/log/vlmcsd.log
6、停止服务:
查找进程号,杀掉就可以
sudo ps -ef | grep vlmcsdpisudo kill -s 9 进程号
这个方法是搭建快速,升级方便。如果Hotbird64大神出了新版,升级只要将新版文件替换进去就可以。
(二)使用py-kms搭建kms服务器
1.安装git
sudo apt-get install git
2.在pi的家目录中下载py-kms:
git clone https://github.com/myanaloglife/py-kms
因为pi中自带了python,所以下载完以后就可以进行初步测试:
cd py-kms ?python server.py
看到
TCP server listening at 0.0.0.0 on port 1688.
的提示为成功。按Ctrl+c退出。
3.使用supervisor确保kms服务长期运行:
现将py-kms放入/usr/local/:
sudo cp -r py-kms /usr/local/
安装supervisor:
sudo apt-get install python-setuptoolssudo easy_install supervisor
写入配置文件
mv /etc/supervisord.conf /etc/supervisord.conf.baksudo nano /etc/supervisord.conf
内容为:
;/etc/supervisord.conf[unix_http_server]file = /var/run/supervisord.sockchmod = 0777chown= root:root[inet_http_server]port=*:9001username = pipassword = yourpassword[supervisorctl]; 必须和‘unix_http_server‘里面的设定匹配serverurl = unix:///var/run/supervisord.sock[supervisord]logfile=/var/log/supervisord.log ??????????????????????????????; (main log file;default $CWD/supervisord.log)logfile_maxbytes=50MB ?????????????????????????????????????????; (max main logfile bytes b4 rotation;default 50MB)logfile_backups=10 ????????????????????????????????????????????; (num of main logfile rotation backups;default 10)loglevel=info ?????????????????????????????????????????????????; (log level;default info; others: debug,warn,trace)pidfile=/var/run/supervisord.pid ??????????????????????????????; (supervisord pidfile;default supervisord.pid)nodaemon=true ?????????????????????????????????????????????????; (start in foreground if true;default false)minfds=1024 ???????????????????????????????????????????????????; (min. avail startup file descriptors;default 1024)minprocs=200 ??????????????????????????????????????????????????; (min. avail process descriptors;default 200)user=root ?????????????????????????????????????????????????????; (default is current user, required if root)childlogdir=/var/log/ ?????????????????????????????????????????; (‘AUTO‘ child log dir, default $TEMP)[rpcinterface:supervisor]supervisor.rpcinterface_factory = supervisor.rpcinterface:make_main_rpcinterface[program:pykms] ?command=python /usr/local/py-kms/server.py ?autorestart=true ?user=root ?
写入配置文件后,执行:
sudo chmod 777 /var/run ?sudo chmod 777 /var/log ?sudo touch /var/run/supervisor.socksudo chmod 777 /var/run/supervisor.sock
启动supervisor:
sudo supervisor
4.使supervisor开机启动:
sudo nano /etc/rc.local
在exit 0之前加入:
sudo supervisor
重启pi后,查看进程是否正常启动:
supervisorctl
正常的情况下,server.py应该是running。
使用quit退出。
5.对kms服务器进行测试:
cd ?/usr/local/py-kmspython client.py -v 172.16.0.68
测试结果为:
Connecting to 172.16.0.68 on port 1688... ?Connection successful! ?Sending RPC bind request... ?RPC bind acknowledged.
则为成功。
二、使局域网中的机器可以自行激活
在开始此步之前,请确保:局域网中所有其他DHCP服务器均已经关闭!
1.建立/etc/resolv.dnsmasq.conf文件
sudo cp ?/etc/resolv.conf /etc/resolv.dnsmasq.confsudo nano /etc/resolv.dnsmasq.conf
删除文件中原有内容,新建内容如下:
nameserver 114.114.114.114nameserver 8.8.8.8
2.安装用于测试DNS的软件
sudo apt-get install dnsutils
3.安装轻型dns转发服务器、dhcp服务器
sudo apt-get install ?dnsmasq
4.配置dnsmasq:
sudo mv /etc/dnsmasq.conf /etc/dnsmasq.conf.baksudo nano /etc/dnsmasq.conf
配置内容如下:
#指定上游服务器地址,由/etc/resolv.dnsmasq.conf文件内容决定resolv-file=/etc/resolv.dnsmasq.conf# 严格按照resolv.dnsmasq.conf中的顺序进行查找strict-order#监听地址listen-address=172.16.0.68,127.0.0.1#地址池设定dhcp-range=172.16.0.100,172.16.0.200,255.255.255.0,6h#设定局域网后缀名,重要,请务必设置domain=test.com#指定网关(路由出口)dhcp-option=3,172.16.0.1#dhcp-option=option:router,172.16.0.1#指定地址分发时分配给客户端的DNS,除了本地dns服务器地址,为保险起见,加了其他dns地址dhcp-option=option:dns-server,172.16.0.68,114.114.114.114#server=114.114.114.114#通常用于对于访问不存在的域名,禁止其跳转到运营商的广告站点。bogus-nxdomain=114.114.114.114#设定kms服务器响应srv-host=_vlmcs._tcp,test.com,1688,0,100#开启日志记录,指定日志文件路径及文件名log-dhcplog-facility=/var/log/dnsmasq.log
重启dns服务:
sudo service dnsmasq restart
5.测试命令如下:(请在windows系统中测试,请务必保证网络中其他dhcp服务器已经关闭,Windows系统开启了自动获得地址)
在win下,启动cmd或者powershell
ipconfig ?/renewnslookup -type=srv _vlmcs._tcpnslookup -q=srv _vlmcs._tcp.test.com
下面2个命令都必须反馈相同的结果:
服务器: ?test.comAddress: ?172.16.0.68_vlmcs._tcp.test.com ?SRV service location: ?????????priority ??????= 0 ?????????weight ????????= 100 ?????????port ??????????= 1688 ?????????svr hostname ??= test.comtest.com ?????internet address = 172.16.0.68
在树莓派3(RaspberryPi 3B)上实现kms自动激活
原文地址:http://blog.51cto.com/3258791/2092687