家裏的小米路由R1D用了近一年,只是作一個普通的路由器使用,實在太浪費了。最近學習移動端編程,感受和PC時代最大的不一樣就在於移動端產品更重雲和端的配合。因而就花了一夜搗鼓搗鼓,在小米路由上搭建了一套可從外網訪問的web 服務,以便手機上作的玩意兒能夠隨時隨地得到私有云的支持。把搭建路徑備案記錄下來:mysql
後面ssh登陸須要開發版ROM支持。注意:先保存路由器上的全部數據!!!好比寬帶帳號、密碼信息,這些信息通常在裝完寬帶後就不多用到了,必定確保先找到這些數據,以便刷機完成後能夠正常設置路由;刷機會致使路由上全部信息包括硬盤數據丟失,因此要作好數據備份。web
去miwifi.com,點擊「官網」 - 下載 - ROM - 小米路由器(R1D) ROM開發版 - 下載sql
· 將下載好的ROM包放到U盤的根目錄下,並命名爲「miwifi.bin」;shell
· 開路由器的電源後,將U盤插入路由器的USB接口,按住reset,接通電源,待路由器指示燈變爲黃燈閃爍時,鬆開reset編程
· 大約3-5分鐘後,指示燈變成黃色常亮狀態時能夠拔掉U盤,此時刷機已經完成正在重啓,稍等片刻路由器指示燈變藍就能夠正常使用了。ssh
仍是剛剛的網站,點擊「開放」 - 開啓SSH工具 - 下載工具包,按照網頁指導和第一步相似地,將SSH工具刷入路由器。重啓路由後便可登陸,在PC上輸入命令ssh root@192.168.31.1,輸入密碼便可看到以下信息:tcp
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_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,因此還須要額外作一些事。大體分兩個步驟:1、申請一個花生殼的二級域名,並動態解析到小米路由;2、將阿里雲的一級域名再解析到花生殼的二級域名。
首先,去花生殼申請一個二級域名,這是免費的,以下:
而後在路由的管理後臺中找到 高級設置 - 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訪問了。
大功告成!