小米路由器mini 自制NAS
提要
正好手头有一个闲置的小米路由器mini。打算把这个路由器刷成PandoraBox系统,然后买一个机械硬盘,配套一个Orico的透明硬盘盒,接在上面作为文件备份的私有云。
目前最麻烦的问题是小米路由器mini只有一个USB2.0的接口,速度慢供电不足,但是勉强还算能用,也不像USB3.0一样干扰2.4G频段。
希望实现的功能有:Syncthing实现24×7的云端文件同步;Samba/sftp实现的局域网文件访问;远程访问文件。
过程
1. 小米路由器mini刷机
刷机很简单,首先在路由器管理界面刷上小米官方的开发版固件,下载地址如下:
然后申请SSH权限:
登录以后就可以看到自己账户绑定的路由器。选择对应的下载工具包并记住root密码,根据网页上的指示完成操作。完成后就可以使用路由器的SSH了。
接下来就可以开始刷入PandoraBox了。先下载好小米路由器mini对应的固件:
http://downloads.openwrt.org.cn/PandoraBox/Xiaomi-Mini-R1CM/stable/
里面一个是r1024,一个是r512版本。按照网上博客的说法,r512集成了更多的包,r1024更加纯净。为了省事起见,我们选择刷入r512版本。
首先把固件用scp传入路由器的存储空间中。由于没有sftp,所以只能用scp。指令中的文件名、IP、路径均应按照实际情况进行调整。
scp D:\pandorabox.bin [email protected]:/tmp
然后刷入这个固件。
mtd -r write /tmp/pandorabox.bin OS1
命令行会有一个方括号里有w和e不断跳动。等待一段时间后固件会自动完成刷入。
刷机完成后,路由器的指示灯会变成很骚的基佬紫,这时候就可以连上一个开放的名字里有PandoraBox的WiFi了。连上路由器以后,管理页面IP在192.168.1.1,登录账户名为root,密码是admin。
2. 在PandoraBox中设置无线中继
无线中继的目的在于,使得这个路由器也变成一个无线客户端,毕竟学校里接网线并不方便。直接连接已有的WiFi获得网络再发射WiFi,让这个迷你NAS的便携性又上了一层楼。
设置方法可以直接参考这篇博客,写的非常全面:
由于小米路由器是双频WiFi,所以可以采用混合方案三和方案五。
在设置的时候也碰到了一个很神奇的Bug(Feature),2.4G和5G频段不管哪个关掉,都会导致整个路由器直接发不出信号。我本来打算是使用方案五,用2.4G的网卡接收信号,然后5G的发射。结果死活发射不了,必须也设置一个2.4G的信号发射才行。虽然强迫症有些不爽,不过也无大碍。
3. 各种骚操作
-
路由器关机
小米路由器mini并没有提供直接关机的方法,需要登入SSH,然后使用
poweroff
指令。但是经过实际测试,该指令在小米路由器mini上不起作用。
poweroff
,halt
,reboot
三个指令均为重启。在PandoraBox (OpenWrt) 上不存在shutdown
指令。 -
更新源
PandoraBox提供了一个类似apt的包管理,叫做opkg。opkg的默认源都连不上,需要进行替换。以下的源测试可用,可以通过更新opkg.conf或者去路由器管理界面的软件包选项里进行更改。
dest root / dest ram /tmp lists_dir ext /var/opkg-lists option overlay_root /overlay src/gz r2_base http://downloads.openwrt.org.cn/PandoraBox/ralink/packages/base src/gz r2_management http://downloads.openwrt.org.cn/PandoraBox/ralink/packages/management src/gz r2_oldpackages http://downloads.openwrt.org.cn/PandoraBox/ralink/packages/oldpackages src/gz r2_packages http://downloads.openwrt.org.cn/PandoraBox/ralink/packages/packages src/gz r2_routing http://downloads.openwrt.org.cn/PandoraBox/ralink/packages/routing src/gz r2_telephony http://downloads.openwrt.org.cn/PandoraBox/ralink/packages/telephony
-
开启sftp
1opkg update 2opkg install openssh-sftp-server
来自 https://openwrt.org/docs/guide-user/services/nas/sftp.server
-
win10上使用Samba
要在win10上跳桑巴(误),只需要在文件资源管理器里
右键 -> 添加一个网络位置
就可以添加设置好的Samba服务器了。 -
安装Syncthing
首先自然是下载合适的安装包。小米路由器mini使用的是来自联发科的MT7620A处理器,应当下载mipsle的安装包,即文件名为syncthing-linux-mipsle-v版本号.tar.gz的安装包。下载地址如下:
下载好,就可以把文件夹解压,把解压后的文件夹放入路由器的外置存储(U盘,移动硬盘之类)。例如我的硬盘挂载在/mnt/sda2,解压出来的文件夹命名为syncthing,那么现在Syncthing的可执行文件位置应当是
/mnt/sda2/syncthing/syncthing
。进入syncthing文件夹,输入以下指令就可以运行Syncthing了:
./syncthing -gui-address="0.0.0.0:8384" -home="/mnt/sda2/syncthing"
gui-address是网页管理界面的地址。不设置的话默认是127.0.0.1,无法从外部访问。改成0.0.0.0就可以访问了。
home是软件设置的放置位置。如果不设置,将会占用不多路由器存储,所以最好设置成外部硬盘。
当看到
Access the GUI via the following URL: http://127.0.0.1:8384/
的时候,就说明已经可以通过网页访问管理页面了。如果需要后台运行,只要在命令结尾加上>/dev/null &
即可,意思是重定向输出到无,并且后台运行。到PandoraBox的网页管理界面
系统 -> 启动项
中添加以上指令,即可实现开机启动。# Update:用这种方式自启动是利用rc.d中的自启动脚本来实现的。但是Pandorabox执行自启动脚本的时候,仿佛并没有把命令最后的&符号认为是后台挂起,于是自启动脚本会一直在后台常驻不结束,造成下面的脚本无法正常运行。尝试了很久都没有找到两全的解决办法,也许是Pandorabox的bug吧,只能放弃自启动了。
-
安装frp做内网穿透
安装配置方法和正常Linux相同,只需要到Github的Release里下载对应的文件解压,按照文档配置即可。
改进
上述方案的设想非常好,然而出现了一个问题。小米路由器mini采用了联发科的MT7620A处理器,性能弱的一匹,只能完成基本的路由功能。Syncthing比我想象中的要吃性能,特别是需要同步的文件多了以后,进行初始扫描的代价非常高。我挂在Syncthing上大概有15G的文件,做一个全部扫描需要长达两个小时,而且和我的电脑保持显示未同步,估计路由器这头判定文件不同。虽然显示正在同步这15G的文件,但是也没有任何网络上的动静,不知道问题何在,大约是Syncthing的bug。运行Syncthing的时候整个路由器都被拖的非常卡顿,毕竟非常吃CPU和内存。
上述实践证明小米路由器mini的性能差,Syncthing稳定性差Bug多(毕竟是还在开发的开源软件)。于是原本的方案需要改变。目前准备改成以下方案:
- Syncthing只用于同步小文件。比如笔记等。
- 用frp转发LUCI管理界面,Syncthing管理界面,以及Samba服务。
这样子的话,小米路由器mini就转变为了一个偏存储型轻同步型的文件服务器。之后再利用PandoraBox里现成的包配置下远程BT下载等服务,就可以美滋滋了。
# Update:使用frp转发Samba服务的尝试初步失败。大约是不太行的吧…
#tech notes
本文总字数 2585
本文阅读量
本站访客量