Kopia配合OpenList安全备份个人数据到网盘封面图

Kopia配合OpenList安全备份个人数据到网盘

前段时间我在朋友的带领下,白嫖了联通云盘一年的钻石会员,有8TB的容量,并且不是那种“有口无肛门”的网盘——上传速度快,下载限速限到死。所以,我就在想怎么利用这个网盘来给我的NAS做一份异地备份,以防万一。
但是,因为众所周知的原因,绝大部分网盘都会扫描你的数据。虽然明面上说保护个人隐私,但是实际上因为你的数据是明文存储在别人的服务器上面的,别人想干什么都是可以的,包括但不限于扫描你的照片,分析你的文件等。这其中,国内的百度网盘吞资源就是最明显的例子。
而我前面也提到了,我需要的是给NAS做一个异地备份。你想啊,我都上NAS了,而不是用的网盘,肯定是对个人数据控制权有比较大的诉求,也比较看重个人数据的隐私。那有什么好办法呢?
很早之前,我是用的本地7Zip把需要备份的目录打包成压缩文件,然后上传到网盘。但是我感觉这样的备份方式太过于繁琐,且不便利,这次正好借着白嫖了联通的网盘的机会,好好探索一下解决方案。

前期踩坑

最开始我就是想到了OpenList这个项目,可以把网盘的存储接口转成标准的WebDAV方便文件系统对接,而对接方面Linux可以安装davfs2,把网盘挂载到目录,方便工具操作。这时,按理来说就可以用7Zip打包目标目录直接灌进去了,然而事情并没有一帆风顺,不然就不会出现这一小节了——根目录炸了!
原因很简单,因为7Zip打包文件的速度要远远高于网络上传的速度,并且实际上为了性能,临时文件是直接写在根目录的,也就是挂载区的写入速度并不是实际的上传速度。因为数据量足足有1.1TB,我NAS的根目录只有32G,那包炸的。如果是按照上传速度作为写入速度其实不会出现这个问题,问题就是有本地缓存,而且似乎还关不掉!
这么看,只能另寻出路了:找一个支持WebDAV,能实时加密上传内容的工具,它就是——Kopia
关于OpenList怎么对接各种网盘,我这里就不再详细赘述了,官方文档写的很清楚,自行查阅即可。在完成了网盘空间挂载后(我挂载在/wopan),正片开始。

OpenList配置注意事项

虽然我省略掉了如何对接网盘,但是对于该使用场景的一些注意事项,我还是需要提一下的。

  • 密码不要带特殊字符,字母+数字的组合即可。因为后续对接时是在命令行输入--url=http://user:password@127.0.0.1:5244/dav/wopan这样的参数的,使用特殊字符容易出问题。
  • 如果是纯本地运行,不要套TLS加密,避免额外加密开销。
  • 记得在用户管理那里把WebDAV的管理权限勾上,默认是不勾选的。
  • 如果只是为了备份数据,备份完成后请关闭OpenList实例,一方面降低服务器的性能开销,另一方面削减不必要的攻击面。
  • 配置完成OpenList后,记得禁用或者删除相关端口(默认是5244)放行的防火墙规则。
  • OpenList实例不是一定要安装,可以下载到系统后,用Tmux挂机运行,普通用户使用命令./openlist server启动即可,不需要root权限。

Kopia 的使用

Kopia是一个开源软件,使用Go语言编写,可以在其Github仓库github.com/kopia/kopia找到,下载适合平台的版本即可开始备份操作,我这里下载的版本是0.23.1版本。

创建备份仓库

首先,我们需要创建一个用于备份数据的仓库,这里我创建一个kopia-repo的目录用于备份:

./kopia repository create webdav --url=http://admin:password@127.0.0.1:5244/dav/wopan/kopia-repo

执行命令之前,请在OpenList创建相关的目录,这里就是/wopan/kopia-repo这个目录需要创建好,不然就会得到以下报错:

unable to get repository storage: error listing blobs: error processing directory shards: error reading directory: error reading WebDAV dir: PROPFIND /: 401

这里的用户名和密码,就是OpenList设置的用户名和密码,执行命令后,Kopia会要求你输入这个备份目录的密码,请一定记下这个密码,后续备份文件和提取文件的加密和解密都需要使用。个人建议用uuidgen命令生成一个UUID作为密码,强度拉满。

开始备份

创建好目录后,就可以直接开始备份了(准确来说是创建快照)。例如要备份/data/www.nekopara.uk目录,命令是:

./kopia snapshot create /data/www.nekopara.uk

查看备份结果

备份完成后,可以执行以下命令查看备份的结果:

./kopia snapshot list 

输出是这样的:

chocola@nekopara.uk:/data/www.nekopara.uk
  2026-06-28 17:49:36 CST k6ab5f0e3ff54a77421d712b21de414cb 1.4 GB drwxr-xr-x files:342 dirs:1 (latest-1,hourly-1,daily-1,weekly-1,monthly-1,annual-1)

如果需要查看文件,需要使用快照ID,上面的结果对应的快照ID是k6ab5f0e3ff54a77421d712b21de414cb,找一个空文件夹,直接挂载即可查看文件:

./kopia mount k6ab5f0e3ff54a77421d712b21de414cb /data/test   

挂载完成后,可以从挂载的目录按需取回需要的文件,如果需要整个目录恢复,使用下面的命令:

./kopia restore k6ab5f0e3ff54a77421d712b21de414cb /data/restored_data

当然,还有其他的玩法,我这里只是介绍了主要需要使用的功能,感兴趣的可以去项目的Github仓库查看。

番外:关于备份那些事

其实我个人已经算是比较注重数据安全的了,我的NAS数据盘是两个4TB机械硬盘组RAID1,此外,我家里面还有一台电脑,里面装了一个3TB的机械硬盘,定期从NAS拉取数据,平时这台电脑是断电关机的,四舍五入也相当于冷备了。这个网盘的备份,只是锦上添花,加多一重保障而已。
如果你是选择使用网盘作为唯一备份的话,我建议你一定要慎重考虑,因为网盘也并非万无一失。即便真要使用,我也建议至少在两个不同的网盘服务商之间建立互相备份,以防万一。虽然我们的数据在上传前已经过加密,即使是有违规内容,网盘服务商也查不出来,没有理由删文件。然而,技术上的安全不代表运营上的万无一失, 我们要防范的是网盘的不可抗力因素:被黑客攻击加密勒索,网盘服务商误操作失误导致丢掉数据,数据中心起火导致数据“上云”……
总之就是,安全无小事,对于个人数据这种无价的东西,丢了就找不回来了,再慎重也不为过。毕竟,白嫖来的 8TB 是锦上添花,而自己硬盘里的数据,才是不可复刻的独家记忆。

评论区 (0)