在探索 Syncthing 的时候,偶然听有人建议说让我不要把数据存储放阿里云了,不如直接用斐讯 N1 做个软路由,数据放家里省钱省事儿…于是我开始去了解:斐讯N1 是个什么鬼?原来 N1 开发的本源是作为一个挖矿机,因为斐讯翻车成了众人的闲置物品。在大神手里,垃圾都能变废为宝,况且 N1 盒子本身具有良好的性能和外观,还能轻松定制化,于是被广大爱好者折腾成了电视盒子、软路由、NAS、游戏机等等。
经过一番了解,我打算把 N1 改造成自用 NAS,挂个下载器,运行个小网站什么的。于是年轻人第一次安装了拼多多,花了 92RMB 包邮买了套全新未拆以及一根刷机用双公头 USB 数据线。在选购的时候,发现这盒子早一些时候只卖六十几,现在因为货源吃紧在慢慢涨价,而且有商家明目张胆地刷了系统再加价卖,从 90 到 160 不等。原来这还是个理财产品呢!
盒子本体美观小巧,方方正正,比一个巴掌大不了多少,废话不说了咱们开始
刷机准备工具
- N1 一台
- USB 双公口线一条
- 4G 以上 U 盘一个,新 U 盘可能有兼容性问题(最好是 USB2.0 设备或 SD 卡加读卡器)
- 可以运行安卓adb工具的电脑一台,Win/Mac/Linux都行
- 下载相关工具和固件(百度网盘 | Google Drive )
系统降级 刷机
网上大部分人刷机都是用作电视盒子的,毕竟这玩意儿支持 4K 价格便宜性能足接口还多,但是我电视本来比较新,而且非常讨厌用多个遥控器,所以不打算用N1看电视。托各位大神的服,网上已经有非常易用的刷机工具和详细的教程,此处不再赘述,详细请参看这里:视频 / 帖子。只需要注意:
- 准备一只有线鼠标,接入N1盒子最靠边的USB;
- 准备一条双公头USB数据线,接入电脑与N1盒子HDMI接口旁的USB;
- 刷机时最好将N1盒子用HDMI连接电视/显示器;
- 刷机时务必用网线连接N1盒子与路由器。
上文网盘里面有这些工具
降级之后 N1 成了个扩展性极强的电视盒子,无任何限制需要什么装什么,页面清爽无广告…我试了一下并不喜欢,觉得有点儿 LOW,不如大厂出品的那么统一协调——尽管它们广告很烦人。
索尼大法好,遥控器直接就能控制N1盒子
刷入 Armbian
Armbian 是专为 ARM 系统开发的轻量级 Debian 系统。首先下载对应的系统文件(5.77),然后把系统先写入事先准备好的 U盘。我比较推荐 USB Image Tool,先将 U盘重置接着将下载的 img 文件恢复进U盘。数分钟后系统刷入 USB ,电脑多了个 boot 分区并且会提示你格式化U盘,不理它。本来咱们可以愉快的查到盒子上启动了,但是据说原版系统空闲时负载比较高,咱也不懂它只好跟着大佬脚步走。
打开/boot/dtb
,用这个文件替换掉原有的 dtb 文件,然后修改根目录下文件uEnv.ini
的第一行为dtb_name=/dtb/meson-gxl-s905d-phicomm-n1.dtb
,完成后把U盘插到N1上边儿加电启动。
我用电视作为显示器,感觉很高级的样子~
要说 Linux 就是快啊,数秒之后便开机成功,咱们输入root
账户的默认密码1234
,执行./install.sh
将 Armbian 写入内部存储 eMMC。顺利的话很快完成,然后拔掉电源拔掉U盘,重新启动后即可 SSH 远程登陆进行接下来的工作——请注意:最好给N1固定一个 IP 地址。
挂载了一个硬盘
安装 OMV
OpenMediaVault 是一个基于 Debian 的开源 NAS 解决方案,具有 Web 可视化操作,可以通过各种插件来增强。如果你是个 Linux 小白,要求不高想轻松的使用 Linux 作为 NAS 系统,OMV 应该是个不错的选择。在安装之前建议先修改系统的更新源:
cd /etc/apt cp sources.list sources.list.bak vim sources.list
按 d
删除全部内容,按 i
粘贴以下内容,完成后按Esc
然后:wq
保存并退出,完成后可输入apt update
查看是否有问题;操作不熟也可以用如 WinSCP 之类的 FTP 工具直连修改。
deb https://mirrors.ustc.edu.cn/debian stretch main contrib non-free #deb-src http://httpredir.debian.org/debian stretch main contrib non-free deb https://mirrors.ustc.edu.cn/debian stretch-updates main contrib non-free #deb-src http://httpredir.debian.org/debian stretch-updates main contrib non-free deb https://mirrors.ustc.edu.cn/debian stretch-backports main contrib non-free #deb-src http://httpredir.debian.org/debian stretch-backports main contrib non-free deb https://mirrors.ustc.edu.cn/debian-security/ stretch/updates main contrib non-free #deb-src http://security.debian.org/ stretch/updates main contrib non-free
接入输入armbian-config
,在弹出的可视化选择窗中依次选择Software-Softy
,往下翻找到OMV,按空格键选择后再按回车安装。
经过一段时间安装完成后,在浏览器打开 N1 的地址,输入预置的用户名密码admin/openmediavault
即可登入 OMV 的管理页面。熟悉后台之后建议第一步工作先更改管理页面端口和密码,后台管理页面清爽,各个模块简单明了,支持中文,上手很快。
挂载共享磁盘
似乎在 Linux 的概念里,系统盘和数据盘是绝对分开的,因此在默认不挂载外接存储的情况下 OMV 没办法共享出可用的文件夹。因此咱们在 N1 盒子上外接必要的 USB 存储,然后依次点选存储器-文件系统-选中需要挂载的硬盘-挂载硬盘
,应用生效后把整个磁盘按可读可写(建议)方式共享出来。最后,为应对 Windows 复杂的文件共享系统,建议设置一个带密码的用户。
以上的工作只是设置了对应的共享文件夹,我们还需要打开相应的网络文件共享协议,并关联到上文具体设置的文件夹才能实现真正的文件共享。我本人主要是安卓电视和笔记本电脑访问这套文件系统,因此需要打开SMB/CIFS
和NFS
两项服务,启用对应协议后添加共享,参考如下图设置。
设置比较简单,但是要实现 Windows 电脑访问共享比较复杂(看运气)~
Windows/iOS/Android 共用一套数据库和文件
磁盘共享成功后,电视上的 Kodi 用 NFS 协议直接就能找到硬盘里面的硬盘/图片等等,看电影什么的非常方便。Kodi 是一款多平台家庭影院系统,功能强大且具有高度的可定制性:能安装皮肤定义想要的界面,也可以安装不同插件实现各种复杂的功能,这里就不展开了。
文件下载服务
直接在 OMV 插件库里面安装 openmediavault-transmissionbt 插件,这个插件可以实现和迅雷几乎一样的功能,比方说磁力链接、限速、线程选择、可选下载等等。
FRP 内网穿透
普通用户家里边的宽带一般是没有公网地址的,因此无法通过互联网访问网内的应用和服务。NAS 没有公网IP是很不方便的,比方你在百无聊赖的办公室突然发现一个不错的电影,想回家之后立刻就看,怎么办呢?难道还在办公室苦哈哈的下载拷进U盘?何不直接远程访问上文的 BT 下载器,让家里边的小盒子安安静静的下载呢。
这就需要内网穿透技术了,一般是反向代理和动态域名解析(DDns)两种方式,市场内花生壳、ngok比较出名,不过不推荐给个人用户使用。这里介绍用轻量化开源系统 FRP 实现反向代理,它可以使处于内网或防火墙后的设备对外界提供服务,支持 HTTP、TCP、UDP 等众多协议。
图片来自少数派
上图是反向代理的一个简单拓扑,FRP 本是国人开发的开源系统,在其项目页也有非常详细的帮助文档,这里简单记录下。首先你需要一台有公网IP地址的服务器,然后下载对应的文件,解压进入到程序目录后首先修改配置文件。相应的服务器端只需要该frps.ini
,客户端(内网服务器)修改frpc.ini
,看看我的配置文件:
[common] server_addr = 112.124.26.230 server_port = 8077 [ssh] type = tcp local_ip = 127.0.0.1 local_port = 22 remote_port = 8078 [syncthing] type = tcp local_ip = 127.0.0.1 local_port = 8384 remote_port = 8079 [omv] type = http local_port = 8080 remote_port = 8080 custom_domains = 112.124.26.230 [bt-downloader] type = tcp local_ip = 127.0.0.1 local_port = 8081 remote_port = 8081
应该很容易理解哈?修改完成后让 FRP 在后台运行就行啦啦——请注意:在对 FRP 执行操作均需要进到文件所在目录;防火墙开放对应的端口。
# 客户端 nohup ./frpc -c ./frpc.ini & # 服务端 nohup ./frps -c ./frps.ini &
我的远程服务器一般不会关机,但是N1很有可能经常关机(省电),所以还得利用systemctl
来让 FRP 开机自启,如下:
后记
本文还没写完就有人推荐我使用群晖了,用下图给你做个解释:因为N1小啊,省电(至多24W)啊!你看这宽高深各 40/15/20CM 的小置物架可以把我的无线路由器、NAS、存储和供电全部装下,其他系统恐怕有点儿难度吧?
请忽略我的胶带~
为了省空间我甚至对N1的电源做了改造
Acer Veriton N2620G 外形其实也很小
事实上我公司还有台崭新的 HTPC,Intel Celeron 887 1.5 GHz/2 GB DDR4/320 GB HDD,性能强过斐讯N1许多倍,但是想想耗电量和尺寸,觉得实在没必要折腾,以后用得上的时候再搞吧。