利用群晖实现2地文件同步
创作立场声明:方案源于个人实际需求,欢迎技术探讨。
先上正文,为啥要做的原因放在最后。
实验环境的搭建
我自己的那套系统已经在稳定运行了,这里就不放截图,下面所有的配置都是在虚拟机系统里进行的。由于是在VMWare WorkStation里做实验,无法像在ESXi中那样建立虚拟交换机,但是可以利用虚拟网络编辑器建立不同的VMnet来实现网络的隔离。一共搭建了6台虚拟机,两台路由器(爱快/LEDE各一),两台DS918+,一台Ubuntu,一台Macos,宿主机是Windows10,这样常见的三种环境都齐了。其实除了浏览器,就用到了一个Synology Drive客户端,官网也就提供了针对这三种操作系统的安装软件。
先画个简图
虚拟机如何安装就不在此展开了,不过虚拟网络的配置还是需要说一下的。
打开虚拟网络编辑器,如果看到的都是灰的,请点击右下角的更改设置,需要提升到管理员权限才能增加虚拟网络。我建了3个虚拟网络:VM iKuai,VM Internet,VM LEDE分别对应3段网络。VM Internet是桥接模式,VM iKuai和VM LEDE都是仅主机模式。建立的过程中,请注意去掉“将主机虚拟适配器连接到此网络”和“使用本地DHCP服务将IP地址分配给虚拟机”的勾,这样才能打开虚拟的路由器上的DHCP服务来给虚拟机和黑群晖分配IP地址。
这个虚拟网络,基本上可以当作虚拟交换机使用,拿来做一些实验还是很方便的。对应的虚拟机的网络适配器就要从“自定义:特定虚拟网络”里挑选了。
装好这一堆虚拟机之后,实验正式开始。首先,我们要在两台DS918+上各建立几个用户,尽量少用admin来做事情,新建的用户密码可以用群晖的随机密码,两边的用户名称是否一样并不重要,重要的是对共享文件夹的权限。用户账号的高级设置里,启用家目录服务。如果就自己用,这一步可以略去,反正同步的时候也尽量不要同步Home文件夹。
VPNServer端的配置
在DS918Plus这台群晖里安装官方的VPN Server。打开后在权限中,给新建的账号授权,我这里用的是OpenVPN,就在对应的框框里打勾就行了,对于不需要用到VPN的账号,请把所有的勾都去了。接下来进入“设置VPN Server”环节。选中启动OpenVPN服务器,
1、设定一个动态IP地址,这个地址就是远程服务器连接过来以后,访问的这台服务器的地址,这个地址,和这台群晖的LAN口地址不要在一个网段。这个地址一定要记住,后面做同步的时候还会用到。我这里用的是10.18.0.1。
2、端口按自己喜好进行选择,尽量别用常见端口,以减少冲突,我这里设成21194。
3、通讯协议选UDP,我用TCP不通,用UDP就可以,不深究原因了,能通就行。
4、加密和验证按自己的喜好来,是不是启动VPN压缩联机,自己决定,我是选上了。
然后,点击应用。再然后,导出配置文件。这个配置文件需要修改一下才能导入客户端。导出的配置文件里有3个文件,一个说明,一个证书,还有一个就是配置文件了。用文本编辑软件打开这个VPNConfig.ovpn文件,把第三行的remote YOUR_SERVER_IP 21194中的YOUR_SERVER_IP用你路由器的WAN口地址进行替换。我这里的地址是192.168.8.118,替换完成后,就变成remote 192.168.8.118 21194了。然后把第九行的#float的“#”去除,变成float。就这两处,改完之后保存备用。
接下来就需要对路由器进行设置,做一下端口映射。登录到iKuai的管理台里,进入网络设置--端口映射,添加一条外网端口21194到内网地址192.168.11.104端口21194的映射,协议选TCP+UDP吧,单选UDP应该也行。这里的内网地址就是DS918Plus的LAN地址。
服务端的设置到此结束,接下来是客户端了,客户端的路由器基本不用配置,只要配置DS918Plus2里的网络连接就好了。这里要用到前面导出并修改过的配置文件和证书文件,如果和我一样的实验环境,请自己想办法把文件从MACOS传到虚拟机Ubuntu里,我是用U盘的,选择连接到不同的虚拟机就可以了。
VPN客户端的配置
客户端的配置更简单,在DS918Plus2的控制面板--网络--网络界面--新增--创建VPN配置文件。选择Open VPN(通过导入.opvn文件)这一项。给自己的配置文件起个名字,在用户名称中输入前面服务器端给过权限的用户名,输入对应的密码,导入.opvn文件和CA证书,下一步,勾选“VPN连接丢失时重新连接”,然后应用。回到网络界面后,能够看到刚刚建好的VPN了,选中它,再点击上方的连接,一切顺利的话,就能看到下面蓝色的“已联机”了。
联机成功后,在DS918Plus里的VPNServer可以看到联机列表中多了一条记录,显示了从哪个地址连接过来的,联机时间有多长。如果连不上,只能检查一下是不是网络不通?端口写错了?密码输错了?证书放错了?配置文件改错了?一般情况下,很快就能连上的。
不过我的这个方案成功实施要求服务器端要有一个固定IP(我恰好有这个条件),用DDNS应该也可以,就是把配置文件中IP地址改成域名,但是我自己在配置的时候一直没成,也不知道问题出在哪里,所以就只能按IP来做了。
文件同步的设置
VPN连接建立成功后,总要干点啥,不然两台NAS各干各的,也没必要浪费资源建VPN啊。首先想到的就是文件同步和备份。那就先从同步开始。
先在两台NAS上安装好Synology Drive这个官方套件,这个套件装好之后会有Synology Drive管理控制台,Synology Drive,Synology Drive ShareSync这3个相关软件。
在DS918Plus里新增一个共享文件夹,名字随意,重点是权限,我这里起名NASShareSync,然后勾选下面的3项。至于后面的加密之类的设置,建议先默认,以后慢慢测试和调试。
然后,打开Synology Drive管理控制台,团队文件夹里,能看到刚才增加的共享文件夹,状态是未启用,这里选中该文件夹,再点击启用,建议启用版本控制,然后确定。这里会收到关于权限的提示,自己看一下,没有问题就确定吧。关闭这个软件,打开Synology Drive,能在团队文件夹里看到刚才的文件夹就说明配置正确。
接下来我们需要从群晖的官网下载Synology Drive的客户端并安装。Windows,Macos和Ubuntu都有对应的客户端。
安装完成后,启动这个客户端,先选择同步任务吧,输入NAS的地址,用户名和密码,这里的用户可以不是VPN用户,但是要对刚才建的文件夹有读写权限,否则文件没法同步。下一步会提示SSL证书的问题,仍然继续就行,如果不愿意看到这个提示,请自行申请证书进行替换,有免费的,但是我不确定好不好用。然后选择服务器上的文件夹,注意要选团队文件夹(我的是NASShareSync),选中后,选择本地文件夹,放在哪里自行决定,是否创建空文件夹也请自行决定。下一步会有一个关于共享协作的设置,这里可选稍后再说,然后完成即可。完成以后就看到“恭喜……“,不愿意看的就关闭吧。这个时候就能看到客户端在干活了,如果有文件给它同步的话,如果没有,那就复制几个文件,建几个文件夹看看,是不是电脑上有了,NAS里的Drive里也有了,如果同步都正常了,我们就可以进行下一步了。
Synology ShareSync的设置
这里需要注意的是这个要在另一台NAS上设置,我这里是DS918PLUS2,要用有权限使用Synology Drive的账号登录,否则无法建立连接。打开Synology Drive ShareSync后,输入服务器端的IP地址(白群用户可以直接输quickconnectID,但是我用的效果不好,所以才费劲建VPN来做),注意在个地方的地址要输入前面VPN Server配置时的动态地址,而不是这台机器VPN连接获取到的地址。我这里用的是10.18.0.1。用户名输入服务端DS918Plus上有权使用Synology Drive并能读写对应共享文件夹的账号,输入密码,至于SSL是否勾选,自己决定。测试连接通过以后,又会看到一个证书的提示,接下来就能看到选择要同步的文件夹了。默认会在本地建一个同名的本地同步文件夹,权限只给到当前登录的账号,如果需要另外授权,那么需要到控制面板中进行设置。文件夹权限设置完成后,两台NAS之间同步文件的设置就已经完成,可以尝试一下在任意一端做出更改,另一端会很快做出反应。
Ubuntu客户端的配置
前面已经完成了NAS同步,如果要再把这个文件夹同步到Ubuntu上,还是需要先在NAS里的Synology Drive管理控制台的团队文件夹启用刚才同步过来的文件夹,再进行Ubuntu客户端的配置。千万记得账号权限问题,免得说为啥找不到。正常过情况下,配置完成后,就可以看到同步软件在工作了。接下来可以试试看在任意一台电脑的同步文件夹里增删文件,是不是很快就同步了?
其他应用
既然文件同步都能做,那么备份就更不是问题了吧,只要先把网络通了,其他的应用就可以考虑起来了。
应用场景
显然,由于服务器端要求有固定IP,这个方案更适合分支办公室与总部之间的文件同步。尽管说都有固定IP了,直接端口映射,客户端连接上去不是更简单?但是多了一层VPN,是不是感觉更安全了一点?至少不用昂贵的专线,利用两台群晖,就可以低成本的实现两地文件同步了。
为啥这么折腾,吐槽一下百度云盘和WD红盘
几年前为了保存照片,买了一个215J,当时配了2块4T的NAS红盘做了Raid1。然而我高估了自己拍照的热情和红盘的寿命,在去年年底发现一块红盘真的红了,居然还是刚刚出保,我内心那个……。幸亏我的数据少啊,居然1T都没到,赶紧先备份到移动硬盘上。然后琢磨着买啥硬盘替换好呢。看着机械硬盘都怕是叠瓦,再看看自己用的容量,觉得再买大容量的机械硬盘也没啥必要了,索性买个2T的SSD用用。刚好赶上海康推出了企业版的2TSSD,先不管性能,就冲着人家有掉电保护+5年保,我觉得也值了。然而我还是太年轻,发货日期一拖再拖,都不知道春节前能不能收到了。算了,看样子要上大船了,淘宝上找了半天,花了1200入了一块Sandisk的1.92T,好歹也是MLC的颗粒,就我这读写压力,估计可以当传家宝了。NAS数据迁移完成之后,对剩下的那块红盘也做了检查,唉,果然是不能买同一批次的,寿命真是差不多,算了算了,就这点数据我备份上云还不行吗。群晖自带的Cloud Sync支持同步到OneDrive和百度网盘。想想我也是花钱买了office365和百度VIP的RMB玩家,那就两个都上,具体配置过程就不写了。
每天不到1元的office365家庭版是真不错,特别是几个小伙伴一起买,每个人都有自己独立的OneDrive云盘。
新问题出在上个月,我发现一些新拍的照片百度网盘居然没有同步,查了一下,又是百度的锅。群晖官方给了一个说明:
唉,我还是低估了百度作死的决心,再加上百度云盘PC端的小动作和移动端的广告实在令人难以忍受,打算等账号到期就不再续费了。本来这个云盘也就是为了下载文件和文件备份用的,虽然不打算继续用了,文件备份总还得做,免得中了勒索病毒的招,后悔药都没地方买。翻了翻家里的库存,找出来一个1T的东芝HDD,和一个3T的移动硬盘,就先挂上NAS做备份用。接下来就开始琢磨再建一个存储做异地同步的事情。这时候就想到做两地三中心了(OneDrive云盘,两台群晖各一套文件,实时同步,另外还定期备份到移动硬盘)。本来可以经过OneDrive中转直接实现同步的,但是考虑到OneDrive的连接稳定性,还是决定在两台群晖之间直接同步数据,不经OneDrive中转。作为拥有白群的用户,用quickconnect是最简单的,但是测试了一下性能,传输率低到了ISDN的年代,估计问题出在穿透和转换上了,数据有可能去其他地方转了一圈,看样子要通过其他途径来提速,为了安全,直接端口映射就不考虑了,那就只能用VPN组网了,反正群晖自带VPN服务器和客户端,提供了PPTP,OPENVPN和L2TP/IPSEC三种方案,听说带OPEN的都好用,那我就选个OPEN的(其实是IPSEC的端口已经被占了,用不了)。
这段时间用下来,效果还不错,除了开始阶段花了点时间去同步大量数据,后面都是增量数据,同步的速度已经很快了。而且在开始阶段是通过人工复制的方式把大部分数据都准备好了,这样开始同步时就只是做个校验,校验一致的文件是不传输的,有差异的才会传输,又可以节约一点时间,毕竟普通家庭宽带的上传带宽也是个坑。
值友1898878282
校验提示文案
AndroidOL
校验提示文案
沉默的眼睛
校验提示文案
沉默的眼睛
校验提示文案
AndroidOL
校验提示文案
值友1898878282
校验提示文案