1. 程式人生 > >小米路由器3實現銳捷認證[免刷韌體]

小米路由器3實現銳捷認證[免刷韌體]

前言(可跳過)

今年小米年終大促的時候入手了一個小米路由器3
訂單
手動滑稽

網傳小米路由器mini是可以實現刷韌體,但是小米路由器3刷韌體的資料非常少。
兩個路由主要引數區別如下:
小米路由器3-小米路由器mini-硬體對比

可以看到M3的ROM是SLC,Mini的ROM是SPI,這個就導致了M3路由韌體的難以刷。
目前搜到M3成功刷機的案例是一俄國論壇的大神自己封裝的指令碼刷成了華碩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系統(來自百度)WinSCP登入介面

putty

遠端管理Linux系統。
putty登入介面

mentohust

具體百度,這個知道刷韌體的都清楚。
可以理解為linux上的銳捷認證。
mentohust命令引數:
mentohust命令引數

路由器基本原理

路由上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

設定路由

初始化路由
登入路由後臺
調節路由LAN口上網方式為靜態ip,填寫校園網資訊
設定本機ip自動獲取

開啟SSH許可權

用瀏覽器登陸小米路由器後臺
位址列一般是這樣:

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

改成如下並回車:

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

繼續:

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

繼續:

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

繼續:

http://192.168.31.1/cgi-bin/luci/;stok=[你的stok]/api/xqsystem/set_name_password?oldPwd=[你當前的後臺管理密碼]&newPwd=[新的後臺管理密碼]

每次執行程式碼請等待執行完成後再進行下一次操作

前三次程式碼執行後出現

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

最後一次程式碼出現

{"code":0}”

代表獲取SSH成功

新的後臺管理密碼同樣為ssh遠端的root使用者密碼

寫入mentohust

使用WinSCP登入小米的linux
使用WinSCP登入小米的linux
將mentohust上傳至/etc目錄下
這裡寫圖片描述

設定命令進行認證

開啟putty登入小米路由器linux系統
使用者名稱root,密碼為新設定的密碼
登入putty

輸入命令進行登入即可

獲取許可權命令

chmod a+x /etc/mentohust

登入命令

/etc/mentohust -u[使用者名稱] -p[密碼] -neth0.2 -i[ip] -g[閘道器] -m[子網掩碼] -s[DNS] -b1 -w

這個時候其實就能上網了

路由設定開機自動認證

WinSCP寫入sh檔案用於儲存命令
內容即為登入命令

putty獲取許可權命令

chmod a+x /etc/mentohust.sh

使用WinSCP工具開啟etc目錄下的profile檔案(滑鼠雙擊就行),在末尾加入下面的程式碼儲存、關閉。

/etc/mentohust.sh

寫入profile檔案

使用WinSCP工具開啟etc目錄下的rc.local檔案,在exit 0前面加入下面四行程式碼。你上面引數怎麼設定的,在這裡就怎麼設定,你上面的引數改了,這裡一定改過來!

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

寫入rc.local

路由每次開機就可以自動認證了

細節強調

本機網路資訊即為校園網註冊資訊,包括:ip地址、子網掩碼、預設閘道器、首先DNS地址、備用DNS地址、MAC地址
(1)路由器設定為靜態ip,mac地址設定為本機mac。

在windows 的cmd視窗輸入

ipconfig /all

可以顯示本機的網路配置

(2)本機ip設定為自動獲取。
(3)傳統路由器後臺管理地址為192.168.1.1,小米路由器的後臺管理地址為192.168.31.1。
(4)所需工具全部在github上,地址:所需工具
(5)密碼長度過短不能通過驗證,導致無法使用putty或WinSCP。
(6)輸入密碼認證的時候校園網網線要在Lan口上插入。

結尾

保證原生的小米路由,校園網連線。
測速