又是突发奇想...
前几天想起家里还有个闲置的树莓派 (Raspberry Pi) 3B ,应该是之前想拿来学 Python 还有物联网啥的而购入的,之后因为时间问题、学习考试之类的一直闲置。中途好像是有尝试过安装 LNMP 搭建网站服务器来着,但貌似是因为嫌折腾内网穿透麻烦(主要是家里宽带管理员密码遗失了,加之家里人使用网络过于频繁导致没有时间重置(并且怕重置后无法恢复))又再次闲置了...
这次是因为看到了 B 站 UP 主 翼王 搭建公司 NAS 的视频,又想折腾折腾自己的家庭 NAS 来玩了...
我闲置的这块树莓派型号是 3B。虽然不是古董但硬件配置与目前最新的树莓派 4 差距还是很明显的。特别其在对于 NAS 系统 的使用来说比较重要的硬件基础 —— 网络连接方面,3B 板载的是最高传输速度 100 Mbps 的网卡... 而 3B+ 代是 300 Mbps,4 代是 1000 Mbps... 同时,3B 代仅提供 4 个 USB 2.0 接口,加之树莓派没有提供 SATA 或 m.2 硬盘接口,外接硬盘数据传输速度将受到巨大的限制...
但这并不可以阻止我搭建牛逼闪闪的家庭 NAS 的决心... 因为需求这东西是异常随机的,很多时候一个小小的文件转移发送操作也能变得十分困扰。想像你有只有一台 MacBook,没有聊天工具、没有数据线和存储工具,你该怎么传输一个大文件到另一台 Windows 电脑上呢?远在天边近在咫尺?!!
蓝牙太慢、AirDrop 不能用... 只能在线上传、下载了,用 Firefox Send 网络连接太慢,用其他平台上传文件大小有限制...
咋办,NAS 来凑(前提是折腾好了内网穿透)... (硬编出个需求)
首先是操作系统,本来准备使用 Raspbian 系统然后搭建 LNMP 安装 NextCloud 的,但是看到官方专门为树莓派开发了 NextCloudPi 系统,简洁高效,整上吧。下载时使用迅雷能得到加成,有许多人贡献了速度。
使用 Etcher 将系统刷入 TF 卡,过程这篇文章有提到:
ID: 442 发布于: 2019-06-01 14:17:29
完成后将 TF 卡插入树莓派、连接 HDMI 到显示器、插入网线后插入电源开机。
开机后开始滚动代码,一段时间后会有树莓派被分配到的局域网 IP 地址显示,形如:192.168.1.10x,之后的控制面板与网盘地址也就是它了
最后回显示输入账户与密码 login / password,初始账户密码是:
之后会显示出一个蓝色的 NextCloudPi Logo,安装完成。
输入 sudo raspi-config => Interface Configuration 开启 ssh 服务,就可以「远程」操作树莓派了。至此,可以断开 HDMI 回到电脑上 SSH 连接树莓派进行接下来的操作了,登录用户同上,但 pi 用户没有管理员权限,为了方便可以先获取 root 权限:sudo su 。
连接上树莓派后输入 sudo ncp-config => config => nc-webui 开启在线控制面板,即可进入 192.168.1.10x:4443 进行初始化,端口注意是 4443。
正常的过程会展示 Control Panel 与 网盘 Panel 的密码与用户名,如果没有出现即使用默认账户密码:
NextCloudPi 默认使用的是 https,证书是自签发的所以在访问时需要选择 继续前往不安全的网站,但 macOS 最新版 Chrome 仍是无法访问的,需要使用 safari 浏览器访问并信任证书。
https://192.168.1.10x 就是网盘中心地址了,其管理员的登录信息展示在了初始化界面中。
NextCloudPi 提供一个快捷配置的程序,帮助你挂载外接储存设备:硬盘、U 盘等,之后如果你在路由器上配置好了 DDNS,做好了内网穿透的准备,也可以再次运行该程序引导完成配置。挂载的储存设备会被清除数据并格式化为 BTRFS 格式,此处需要被格式化磁盘最大可为 2TB 并且只能有一个... (也许可以多个,我没有折腾出来)。
硬盘选配方面可以选择适用于 NAS 的机械硬盘,如西部数码红盘(NAS 专用),黑盘(企业盘、监控盘)、希捷等,也可以按照需求和个人条件使用固态硬盘、移动硬盘。我选择的是淘宝上便宜的 2TB 西部数码黑盘 64MB 缓存,需要注意的是谨慎购买 SMR 硬盘,通常这种硬盘缓存都比较瞩目。这里有一个 B 站指南: https://www.bilibili.com/video/av74863123。当然,就算是机械硬盘在 USB 2.0 下也无法发挥它的全部实力。我使用的是绿联的 USB 转 SATA 的转接线来实现硬盘挂载。
在控制面板你可以看到许多选项,和内网穿透有关的按照需求去折腾吧,我暂时还没做...(我高三诶!!呸...)
然后你可以看到有 NextCloud 自动更新、NextCloud Panel 自动更新的选项,并且控制面板上方你也可能可以看到醒目的更新提示。鉴于国内环境问题,不论你是登录到网盘中心去更新 NextCloud Panel 还是在控制中心去更新 NextCloud,都会下载失败。但只要将这里的自动更新打开,第二天系统在后台就能帮你自动更新了...
使用管理员账户登录网盘中心,在头像下拉栏中可以管理应用、用户等。鉴于我使用的是性能掉渣的树莓派 3B,为了在网盘基础的访问、上传/下载、同步中得到必须的服务保障,我选择关闭自带的许多应用:如 Notes、Activity 等。并且不使用任何加密措施,保证性能。
直接在网盘中心上传文件时默认无法展示上传文件进度(已上传/总大小等),需要修改 js 文件来实现。如果你像我一样,不知道如何以 root 用户登录树莓派 SFTP 的话,你可能需要面临使用 Linux 操作系统命令行进行文件操作了。
ssh 登录树莓派,进入 /var/www/nextcloud/apps/files/js 目录,也就是:
cd /var/www/nextcloud/apps/files/js
然后先重命名 file-upload.js 文件:
mv file-upload.js file-upload.js.bk
然后从我的博客服务器上下载修改好的 js 文件到当前目录:
wget https://www.ouorz.com/1file-upload.js
重命名该文件为 file-upload.js:
mv 1file-upload.js file-upload.js
完成操作。
你可以使用 NextCloud 官方客户端。在安卓系统上使用是正常的,但是在 macOS 与 Windows 上,其客户端的运行策略是「同步」,也就是本地和云端同步的逻辑。这...网盘不就失去了网盘的意义了吗,你不可以借助网盘腾出本地储存空间了...
我搜索了一下 NextCloud 的 Github,发现他们确实有考虑到这个问题,但目前他们只做出了 Windows 版「挂载」客户端(而且还是预览版),但是由于本地使用了不可信的证书,登录授权方面仍然存在问题所以也基本属于不可用状态...
好在 NextCloud 支持通过 WebDav 协议访问和读写文件,目前我搜集到的比较好用且免费(当然我是鼓励支持正版)的 WebDav 客户端:
CloudMounter 的 Po 解版在这里:https://www.lanzous.com/i7h03if ,在 macOS Catalina 运行正常。
我还在某宝上购置了树莓派微型 UPS, 一块 4000 mAh 的电池,能在意外停电时支撑着我手动备份数据,可能之后会写个脚本自动备份到云端之类的吧。
对了,我外接的是一块 3.5 英寸的机械硬盘,使用 USB 转 SATA 线的时候需要外接 12V2A 供电,而且一定要使用绿联官方电源适配器才行... 上面提到的 UPS 只支持 5V1A 的输出自然是不可以了,但是只要确保不在读取写入过程中断电就不会损坏硬盘。
完,我又 gun 回去学习了...