首页 > Linux, OpenWrt > OpenWrt路由器模拟KMS Server

OpenWrt路由器模拟KMS Server

2015年2月1日 LTNS     访问次数 239 发表评论 阅读评论

曾经按照 参考文章1 在刷了 Tomato固件 的路由器上安装过模拟KMS服务器,实现了局域网内(或者 Internet网)激活 Windows、Office系列的功能,现继续在刷了 OpenWrt固件 的路由器上安装。

这个非win平台 Emulated KMS Server 的原作者页面
http://forums.mydigitallife.info/threads/50234-Emulated-KMS-Servers-on-non-Windows-platforms
其中提及在第二页还有一个他人制作的 Python版,接下来分别介绍两个版本的安装方法。

 
方法一:安装Python版

在原作者页面里下载压缩包文件 py-kms_2014-03-21T232943Z.zip,校验信息如下
Size: 40220 bytes
MD5: FF59BA085963B3EAC602560CD31D2E96
SHA1: CC16AFBF8CA2E6906A70E5BD4F2F2F1639100496

通过 Putty 登录路由器(OpenWrt的初始登录密码为空,所以先要在 System > Administration 界面设置一个密码,然后才能使用 ssh方式登录),安装 Python等软件

opkg update   #更新安装源
opkg install python pyopenssl libopenssl python-openssl python-sqlite3 libsqlite3
mkdir /etc/kms   #新建目录

注:手上的无线路由器是 Netgear WNDR4300,OpenWrt官方固件没有用足 128M Nand Flash,所以刷了 这里 某网友编译的 OpenWrt Barrier Breaker 14.07固件,已集成的 libopenssllibsqlite3 这两个软件包就不需要再安装了

解压下载的 py-kms_2014-03-21T232943Z.zip,然后把压缩包内的所有文件通过 WinSCP 上传到路由器的 /etc/kms 目录下面,

在路由器上启动 KMS Server

python /etc/kms/server.py 0.0.0.0 1688 &

注:可把默认的端口号 1688 改成自定义的

还需要把上面的这行命令添加到 System > Startup 界面的 Local Startup框里面(相当于添加到 /etc/rc.local 文件里),以实现路由器开机时 KMS Server自启动。

 
方法二:安装已编译版

下载压缩包文件 vlmcsd-svn667-2015-01-30-Hotbird64.7z
Size: 5922250 bytes
MD5: 7E187930F2D2CAE583409909DA1BB6CB
SHA1: 91D364D7FB04C6165F86233EAC7E47CB584A409C

从压缩包里解压 vlmcsd-mips32r2-openwrt-atheros-ar7xxx-ar9xxx-uclibc 或者 vlmcsd-mips32r2-openwrt-atheros-ar7xxx-ar9xxx-uclibc-static 文件(仅针对刷了前述 BB 14.07固件的 wndr4300而言,其他型号的路由器请根据自身的硬件选择相应的文件),改名为 vlmcsd

在路由器上新建一个目录

mkdir /etc/kms

通过 WinSCP 新建一个文件 /etc/kms/kmsserver.ini,内容如下

55c92734-d682-4d71-983e-d6ec3f16059f = 05426-00168-152-564055-03-1049-9200.0000-0912013
59a52881-a989-479d-af46-f275c6370663 = 55041-00096-200-026043-03-1049-7601.0000-0162013
0ff1ce15-a989-479d-af46-f275c6370663 = 55041-00096-200-625305-03-1049-7601.0000-0572013

 
或者直接从本站下载 kmsserver.ini,连同前面的 vlmcsd 文件一起上传至路由器的 /etc/kms 目录下。

修改 vlmcsd 文件的可执行属性,然后启动 KMS Server

chmod +x /etc/kms/vlmcsd
/etc/kms/vlmcsd -i /etc/kms/kmsserver.ini -p /etc/kms/kmsserver.pid -l syslog -L 0.0.0.0:1688

同样需要把该行命令添加到 /etc/rc.local 文件中。

 
至此就完成了服务端的设置,现在就可以在局域网内的 Windows电脑上进行激活了(每180天内至少一次),无需再安装额外的软件,但是 Windows、Office必须是 VL版。

可以先从参考文章1或3下载 KMS Client测试工具,或者跳过测试,直接在 CMD窗口里运行如下激活命令。

# 激活 Windows,比如路由器ip为192.168.1.1
cd C:\Windows\System32
slmgr /skms 192.168.1.1:1688
slmgr /ato
slmgr /xpr #检查激活状态

# 激活 Office,以 Office 2013 x64为例
cd C:\Program Files\Microsoft Office\Office15
# cscript ospp.vbs /setprt:1688 #之前如果服务端设置了自定义端口号,则需运行本行命令
cscript ospp.vbs /sethst:192.168.1.1
cscript ospp.vbs /act
cscript ospp.vbs /dstatus #检查激活状态

如果还要对外网开放 KMS Server,则需要在路由器的自定义防火墙里添加一条规则

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

 
重启路由器后,在外网的 Windows电脑上运行同样的激活命令,只是需要把 192.168.1.1 替换成路由器的公网ip或域名。

 
 
参考文章
1. http://www.right.com.cn/forum/thread-141445-1-3.html
2. http://blog.sina.com.cn/s/blog_142cc4ab30102v7y6.html
3. http://www.now163.net/2014/12/871.html

 

  1. Niclau
    2015年8月1日13:16 | #1

    不错,已成功。但有个想法,WINDOWS默认的KMS服务器IP是多少?可否通过IPTABLES把那个IP的访问重定向到192.168.1.1,这样是否就不用通过命令改设置了?

11 + 9 = (必填)