转载请注明出处,本文仅用于学习交流,不对之处,恳请指正 ,部分图片摘取网络,如有侵权请联系
为了
小姐姐..呸,数据安全,使用Hyper Backup通过WebDAV协议将群晖数据加密备份到阿里云。顺便从Github把Docker安装WebDAV以及OpenWRT安装WenDAV的方法抄了一遍。2022年,8月15更新,旧的版本因为阿里云更换了refresh token的链接,已经无法使用,已更新代码为1.9.0版本
2023年,2月18更新,因为阿里云API升级原因,目前此方式已经不可使用
https://github.com/messense/aliyundrive-webdav/issues/7122023年,3月12更新,作者已切换到开放平台接口,但是我还未尝试是否可以
https://github.com/messense/aliyundrive-webdav/pull/7382023年,3月15更新,v2.0.5已切换到开放平台接口,目前在我的设备正常运行
效果
该方案目前在我本地稳定运行超过4个月,且为每天备份,备份总数据量超过2TB,使用版本仍为v2.0.5
根据原作者描述,其无上传需求,故没有完整的上传测试,如有需求,原作者可以提供付费支持。
该仓库的issues也有讨论了类似的无法使用的情况
https://github.com/messense/aliyundrive-webdav/discussions/656
起因
本来想写一篇关于个人家庭服务器的备份相关的文章,本来的内容应该会涉及到使用Hyper Backup通过WebDAV协议加密备份群晖,通过FRP访问内网FTP服务器,宝塔使用Samba网盘作为数据库、网站、FTP等的备份目录,宿主机挂载子虚拟机的Samba/NFS网盘,容器访问宿主机挂载的Samba目录等内容的。然后没想到写下来之后太长了,那来个就按揭发博吧。虽然大部分在网上可以找到相关资料,写都写了,那就发吧...
有小可爱问:既然选择上云,为什么还要使用群晖
- 内网有传输速度的有优势
- 群晖支持加密备份,不影响隐私问题
- 多端备份,数据更安全,以后跟老婆干架也不用怕一盆水浇了多年的心血
软件环境
群晖DS3617xs,6.2.3 update3版本
为了稳定,我并不追求高的系统版本,按道理7.0的也是支持这种方式的,但是我没有测试过
阿里云盘 + aliyundrive-webdav
因为有参与内测,虽然没提出什么好的意见,但是还是得到了2T多的容量。上云的目的是为了安全,使用本地NAS的目的是为了隐私以及速度,而加密备份使两者不会出现冲突。如果有需要,我是会愿意为阿里云盘买单的。这可比买一块20T容量的硬盘来的便宜。
WebDAV
WebDAV,全称Web-based Distributed Authoring and Versioning,是一种基于HTTP1.1协议的读写通信协议。具有支持文件锁定、版本控制等优点。简单来说,就是你可以将其做了网络存储的一种方式。并且你可以将WebDAV挂载为网络磁盘使用。
群晖也支持WebDAV的挂载方式,你可以参考我这篇文章进行配置 群晖WebDAV使用,并在穿透下获取真实IP
配置阿里云盘作为WebDAV服务
我们可以直接参照 aliyundrive-webdav 开源工具中的说明安装与使用的方式。你可以直接在群晖的Docker里面进行配置,也可以和我一样使用OpenWRT来运行WebDAV,但我不能保证是否有一天阿里云会屏蔽WebDAV的使用方式。
Docker 搭建阿里云盘WebDAV
- 在套件中心搜索 Docker并下载安装后,进入Docker,选中注册表,并搜索aliyundrive-webdav,安装latest版本即可。
- 下载完成后,在右边切换到映像的选项卡并双击,修改容器名为你想要的容器名,进入高级设置
- 选中开机自启动
- 映射本地路径,目的是用来存放refresh_token的更新内容的。本地路径一般存放在docker目录下面,比如新建一个叫做"aliyun-webdav的目录",映射的容器路径为"/etc/aliyundrive-webdav/"
-
网络可以不用修改
-
端口,你可以设置为你喜欢的本地的高位端口,比如8090,容器内对应的端口号为8080
-
Links不用修改
-
环境变量
-
REFRESH_TOKEN : 从网页中获取的refresh_token
-
WEBDAV_AUTH_USER : WebDAV的登陆用户名
-
WEBDAV_AUTH_PASSWORD : WebDAV的密码
-
- 点击保存后运行容器。现在你的Docker已经在运行可以连接到阿里云盘的WebDAV了。
OpenWRT 搭建阿里云盘WebDAV
当然,有些小朋友希望使用OpenWRT或者其他的方式来运行阿里云盘的WebDAV。在Github的仓库说明里已经说得很清楚了,这里也贴一下代码
- 安装
# 创建个用来下载的目录
mkdir ~/downloads
# 进入下载目录
cd ~/downloads
# 获取x86-64的ipk,需要使用对应版本的ipk
wget https://github.com/messense/aliyundrive-webdav/releases/download/v2.0.5/aliyundrive-webdav_2.0.5-1_x86_64.ipk
# 获取luci的ipk
wget https://github.com/messense/aliyundrive-webdav/releases/download/v2.0.5/luci-app-aliyundrive-webdav_2.0.5_all.ipk
# 获取luci的中文ipk
wget https://github.com/messense/aliyundrive-webdav/releases/download/v2.0.5/luci-i18n-aliyundrive-webdav-zh-cn_2.0.5-1_all.ipk
# 备份原来的配置文件
mv /etc/config/aliyundrive-webdav /etc/config/aliyundrive-webdav-20230312.bak
# 安装底包
# opkg install aliyundrive-webdav_2.0.5-1_x86_64.ipk
# 安装luci
# opkg install luci-app-aliyundrive-webdav_2.0.5_all.ipk
# 安装语言
# opkg install luci-i18n-aliyundrive-webdav-zh-cn_2.0.5-1_all.ipk
opkg install *.ipk
# 有时候会出现安装完不显示在服务列表里面的情况,清除一下缓存然后重启就好了
rm /tmp/luci-modulecache/* /tmp/luci-indexcache
# 重启
reboot
- 配置WebDAV
获取refresh_token
登陆阿里云盘,按f12打开开发者工具,在控制台中输入以下代码
JSON.parse(localStorage.token).refresh_token
群晖配置WebDAV为备份目录
- 我使用的是群晖中Heyper Backup工具,在软件商店中可以搜索并安装。
- 安装完成后,我们打开Heyper,选择文件服务器中的WebDAV
-
根据向导一步一步操作,一般不会有很大的问题
3.1 如果使用docker的话,你可以直接将ip直接设置为127.0.0.1,其他的可以设置为对应的运行WebDAV服务的IP地址。需要注意的是我们应该在ip后面加上端口号。
3.2 选中我们所需要备份的目录
3.3 这里我们就可以设置我们的加密密码,切记保存好你的密码,以及密钥,否则你将失去你备份的数据
3.4 我们可以设置相应的备份版本管理
3.5 好了,你可以使用阿里云盘来备份你的群晖了
文章评论
权限不足以访问此目的地文件夹。目的地处于离线状态
@叫我大佬 Aliyun-WebDAV正常运行吗?是Docker还是OpenWRT插件?你可以使用Windows先尝试能否挂载你想要的目录
@叫我大佬 我也是一样的,用 webdav方式,dsm7.1 ,作者自已测试过没有呀
@vx 我用了很长时间了,没出现过你们说的这个问题呀。用的是docker还是openwrt插件
dsm7.1,同样的问题,一反提示:权限不足以访问此目的地文件夹。目的地处于离线状态
@vx 我看到有人在aliyun-webdav作者的issue里面讨论过类似的问题,我使用的是v1.9.0,不是最新版。
有时间我试一下最新版看看能不能重现
https://github.com/messense/aliyundrive-webdav/discussions/656