小米路由器3的設定與測試
如何將取得 SSH 登入權限、功能安裝 (opkg) 以及一些無線網路功能的測試
取得 SSH 登入權限
小米路由器原生不支援 SSH 登入,官方的作法是先和小米帳號綁定之後,給予一組密碼並重刷作業系統,以取得 SSH 的登入權限。如果想要照做的話,可以參考: http://tw.miui.com/thread-13641-1-1.html 。不過,我一開始在綁定時就一直無法成功,因此,就使用後門取得登入的權限,原始文章在: https://wiki.openwrt.org/toh/xiaomi/mir3 以及 http://www.right.com.cn/forum/thread-185797-1-1.html。此後門的想法主要是利用開發版的 ROM 支援 SSH,並透過 API 的方式賦予登入的密碼,操作過程如下:
(1) 下載並將小米路由器3刷成開發版的 ROM,更新韌體方法如下圖。 下載地址: http://bigota.miwifi.com/xiaoqiang/rom/r3/miwifi_r3_all_55ac7_2.11.20.bin
(2) 透過 API 對小米路由器3進行設定,這裡有一個每個機器專屬的 token 要視情況修改。在登入小米路由器3後,我們可以看到網址列大概長得像:
其中,40fce86d28a6eedecfc7e72f28c63921就是該機器的 token。取得 token 後,就可以透過後台的 API 進行進一步的修改。輸入下列指令:
由於指令並沒有加密,我們大概可以看出來第一行和 nvram 中的 SSH 設定相關,第二行則是透過 sed 來更改/etc/init.d/dropbear的數值,第三行啟動 dropbear,也就是 SSH 伺服器,最後一行則是更改密碼,其中 [old passwd] 是原本當入網頁的密碼, [new passwd] 則是 SSH 的設定密碼。
當執行前三行時,網頁會顯示: {"msg":"未能连接到指定WiFi(Probe timeout)","code":1616},而執行最後一行則顯示: {"code":0}。之後,只要重新開機就可以了。
功能安裝 (opkg)
由於小米路由器3本身不支援 opkg 的軟體安裝器,在添加 OpenWRT 功能時,很不方便,因此,我們參考此篇的教學 (https://www.ywlib.com/archives/102.html),讓小米路由器3能夠擁有 opkg 的功能。
(1) 從其他支援 opkg 的裝置下,取出 okpg,並複製到/data之下。在此,我是直接下載該網站的資源,如附檔所示。
(2) 修改/etc/opkg.conf,替換為以下內容:
(3) 更改環境變數 (/etc/profile),首先,先改變 PATH 的變數,如下:
並在該文件下方加入一行新的設定:
(4) 重新開機,或是執行:
(5) 此時,opkg 就可以使用了。
(6) 假如安裝文件有缺少,也可以直接下載後,透過 opkg 來安裝,下載網址為: https://archive.openwrt.org/barrier_breaker/14.07/ramips/mt7620a/packages/base/
同時,我們也可以從這份文件中發現,小米路由器3的 OpenWRT 版本為 barrier breaker,不過,真實的版本仍然沒有想到方法驗證。
無線網路功能測試
為了進行我們的測試,我重做了兩個測試,第一個是 iw 的指令支援。這個測試也就是用 opkg 安裝 iw,若有缺少任何功能,就會有提示出現。但在最後執行時,卻出現了錯誤,如下所示:
根據查詢之後,這是由於驅動程式不支援 iw 的功能。錯誤訊息中的nl80211是無線網卡的驅動程式,但是,MTK的方案並不支援此驅動程式。
第二個測試則是加入監聽模式的無線網路介面,以下為所編輯的/etc/config/wireless檔案。
輸入 wifi 重啟網路後,我們有以下的結果:
OpenWRT 論壇上也有類似的問題: https://forum.archive.openwrt.org/viewtopic.php?id=51608,可能是因為 MTK 網卡不支援 monitor 模式 (mt7620 drivers from mtk/ralink does not support monitor mode.)
Last updated