准备工作
- Raspberry(别的支持 docker 的软路由 / 家庭服务器等也可以)
- cloudflare 账号(用 cloudfalre tunnel)
- 用作 nas 的硬盘(插到 raspberry 上的外接硬盘,需要自供电,raspberry 的电量带不动不插电的移动硬盘)
初期
注意本教程安装的 OMV NAS 系统,不能有桌面 UI,安装系统的时候请选择没有桌面的 lite 版本系统。如果选择了有桌面的系统,我们也需要卸载。可以执行以下命令卸载完全各种桌面:
sudo apt purge xserver* lightdm* raspberrypi-ui-mods vlc* lxde* chromium* desktop* gnome* gstreamer* gtk* hicolor-icon-theme* lx* mesa* |
安装 OMV
https://www.openmediavault.org/
openmediavault 是一个免费的十分优秀的 NAS 管理系统,我们可以用来装在 raspberry 上的。
安装:
wget -O - https://raw.githubusercontent.com/OpenMediaVault-Plugin-Developers/installScript/master/install | sudo bash |
安装过程会很慢,可能最长 30 分钟,根据你的机器配置决定的。安装完成后,他还会更改内网 IP 地址,所以需要你重新用 ipscanner 去扫描下新的内网 IP 地址是多少。
默认用户名为 admin
,默认密码为 openmediavault
初始化磁盘
建议是用一个全新的磁盘来,或者已经备份好数据的,因为我们需要格式化硬盘到 EX4。
在磁盘中,选中你挂载的磁盘,选中高亮以后,点击擦除,然后确定,使用快速擦除即可。
擦除完成后,关闭那个擦除小窗口即可。
然后创建文件系统,就是挂载上硬盘。
在文件系统中,选择挂载文件系统
选择 EXT4
然后在设备中选中刚刚格式化完的磁盘,并保存。
耐心等待文件系统创建并挂载成功。
默认应该是会自动挂载上的,如果没有挂载上的话,就手动挂载下该磁盘即可。如果有需要应用的设置,选择保存并应用即可。
共享文件夹
创建一个共享文件夹,这里一般默认就是用挂载的硬盘根目录了。文件系统选择挂载好的磁盘,相对路径留空,权限保持默认(管理员和用户有读写权限),然后保持并应用即可。
SMB
我们可以先开个 SMB 测试下内网效果怎么样。服务 - SMB - 共享里可以添加刚刚共享的文件夹,然后公开选择允许访客,两个继承都需要勾选上。保持并应用。
然后在 SMB - 设置中,开启 SMB 服务,接下来,电脑上可以在 我的电脑 - 添加磁盘映射,然后输入设置的用户名和密码登录访问,可以测试下读写更改文件等权限是否正常。
WebDav
这里使用的是 docker 搭建的一个 webdav 服务。我们先安装 docker。
在系统 - omv-extras-Docker 中可以直接安装 docker,有需要的还可以安装下 Portainer(docker 的一个 web
管理面板,个人觉得挺方便的)
博主用的是 https://hub.docker.com/r/ugeek/webdav 这个 docker 的 webdav 程序,他支持 raspberry 就很友好。
普通 amd64 安装就
docker pull ugeek/webdav:amd64 |
如果是 raspberry 这样的 arm64 就用以下命令安装
docker pull ugeek/webdav:arm |
然后运行 docker 配置如下(amd64 的配置):
其中 8096 是随意设置的端口,可以自行更改。把 <你的硬盘挂载路径> 更换成你的硬盘实际挂载路径,可以在 存储器 - 共享文件夹 - 绝对路径 那里找到,直接复制路径即可。时区马德里是作者写的,懒得改了,影响不大。
docker run --name webdav \ |
或者运行(arm64,raspberry 的配置):
其中 8096 是随意设置的端口,可以自行更改。把 <你的硬盘挂载路径> 更换成你的硬盘实际挂载路径,可以在 存储器 - 共享文件夹 - 绝对路径 那里找到,直接复制路径即可。时区马德里是作者写的,懒得改了,影响不大。
docker run --name webdav \ |
运行以后,webdav 就会在 8096 端口运行,输入 raspberry 的内网 ip:8096
就可以访问 webdav 了。
配合 cloudflare tunnel 的内网穿透 8096 端口(协议选择 http 即可,即 http://localhost:8096
),我们就可以直接在公网访问 webdav 了。
WebDav 软件
Windows 用 RaiDrive,可以直接挂载 webdav 到本地磁盘里,就和 SMB 映射硬盘类似。记得用了 cf 的隧道后,就是走的 https 和 443 端口了,不要填 http 和 80 端口,会连不上的。
Linux 可以直接添加网络位置
Mac 上,转到 Finder > 前往 > 连接服务器,输入 Webdav 地址连接。
安卓可以用 ES 文件浏览器访问。
如果遇到 webdav 软件没有读 / 写权限的问题,可以去 存储器 - 共享文件夹 下,选中共享的文件夹,然后调整特权
和访问控制列表
。
拓展
博主为了进一步的同步,让谷歌云盘与 webdav 随时双向同步数据了。
博主是买了个 multcloud 永久会员,添加了我的 google drive workspace 无限空间云盘和 webdav,然后让他们俩互相双向同步。请不要学习博主去买 multcloud,我只是为了贪图能转移百度云盘才买的。rclone 更香!而且免费,就是需要一个服务器(有 raspberry 了也算是一个服务器了)和一点点配置。
结语
就此一个能在公网访问的家庭 NAS 就搭建好了。
博主考虑过 frp,但是相较于 cloudflare 的简单上手,还是更倾向与 cloudflare 了。对于 cloudfalre 的 smb 公网访问,觉得配置会比较繁琐,不如 Webdav 来的直接,配置好了哪里都能用,不需要再额外下载 cloudflared 了。至于其他基于 tcp 的协议就也同样不做考虑了,还是基于 http 的 webdav 最香。
不过 webdav 在处理大文件的时候还是有可能会出点问题的。不过我觉的日常使用上已经足够了。
总的来说,这么一个低成本高效率的家庭 nas 就这么做好了
No comments:
Post a Comment