手把手教你搭建入门级免费私有云盘NAS——基于syncthing——基础篇(树莓派、PC机)



需求(按重要性排序):
  • 跨平台
  • 自动备份
  • 数据安全(非云盘同步,最近云盘数据安全事件频发,优先考虑本地同步)
  • 有版本控制(代码文件)
  • 流量、容量不限(受限于自身的硬盘空间,这可以扩展)
  • 管理同步文件方便
  • 稳定性好
  • 速度要快
  • 开源免费
背景:

  坚果云用了有两三年的时间,也用爽了,免费版不限空间,但限制流量(每个月1G上传,3G下载)有多个系统版本可供下载,同步根据文件夹来同步,不管小文件、大文件的同步,都很有效率,但是最近随着需要同步的内容越来越多,发现时常见到坚果云一直在扫描、分析,比较耗费时间,当然还有另外一个选择,面对企业用的亿方云,也是挺好用的。不想折腾的可以考虑用这两个软件之一来用作文件NAS(受限于免费版的空间与流量,都不适合当作媒体NAS,但是适合做文档、代码NAS)。
  基于目前的收入≈生存支出的尴尬情景,还未能实现真正的黄焖鸡自由,暂且忍住不买专业版,恰逢发现了 syncthing ,感觉有种相见恨晚,syncthing 是一个开源的云端同步工具,源码/release版本都可以在github上下载下来。这里是 syncthing 的 github 下载页面

NAS 介绍
摘自百度百科,简单来说就是有两个常用基本功能:1、存储数据;2、共享(同步/备份)

一、电脑端的 NAS 部署与测试(syncthing)

  • 在操作之前,若两台电脑不在身边的话,可以考虑先安装一个 TeamViewer 来远程控制,贼好用噢。
    (为了区分电脑A和电脑B,下面描述用家里的电脑远端电脑,远端电脑将通过 TeamViewer 来连接)
  • 去 github 下载电脑端的 syncthing 安装包 下载页面同上(下载页面)。
    找到 syncthing-windows-amd64-v1.4.2-rc.1.zip下载到本地(下载最新就好)
  • 解压打开,运行有且仅有一个exe文件。选是或否都OK,这里不会上传敏感数据,就选是了。
  • 这是家里的电脑第一次运行,自弹出来的 web UI 设置界面。
  • 这是远端的电脑,已经提前运行过,并添加过一台小米8(局域网下)测试。
  • 现在需要将两台电脑连接起来 ,此处两电脑是处于 非内网 (公网)连接。
    随便一台电脑选择添加远程设备,这里就选用家里的电脑去添加远端电脑。

  • 首先在远端电脑,选择 Web UI 右上方的 操作显示 ID

  • 复制图片红框内ID号
  • 在家里的电脑,添加远程设备,输入远端电脑的 设备ID
  • 这里说下第二个栏目,“共享”,有三个设置项
    • 作为中介:如果已经在2台设备上已经有同步的文件(或建立连接)。那么在添加第三个设备的时候勾选了作为中介,这个时候,新添加的设备就会将所有的“除自己外”的设备都添加到他自身的“远程设备”里。(有点拗口,可以自己感受下)
    • 自动接收:不建议勾选,因为不是每一个同步的文件夹,都想要接接收下来,将主动权放在自己手上,有新文件夹同步时,在确认是否添加,若不想每次手动选择,也可以将这个勾选上。
    • 共享指定文件夹:就是大家约定共享的默认文件夹,可以不勾,自己添加想要共享的文件夹。
  • 点击保存,此时,在远端设备上,会弹出一个确认的消息框,(会根据网络情况,有所延时,可以刷新一下)点击 “添加设备”
  • 到了这一步,就可以选择一个共享文件夹了,点击添加文件夹,填上想要共享的文件夹。
  • 选择共享,勾选想要共享的设备(这里需要勾选远端的电脑,才能将文件同步过去),版本控制按照需要来选,若是存放音视频文件,可以不用勾选,若是存放文档、代码等可迭代修改的,建议选择版本控制。
  • 同样,在远端电脑的 Web UI 会弹出一个提示框,同步该文件夹就勾选添加,选择路径,不想同步就直接点忽略。
  • 测试同步效果
      在远端电脑往同步文件夹丢几个视频看看同步效果(同步方向:远端电脑——>家里的电脑)。受限于家里 渣渣的59元20M宽带,只有2.85MB/s,换算过来也有22.8Mbps的传输速率,因此也是跑满带宽的,家里有百兆/千兆光纤的可以测试下哦,说不定有惊喜噢。
      反过来,在家里的电脑,往同步文件夹丢点内容,远端电脑也同样会下载到它本地同步文件夹内。
  • 至此,个人的NAS服务已经打通,接着就可以愉快的新建同步文件夹,并且实现多设备同步啦。

二、树莓派部署 24H 不间断运行 NAS——作为主同步服务端器(syncthing)

  • 选用树莓派的主要原因有:
     (1)这块树莓派处于吃灰的边缘,需要好好利用起来;
     (2)功耗低(租房电费1.3/度,长期运行必须考虑功耗),考虑到网速关系,决定将树莓派放在家里,家里的电脑与树莓派在局域网的同步较快,同步到远端可以等树莓派慢慢同步(补充:后面测了下功耗,是真的很低,闲时挂机 5V 0.26A 1.3W,有同步任务时 5V 0.67A 3.35W,拿个5V1A的闲置手机充电头给树莓派供电,妥妥的)。
     (3)没有旧电脑,有的话就会选择黑群晖了,也相当于免费(等现在这台退休就有了)。

  • 下图是配置完成后,继续丢角落头24H带电吃灰的树莓派(外壳还在路上- -。)

好了废话不多说,开始正文。

  • 首先,要安装好树莓派系统,可以参考我的博文来手把手教你烧录树莓派系统,并且完成基本配置。——> 树莓派——完整烧录及配置过程(超详细)<——
  • 查看树莓派系统位数,返回值就是系统位数。
    getconf LONG_BIT
    在这里插入图片描述
  • 去 github 下载树莓派的 syncthing 安装包 ,展开 Assets 找到 syncthing-openbsd-arm-v1.4.2-rc.1.tar.gz ,右键复制链接地址,修改下面的wget(这个软件更新比较勤快,你们可以直接找到最新的来下载,方法一样)
    执行下面命令下载 syncthing
    mkdir ~/syncthing
    cd ~/syncthing
    wget https://github.com/syncthing/syncthing/releases/download/v1.4.2-rc.1/syncthing-openbsd-arm-v1.4.2-rc.1.tar.gz
    
    (如果树莓派下载太慢的话,可以在电脑下载好,用ssh传过去)
  • 执行解压命令,增加执行权限,并运行一次(运行后才能生成配置文件)
    tar -zxvf syncthing-linux-arm-v1.4.2-rc.1.tar.gz
    cd syncthing-linux-arm-v1.4.2-rc.1/
    chmod +x syncthing
    ./syncthing
    
  • 运行信息如下:
    在这里插入图片描述
  • 因为树莓派不打算接显示器与鼠标键盘,为了能够在其他局域网内的电脑来访问树莓派的Web页面,需要开放IP出来让局域网的其他电脑来连接并设置。
    sudo nano /home/pi/.config/syncthing/config.xml
    
    在这里插入图片描述
  • 重新运行 syncthing
    ./syncthing
    
  • 在电脑端浏览器输入 树莓派ip:8384 访问 WEB UI 界面
  • 按照提示,需要修改密码,点击设置,选择“图形用户界面”,输入用户名和密码,为了方便记忆,可以直接用树莓派的用户名和密码就行。
  • 如果你有公网IP(或部署到云服务器),或只需要在内网操作,那么可以将连接选项里 启用NAT遍历全球发现 关闭,如果想接入外网,通过外网进行同步,又没有固定公网IP,那么需要将这两个选项打开
  • 保存后需要重新连接登陆 pi 的 syncthing 网页,输入账号密码登陆即可回到之前页面。
  • OK,完成设置后,可以根据上一节的方法来对树莓派进行相同的设置,直到同步成功。
  • 好了,来到这一步,需要在之前的基础上,修改一下同步的路径(数据同步的方向),由于树莓派是24H不间断运行,因此就用它来做同步的主NAS(即树莓派上的内容,会一直保持最新),此时我们需要断开设备间的同步。操作步骤如下:
    1、树莓派上的远程设备选项设置:对所有远程设备都共享需要的文件夹
    2、其他设备上的远程设备选项设置:只用在远程设备选项里设置下同步树莓派的文件夹。
  • 上一步骤的图示如下:
  • 设置完后,就可以愉快地添加真正需要同步的文件夹啦。
    (1)文件夹下的 “同步完成” 代表着 syncthing 的本地同步状态已就绪,可以向远端设备进行同步(这里是树莓派)
    (2)远端设备下的 “同步完成” 代表着在远端已经下载好最新的文件,本地与远端的文件对比一致。
    (3)如果此时在其他远端设备上进行同步,将会从树莓派上下载最新的文件到本地文件夹内。

三、扩展的同步拓扑

在下一篇文章里《手把手教你搭建入门级免费私有云盘NAS——基于syncthing——扩展篇》将展示如何利用云服务器,搭建专用共享网络,来替代全球发现,提高同步的速率。
最终的拓扑图如下:

四、代码同步的选择(GIT/SVN/NAS)

下述纯粹是个人使用感受,不属于工具好坏的比较(工具都是好用的)

  • SVN 的方法比较适合不同项目,不同版本,但是功能已经较为完善的代码或文档来同步。
  • GIT 与 SVN实际使用起来类似,也是需要commit-push操作才能同步,与svn比起来却要方便一些,也好用一些。
  • NAS 代码同步,对于小型项目的文件、学习过程中随时敲打的代码、未能形成版本的零碎源码文件、突发奇想临时写出来的文件,甚至是觉得好笑的段子/小片子,等等都可以同步到NAS,并且在其他设备上可以随时查看与编辑,关键是这么好用还不限量不限速不收费!
  • 总结:所以三种方法都各有好处与用途,对于需要以项目来区分并控制版本的,我会选用SVN/GIT,对零碎个人文件、不需要严格版本控制的同步临时代码文件、音视频及图片、我会选用NAS同步。

五、适用于个人

该文章分享的方法适用于个人/家庭的文件同步,如果多人协作的代码/文档开发,请选用svn或git,不然文件冲突不好处理。这里是默认了只有一个人在使用文件时,不会在2台以上设备同时打开并写一个文件的情况。
举个栗子,就是你在公司写的文档,走之前保存关闭,回到家能够打开能够继续在公司离开前的编辑,同样第二天到公司后,能够继续昨晚在家睡觉前的编辑。而当然你不会在同一时间在家和公司编辑同一文件,这样会有文件冲突,就需要先同步一份(其实git同理也是如此,只不过不用手动push)。

扫描二维码关注公众号,回复: 10715616 查看本文章

至此,一个入门级免费个人私有云盘NAS已经搭建完毕。已经足以应对日常使用,更多的高级使用技巧请参考下文
《手把手教你搭建入门级免费私有云盘NAS——基于syncthing——扩展篇》

发布了20 篇原创文章 · 获赞 31 · 访问量 1万+

猜你喜欢

转载自blog.csdn.net/qq_29225913/article/details/105376000
今日推荐