用小米路由搭建外網可訪問的個人網站


家里的小米路由R1D用了近一年,只是做一個普通的路由器使用,實在太浪費了。最近學習移動端編程,感覺和PC時代最大的不同就在於移動端產品更重雲和端的配合。於是就花了一晚上搗鼓搗鼓,在小米路由上搭建了一套可從外網訪問的web 服務,以便手機上做的玩意兒可以隨時隨地獲得私有雲的支持。把搭建路徑備案記錄下來:

  • 第一步、先把小米路由刷到開發版ROM。

后面ssh登錄需要開發版ROM支持。注意:先保存路由器上的所有數據!!!比如寬帶賬號、密碼信息,這些信息一般在裝完寬帶后就很少用到了,一定確保先找到這些數據,以便刷機完成后可以正常設置路由;刷機會導致路由上所有信息包括硬盤數據丟失,所以要做好數據備份。

去miwifi.com,點擊“官網” - 下載 - ROM - 小米路由器(R1D) ROM開發版 - 下載

· 將下載好的ROM包放到U盤的根目錄下,並命名為“miwifi.bin”;

· 開路由器的電源后,將U盤插入路由器的USB接口,按住reset,接通電源,待路由器指示燈變為黃燈閃爍時,松開reset

· 大約3-5分鍾后,指示燈變成黃色常亮狀態時可以拔掉U盤,此時刷機已經完成正在重啟,稍等片刻路由器指示燈變藍就可以正常使用了。

 

  • 第二步、開啟SSH工具

還是剛剛的網站,點擊“開放” - 開啟SSH工具 - 下載工具包,按照網頁指導和第一步類似地,將SSH工具刷入路由器。重啟路由后即可登錄,在PC上輸入命令ssh root@192.168.31.1,輸入密碼即可看到如下信息:

palancedeMacBook-Pro:~ palance$ ssh root@192.168.31.1
The authenticity of host '192.168.31.1 (192.168.31.1)' can't be established.
RSA key fingerprint is SHA256:FEpnjo9ynkUI4LWu3ckjcEce7HCJoybOJqANYh6+hSM.
Are you sure you want to continue connecting (yes/no)? yes
Warning: Permanently added '192.168.31.1' (RSA) to the list of known hosts.
root@192.168.31.1's password:


BusyBox v1.19.4 (2015-12-11 15:58:27 CST) built-in shell (ash)
Enter 'help' for a list of built-in commands.

 -----------------------------------------------------
    Welcome to XiaoQiang!
 -----------------------------------------------------
root@XiaoQiang:~#

搞定!

 

  • 第三步、安裝llmp

下載llmp_install.bin(百度一下,這玩意很容易找到),然后執行

chmod +x /userdisk/data/llmp_install.bin&&/userdisk/data/llmp_install.bin in

看到

Install: unzip data llmp.tgz ok

Install: config llmp start ...

Install: config llmp complete

llmp start ! The wwwroot is in The shared disk !

Install: everything is ok, Try to open the url http://192.168.31.1:8080

搞定!訪問http://192.168.31.1:8080即可看到歡迎頁。llmp系統運行在沙盒之中,該沙盒ssh端口為3333,該沙盒下用戶有root、www,密碼都是admin,建議先修改密碼。

ssh -p 3333 root@192.168.31.1

即可進入。www用戶不能直接修改自己的密碼,需要先root登錄,再執行passwd www修改其密碼。

mysql的root用戶默認密碼也為admin,假設要修改為ABCD,可執行:

mysqladmin -u root -p password ABCD

然后會提示輸入原先的密碼。

網站根目錄在小米共享盤wwwroot下,ssh到路由上對應的位置在/userdisk/data/wwwroot。

好了,以上步驟就完成了在小米路由上搭建web服務,到目前為止,可以在局域網內正常訪問了。目前從外網還訪問不了,原因是被防火牆攔了,下一步我們添加防火牆例外,就可以做到從外網用ip訪問該web 服務。需要說明的是,我發現聯通運營商屏蔽了8080端口的訪問,所以得先把web服務的端口改一下,比如改成8023。SSH到路由,

vi /userdisk/llmp/etc/lighttpd/lighttpd.conf,找到這一行,並把8080改為8023:

## bind to port (default: 80)
server.port = 8080    #把8080修改為8023

保存后執行如下命令,重啟llmp服務:

sh /userdisk/llmp/manager/llmp_fix.sh

 

  • 第四步、添加防火牆例外

vi /etc/config/firewall,在文件最后添加如下內容:

config rule 'httpdwan'
option src 'wan'
option dest_port '8023'
option proto 'tcp'
option target 'ACCEPT'
option name ''\''httpd wan accept tcp port 8023'\'''

保存后執行如下命令,重啟防火牆策略:

/etc/init.d/firewall restart

OK,現在從外網通過IP就能訪問該web服務了,去小米路由的管理后台找到自己的外網IP:

然后在外網訪問該IP,http://222.128.173.113:8023,如下:

可以小雞凍一把了~~

 

  • 第五步、域名解析

最后一步就是最好能通過域名直接訪問,一般家里的電腦都是動態IP,路由每次重啟獲得的IP是不同的,因此需要動態地把域名和這個IP實時綁定。在小米論壇上有教程講怎么映射到花生殼的二級域名,這種域名是免費的,而且小米路由的后台管理支持該域名的動態解析DDNS。不過我手上有一個從阿里雲購買的一級域名,在小米路由上又不能直接支持DDNS,所以還需要額外做一些事。大致分兩個步驟:一、申請一個花生殼的二級域名,並動態解析到小米路由;二、將阿里雲的一級域名再解析到花生殼的二級域名。

首先,去花生殼申請一個二級域名,這是免費的,如下:

然后在路由的管理后台中找到 高級設置 - DDNS - 添加服務,如下,輸入花生殼登錄的用戶名密碼以及剛剛申請的域名作為主機名稱:

然后從外網訪問http://palance.gicp.net:8023就能訪問到自己的web服務啦~

最后,需要去阿里雲上添加一條域名解析規則。去到阿里雲的管理控制台,選擇“域名”服務,找到自己的域名(我的域名是www.binglen.com),點擊“解析”,添加如下記錄:

 

注意,主要填寫記錄類型為CNAME,主機記錄為www,記錄值為在花生殼的二級域名palance.gicp.net,這樣就可以通過www.binglen.com:8023訪問小米路由的web服務。

還可以再添加一條:記錄類型為CNAME,主機記錄為@,記錄值為palance.gicp.net,這樣就可以通過binglen.com:8023訪問了。

大功告成!


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM