小米路由器青春版装linux,比较费心的折腾 篇二:小米路由器青春版折腾负载均衡...
比較費心的折騰 篇二:小米路由器青春版折騰負載均衡
2020-06-04 11:00:23
3點贊
10收藏
8評論
創(chuàng)作立場聲明:本文的核心目的是對于比較久遠的硬件進行折騰,提及的軟件可以在官網(wǎng)、軟件包或者github找到。
開篇預警
本文截圖較多,但是前期操作不可復制,也沒有截圖下來,所以就真的沒法保留了。本文的具體操作是可以自己搜索到的,作者也能保證本文的具體操作都是走過了一遍,確保沒有問題。
本文其實是一個不完全版本,等七月份會有補充截圖,并把這段話刪除。如果有玩過openwrt的,對于其中的操作應該不會陌生;如果是linux基礎比較好的,在沒有完全截圖引導下也可以以文字問輔助完成整套操作(才不是大作業(yè)沒時間了沒顧及截圖
)。
為什么要折騰嵌入式系統(tǒng)的大作業(yè)
感覺網(wǎng)速疊加還是非常有用的
這里面會涉及到如下內(nèi)容:路由器刷機、telnet漏洞、mwan3負載均衡、macvlan虛擬網(wǎng)卡。
小米路由器青春版介紹
小米路由器青春版,具體型號R1CL,CPU是MT7628AN,575MHz的速度,內(nèi)存64M,閃存16M,micro-USB接口5V1A供電,100Mbps的WAN和LAN。
這個路由器其實比較早了,感覺還挺有折騰的價值。
打開telnet、ssh
打開telnet
這里實際上是利用了一個web漏洞才可以打開telnet,同時后續(xù)版本已經(jīng)封了這個漏洞,需要刷入非常早期的開發(fā)板固件才可以調(diào)用對應API。
在初次設置完成之后,會進入一個類似于miwifi.com/cgi-bin/luci/;stok=xxx/web/home#router這樣的網(wǎng)址,此時需要把stok=xxx后面的內(nèi)容換成/api/xqsystem/set_name_password?oldPwd=當前路由器管理密碼&newPwd=新密碼,這樣可以重新設置后續(xù)ssh、telnet的root密碼,否則root的密碼和當前路由管理密碼不一樣照樣進不去。成功的返回碼是{code:0}。
在剛才的基礎之上,把原有部分換成/api/xqnetwork/set_wifi_ap?ssid=tianbao& encryption=NONE&enctype=NONE&channel=1%3B%2Fusr%2Fsbin%2Ftelnetd,這樣才能打開telnet模式。這一步時間大約需要1分鐘,不要急著刷新。成功的返回值是{"msg":"未能連接到指定WiFi(Probe timeout)","code":1616},返回碼有可能不同。
打開ssh
之后利用powershell、linux的bash,putty等等支持telnet的軟件進入路由器,IP默認情況下是192.168.31.1,用戶名root,密碼是剛才設置的新密碼。進去以后直接使用三個命令,可能需要等一段時間才能結束。sed -i ":x;N;s/if [.*; thenn.*return 0n.*fi/#tb/;b x" /etc/init.d/dropbear
/etc/init.d/dropbear start
nvram set ssh_en=1; nvram commit
刷入breed、openwrt
刷入breed
在打開ssh之后,用ssh登錄路由器,IP、用戶名和密碼不變。在另一個窗口用scp命令上傳breed.in作為刷入的文件,或者使用WinSCP的scp傳輸協(xié)議連接到路由器,上傳到/tmp/即可(如果路徑不一樣,需要修改下面的命令)。
之后使用mtd命令刷入。刷機需要等待一段時間,并且會重啟。mtd -r write /tmp/breed.bin Bootloader
進入breed的方法是斷電后按住reset鍵的同時插入電源(要先按住再插入電源)。第一次刷完之后重啟會自動進入。刷入breed不會影響原系統(tǒng)。進入breed時,只有有線才可以連接到路由器,無線不開啟,IP針對不同的包不一樣,我用的是192.168.1.1。
刷入openwrt
電腦有線連接之后可以打開這個界面,默認在“系統(tǒng)信息”選項卡,上傳openwrt固件即可,會要求二次確認的。
本次刷機也需要一定時間和重啟,重啟之后可以按照相同方法回到breed。
breed界面
安裝macvlan、mwan3與設置
在一個單WAN口的地方怎么可能做到負載均衡?很顯然這是多個網(wǎng)口的事情,于是我們可以做類似于單線多撥的操作,通過虛擬網(wǎng)卡和負載均衡達到這樣的效果。
更新與安裝macvlan、mwan3
首先使用ssh登錄路由器Terminal,然后使用opkg更新已有庫文件。opkg update
opkg list-upgradable
opkg upgrade *(這里沒有*這個符號,僅僅用于指代你看到的所有軟件包)
希望zdm能給代碼提供一個比較好的支持(markdown大法好)
之后下載安裝macvlan、mwan3和web界面設置。opkg install kmod-macvlan mwan3 luci-app-mwan3
產(chǎn)生新的網(wǎng)卡
用ip命令生成網(wǎng)卡。ip link add link eth0.2 name veth0 type macvlan
ifconfig veth0 up
檢查可以用ifconfig查詢veth0是否出現(xiàn)。
用ifconfig檢查一下虛擬化是否成功
在Network->Interfaces點擊Add new interface生成接口并設置,此時才可以撥號。記得把網(wǎng)關越點設置到和其他都不一樣(默認是0)。
vwan0的設置1-網(wǎng)關越點
vwan0的設置2-劃分物理接口
vwan0的設置3-劃分VLAN
負載均衡
打開負載均衡頁面,可以發(fā)現(xiàn)默認自帶一系列規(guī)則,但是這些規(guī)則會導致在關閉默認wan之后無法通過其他wan上網(wǎng),但是電腦本身還是處在聯(lián)通狀態(tài)。正是因此才需要調(diào)整
刪除掉Interfaces標簽頁下的所有的東西,新增wan和vwan0,Enabled選擇啟用,Metric填入之前設計好的網(wǎng)關越點。Members也全部刪除,新增wan和vwan0,權重一樣。最終在policies的策略全部刪除,只留下balanced,成員選擇wan、vwan0,last resort選擇default。
給mwan添加interfaces
刪除默認規(guī)則后,給mwan設置僅有的balance規(guī)則
至此,所有設置完成。如果需要添加多個的話只需要多寫幾個vwan即可。
實際體驗與方案的不足
通常來說有mac就可以拿到IP,所以在有mac和IP的情況下,只需要驗證關閉一部分的情況下依舊可以連通網(wǎng)絡,和在所有都聯(lián)通的情況下,上網(wǎng)流量的分配大致按照預計進行。本實驗中依舊只用wan和vwan0。關閉wan或者vwan0,網(wǎng)頁打開bilibili.com,查看能否打開主頁。如果wan關閉以后無法打開,可能是因為你的mwan3安裝并且沒有設置好;如果是vwan0關閉也是同理,也有可能是因為wan本身網(wǎng)絡就不對。
兩者都打開,隨意打開一個視頻(或者能觀察到明顯網(wǎng)絡流量的其他動作,比如下載),過一段時間觀察兩者的分配情況。
最后的結果是,通過兩個端口都可以單獨上網(wǎng);同時通過兩個端口上網(wǎng)時,可以看到端口的流量是差不多的,基本做到了負載均衡。
這個方案其實有一個問題:在刷入openwrt之后,/etc/rc.local寫入ip link命令會不生成網(wǎng)卡,但是把那段命令的eth0.2改成eth0就可以做到生成虛擬網(wǎng)卡,但是無法拿到IP(顯然)。這顯然是涉及到eth0.2生成時間的問題,就需要花費時間去閱讀啟動shell才可以定位到對應位置,已知的是從S95done這一塊調(diào)用的rc.local,直接從后面開始應該沒有問題。
總結
以上是生活随笔為你收集整理的小米路由器青春版装linux,比较费心的折腾 篇二:小米路由器青春版折腾负载均衡...的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 你礼貌吗是什么梗(该网络用语出自哪里)
- 下一篇: 修改锁屏电脑快捷键(电脑更改锁屏快捷键)