将小米路由3改成下载服务器 -实现手机扫描本地下载
背景
目前想找一个支持U盘的路由器,将安装应用安装包( 50多M)放到U盘中,用户手机连接该路由的wifi,扫描指定二维码,可以实现本地下载安装包。
其实就是用户手机连接到wifi后,在浏览器中输入url,可以下载到安装包。
需要:1 路由器支持U盘,2 支持httpd服务,并且httpd的目录要指向U盘
一 前期试验
1 9344 路由器开发板
首先考虑的是用9344路由器改,通过将httpd -h /tmp 可以改变httpd 的主目录,这样讲安装包ndvoip.apk上传到 /tmp 目录下, 通过访问 10.10.10.254/ndvoip.apk 可以实现下载
但9344 原始linux 系统不支持U盘,没有驱动,虽然硬件上有U口。
之后想着在9344上烧openwrt系统,但由于各种原因,烧录不成功,并且9344 路由器没有几个。
2 红米手机做出热点
之后考虑用红米手机改,下载了一个 mhttpd.apk
http://www.mdpda.com/app/apk6914068.html
安装后,可以将安卓手机变成一个http 服务器,里边可以设置目录,可以设置端口,但不能设置成80端口(需要root权限),只能默认8080端口,在目录中上传安装包,然后共享热点( 需要插sim卡),之后访问192.168.43.1:8080/ndvoip.apk 可以实现下载。
主要问题就是,每次重启手机,需要重新共享热点,重新启动mhttpd应用,不能使用80端口。
二 使用小米路由器3 进行修改
后来发现一个小米路由3,并且支持插U盘,官网系统中,插入U盘后,通过小米路由app可以访问U盘中的文件,但这不符合我们通过浏览器访问的需求。
大致改造思路:
小米路由的U盘挂载肯定没问题,然后想办法把httpd的目录改到U盘挂载目录就行了。
步骤1 小米路由器刷ssh附件
先将小米路由刷ssh附件,官方默认不支持ssh登录。
https://www.jianshu.com/p/4317234e2175 刷ssh版本流程。
按照流程刷成功,注意
(1) 替换stok,中stok是登录小米路由web是的类似的token,url中有,每次登录都会变,
(2)http://192.168.31.1/cgi-bin/luci/;stok=<你的stok值>/api/xqsystem/set_name_password?oldPwd=<你当前的后台管理密码>&newPwd=<新密码> 中替换stok和密码,注意要把尖括号也算在内,以前替换
替换后:
http://192.168.31.1/cgi-bin/luci/;stok=3f342010637f63b24edae81dbbe67c92/api/xqsystem/set_name_password?oldPwd=<12345678>&newPwd=<87654321>
之后就可以通过ssh登录小米路由了。
步骤2 修改可写系统
ssh登录小米路由,
默认是只读系统,改成可写
mount -o remount,rw /
步骤3 将U盘挂载目录软连接到http目录
U盘挂载到了 : /extdisks/sda4
httpd 的目录为 : /www/
小米路由是openwrt,用的luci改造的web,但web能访问的路径就是这个
设置U盘安装包的软连接,
ln -s /extdisks/sda4/ndvoip.apk /www/ndvoip.apk
然后,通过访问 192.168.31.1/ndvoip.apk 可以正常下载。将url制作成二维码,可以正常扫描下载。