用小米路由器搭建外网可访问的个人网站

路由网739文章20评论2019-09-25 14:14:03评论字数 3097阅读10分19秒家里的小米路由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 [emailprotected],输入密码即可看到如下信息:
palancedeMacBook-Pro:~ palance$ ssh [emailprotected]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)? yesWarning: Permanently added '192.168.31.1' (RSA) to the list of known hosts.[emailprotected]'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! -----------------------------------------------------[emailprotected]:~#搞定!
第三步、安装llmp下载llmp_install.bin(百度一下,这玩意很轻易找到),然后执行
chmod +x /userdisk/data/llmp_install.bin/userdisk/data/llmp_install.bin in看到
Install: unzip data llmp.tgz okInstall: config llmp start ...Install: config llmp completellmp 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 [emailprotected]即可进入 。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 restartOK,现在从外网通过IP就能访问该web服务了,去小米路由的治理后台找到自己的外网IP:
然后在外网访问该IP,http://222.128.173.113:8023,如下:
可以小鸡冻一把了~~
第五步、域名解析最后一步就是最好能通过域名直接访问,一般家里的电脑都是动态IP,路由每次重启获得的IP是不同的,因此需要动态地把域名和这个IP实时绑定 。在小米论坛上有教程讲怎么映射到花生壳的二级域名,这种域名是免费的,而且小米路由的后台治理支持该域名的动态解析DDNS 。不过我手上有一个从阿里云购买的一级域名,在小米路由上又不能直接支持DDNS,所以还需要额外做一些事 。大致分两个步骤:一、申请一个花生壳的二级域名,并动态解析到小米路由;二、将阿里云的一级域名再解析到花生壳的二级域名 。