小米路由器3实现锐捷认证[免刷固件]
小米路由器3实现锐捷认证

小米路由器3实现锐捷认证,寝室校园的稳定wifi

[TOC]

前言(可跳过)

博主在4月份写过一篇刷路由固件的博,当时由于硬件限制导致想法破产。路由器刷固件 | MERCURY-MW305R | 路由器实现锐捷认证

今年小米年终大促的时候入手了一个小米路由器3
269
手动滑稽

网传小米路由器mini是可以实现刷固件,但是小米路由器3刷固件的资料非常少。
两个路由主要参数区别如下:
507

可以看到M3的ROM是SLC,Mini的ROM是SPI,这个就导致了M3路由固件的难以刷。
目前搜到M3成功刷机的案例是一俄国论坛的大神自己封装的脚本刷成了华硕RT-N56U的固件。

原博客:Прошивка Xiaomi Mi WiFi router 3 в ASUS RT-N56U скриптом Vmware Padavan Prometheus
恩山博客:小米路由器3刷华硕RT-N56U固件

本篇不在商讨小米路由器3刷固件(刷机需谨慎),保持原生小米路由器系统的同时实现锐捷认证。

所需技术(你需要了解的原理)

SSH(安全外壳协议)

SSH 是目前较可靠,专为远程登录会话和其他网络服务提供安全性的协议。利用 SSH 协议可以有效防止远程管理过程中的信息泄露问题。SSH最初是UNIX系统上的一个程序,后来又迅速扩展到其他操作平台。SSH在正确使用时可弥补网络中的漏洞。SSH客户端适用于多种平台。几乎所有UNIX平台—包括HP-UX、Linux、AIX、Solaris、Digital UNIX、Irix,以及其他平台,都可运行SSH。(来自百度)

WinSCP

WinSCP是一个Windows环境下使用SSH的开源图形化SFTP客户端。同时支持SCP协议。它的主要功能就是在本地与远程计算机间安全的复制文件。.winscp也可以链接其他系统,比如linux系统(来自百度)1498

putty

远程管理Linux系统。
1710

mentohust

具体百度,这个知道刷固件的都清楚。
可以理解为linux上的锐捷认证。
mentohust命令参数:
1962

路由器基本原理

路由上ROM里其实是个linux系统,固件就是升级系统。

思路

锐捷认证三大难点:

(1)静态ip
(2)口令认证
(3)绑定单网卡

这三个限制第一限制了传统路由的设置,限制了主机的一些功能(如主机无线网卡、虚拟机网络配置等)。

核心思想

所以为了突破这些限制,主要思路就是

用路由器代替电脑进行锐捷认证

实际是网络认证就是看一个设备的mac跟ip和口令,路由完全可以替代一个pc设备进行认证。

难点

那么传统路由器LAN口的三种上网方式:
(1)PPPoe拨号上网
(2)DHCP
(3)静态ip
但是锐捷需要两项同时满足条件。

解决方法

刷固件是一种,将一些功能直接继承到路由系统,即管理界面,直接设置认证就行,但是这个要求对路由构造原理还有linux机制非常清楚才可以搞定,而且路由刷成砖的几率高,详情参考前言的博客。

在路由器原生系统中写入mentohust,将路由器的网络物理信息设置成本机的网络物理信息,在pc机上远程连接到路由器linux系统使用mentohust认证即可。

步骤

升级小米路由器3开发版官方固件

声明下目前小米3开发版固件到miwifi_r3_firmware_65c8a_2.21.166.bin
但是SSH权限开启的目前确定的开发版本是miwifi_r3_all_55ac7_2.11.20.bin

官方下载地址MiWiFi下载

设置路由

初始化路由
登录路由后台
调节路由LAN口上网方式为静态ip,填写校园网信息
设置本机ip自动获取

开启SSH权限

用浏览器登陆小米路由器后台
地址栏一般是这样:

1
http://192.168.31.1/cgi-bin/luci/;stok=[你的stok]/web/home#router

改成如下并回车:

1
http://192.168.31.1/cgi-bin/luci/;stok=[你的stok]/api/xqnetwork/set_wifi_ap?ssid=tianbao&encryption=NONE&enctype=NONE&channel=1%3Bnvram%20set%20ssh%5Fen%3D1%3B%20nvram%20commit

继续:

1
http://192.168.31.1/cgi-bin/luci/;stok=[你的stok]/api/xqnetwork/set_wifi_ap?ssid=tianbao&encryption=NONE&enctype=NONE&channel=1%3Bsed%20%2Di%20%22%3Ax%3AN%3As%2Fif%20%5C%5B%2E%2A%5C%3B%20then%5Cn%2E%2Areturn%200%5Cn%2E%2Afi%2F%23tb%2F%3Bb%20x%22%20%2Fetc%2Finit.d%2Fdropbear

继续:

1
http://192.168.31.1/cgi-bin/luci/;stok=[你的stok]/api/xqnetwork/set_wifi_ap?ssid=tianbao&encryption=NONE&enctype=NONE&channel=1%3B%2Fetc%2Finit.d%2Fdropbear%20start

继续:

1
http://192.168.31.1/cgi-bin/luci/;stok=[你的stok]/api/xqsystem/set_name_password?oldPwd=[你当前的后台管理密码]&newPwd=[新的后台管理密码]

每次执行代码请等待执行完成后再进行下一次操作

前三次代码执行后出现

1
“{"msg":"未能连接到指定WiFi(Probe timeout)","code":1616}”

最后一次代码出现

1
{"code":0}”

代表获取SSH成功

新的后台管理密码同样为ssh远程的root用户密码

写入mentohust

使用WinSCP登入小米的linux
5786
将mentohust上传至/etc目录下
6002

设置命令进行认证

打开putty登入小米路由器linux系统
用户名root,密码为新设置的密码
6240

输入命令进行登录即可

获取权限命令

1
chmod a+x /etc/mentohust

登录命令

1
/etc/mentohust -u[用户名] -p[密码] -neth0.2 -i[ip] -g[网关] -m[子网掩码] -s[DNS] -b1 -w

这个时候其实就能上网了

路由设置开机自动认证

WinSCP写入sh文件用于保存命令
内容即为登录命令

putty获取权限命令

1
chmod a+x /etc/mentohust.sh

使用WinSCP工具打开etc目录下的profile文件(鼠标双击就行),在末尾加入下面的代码保存、关闭。

1
/etc/mentohust.sh

7733

使用WinSCP工具打开etc目录下的rc.local文件,在exit 0前面加入下面四行代码。你上面参数怎么设置的,在这里就怎么设置,你上面的参数改了,这里一定改过来!

1
2
3
4
5
6
7
chmod a+x /etc/mentohust

chmod a+x /etc/mentohust.sh

/etc/mentohust -u[用户名] -p[密码] -neth0.2 -i[ip] -g[网关] -m[子网掩码] -s[DNS] -b1 -w

/etc/mentohust.sh

8773

路由每次开机就可以自动认证了

细节强调

本机网络信息即为校园网注册信息,包括:ip地址、子网掩码、默认网关、首先DNS地址、备用DNS地址、MAC地址
(1)路由器设置为静态ip,mac地址设置为本机mac。

在windows 的cmd窗口输入

1
ipconfig /all

可以显示本机的网络配置

(2)本机ip设置为自动获取。
(3)传统路由器后台管理地址为192.168.1.1,小米路由器的后台管理地址为192.168.31.1。
(4)所需工具全部在github上,地址:所需工具
(5)密码长度过短不能通过验证,导致无法使用putty或WinSCP。
(6)输入密码认证的时候校园网网线要在Lan口上插入。

结尾

保证原生的小米路由,校园网连接。
9624

文章作者: HibisciDai
文章链接: http://hibiscidai.com/2017/12/22/2017-12-22-小米路由器3实现锐捷认证/
版权声明: 本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 HibisciDai
好用、实惠、稳定的梯子,点击这里