使用 resilio sync 部署同步服务器
前言
由于公司产品部署包过大,起初提供给一线实施的部署包存放在阿里云上,不过由于带宽费用问题,下载很慢且没有断点续传。后面想起之前玩过 sync 下载东西,该工具基于 P2P
通信,没有中间服务器,速度上限为带宽上限。刚好公司千兆网络上行速度也还可以,只是没有固定公网 IP。那么不如在公司内部部署 Sync 提供给一线使用,这样也可以不用每次发布新版本时还要上传至阿里云绕一圈。
Resilio Sync 介绍
以下内容来自维基百科
Resilio Sync(曾经名为“BitTorrent Sync”)是由 BitTorrent 公司开发的专有的对等网络数据同步工具,可在 Windows、OS X、Linux、Android、iOS 和 FreeBSD 上使用。其可在局域网、互联网上通过安全的、分布式的P2P技术在不同设备之间同步文件。
技术原理
Resilio Sync使用P2P协议同步软件。该协议用于在多个设备间传递大文件时非常有效,与µTorrent和BitTorrent使用的协议类似 。Resilio Sync中,用户数据并不在云端,而是存储在本地硬盘中,因此在同步数据时需要至少一台持有数据的计算机处于开机状态。Resilio Sync使用在计数模式中AES-128密钥,该密钥可随机生成,或由用户设置。在Resilio Sync中该密钥称为secret,可告知给其他用户以便共享数据。数据是直接从一台设备上发送到另一台设备中,因此需要数据所在设备在网络上可访问。如果原设备不可访问,则数据由其他节点传播,这些传播节点无需知道原先的secret,但只有知道secret的节点才能解码并查看数据。
可以将secret告知给某个节点,这样就将该节点加入到同步系统中,使其可以访问数据。当创建新节点时,用户可以将原secret告知给新节点;若出于安全性考虑,也可以创建一次性使用的secret。用户还可以通过Resilio Sync客户端生成一个只读的secret,这样当新节点接收到这个secret时,只能查看文件而无法修改。
Resilio Sync对需要同步的文件大小没有限制,唯一的限制就是不同的同步设备中都需要有足够的空间容纳所要同步的文件。
优缺点
Resilio Sync最大的优势在于其不需要第三方服务器,几乎不受存储空间和流量限制。由于Resilio Sync是一款采用 BitTorrent 协议的P2P同步工具,传输速度基本上只受用户网络带宽的制约,它可以支持多人同时同步,而且,越多人对文件夹进行同步,则同步速度越快。它支持多平台,可以通过密钥进行文件分享。
由于Resilio Sync的数据不在云端,而是存储在本地。所以拥有文件的电脑需要保持在线,才能同步到其他电脑去。而且由于采用类似 BT 的协议,因此在某些禁用 BT 下载的场景中可能会受到影响。
部署服务
本文将以在 Linux 上部署服务节点提供共享文件夹,在 Windows 上以只读方式获取文件为例。
官网地址:https://www.resilio.com/individuals/
Linux 上部署节点
部署
下载安装包
根据自己操作系统与 CPU 架构,选择对应的安装包
shell 1
wget https://download-cdn.resilio.com/2.7.2.1375/RPM/resilio-sync-2.7.2.1375-1.x86_64.rpm
安装服务
shell 1
rpm -ivh resilio-sync-2.7.2.1375-1.x86_64.rpm
安装完成后默认服务名为
resilio-sync
,配置文件路径/etc/resilio-sync/config.json
,我们可以通过命令rslsync --dump-sample-config
查看配置文件模板进行相应调整。修改配置文件
/etc/resilio-sync/config.json 1
2
3
4
5
6
7
8
9
10
11
12
13
14{
"storage_path": "/var/lib/resilio-sync/",
"pid_file": "/var/run/resilio-sync/sync.pid",
"use_upnp": true,
"download_limit": 0,
"upload_limit": 10240,
"directory_root": "/data/sync/",
"webui": {
"listen": "0.0.0.0:8888",
"login": "akiya",
"password": "akiya.cc",
"allow_empty_password": false
}
}启动服务
shell 1
2systemctl start resilio-sync
systemctl enable resilio-sync
页面设置
通过浏览器访问服务器 IP:8888,使用配置文件中
webui
中填写的用户名密码登录后可看到如下界面,第一次使用时需要填写当前节点的名字,填写后不可更改。此名字主要用作与其他节点通信时显示使用。第一次进入可以看到界面如下,我们选择右上角的设置按钮
选择
General
修改Language
为中文,然后刷新页面在服务器上
/data/sync/
路径下创建文件ResilioSyncPro.btskey
并填写如下内容声明:以下许可证为网络获取,仅供学习交流使用,如商业使用请官网购买许可证
/data/sync/ResilioSyncPro.btskey 1
tos1_eyJzIjogIm5xNjRmNGgrWDhxWHFiaWRodEtyTWdNcEVaMHdYaUJLbExwSWFwSDUxMzkyaHdqMFFpQWJOTTFGd2JGWGpJQ0FhV2w4V3ZidVpPenpITXZmNTRLWU1XVGVsVFZjS3JGQUpYMmVUMGttT2lCMm8zQ1BjVFd2VWlCLzRsTTlQN1FsalVSVzREMVFNUktWcEhwaG5IVzIvZmdqN05MaThmMnhNa1NDNERwRVVpQ0pXZHpPWXFIbW1OMFdOUEt6QWg4RkJoanNvUVNBa1hKN09WS0c5WElkVTczWnNlVWNxWW1WVUo0WDc0S05wYmlYZk0vemlsU2pIK0U5Y3ZMZ092YlplVjlCZXlveDNwT3pRYUJOeFNQT3FYWEpTRHE1bVRhRXMvWGppVGtJV21uVHJudVJnb01DZ0RBOHdBS3RIYjRvVkduWm1jeU8xNlhoQ3dvL2VkeHFxZz09IiwgImQiOiAiZXlKamF5STZJQ0ppZEc5ell6RmZaWGxLYW1ONVNUWkpRMHBJVlZoYVYxRldUakZsVldoWVZrWldNMUpXU2tWVVJURlZZVEZXZFZacVVsUmpNMUp5Wkcxd1FsUkVRVFZWUXpsMVZraGtUVk5wT0hsUFEzUjNUV3hrVjJOck1IaFVhelI1VXpOQ1QyUlhiR3RTYlVwb1ZtNUtURlJZVVRWVFJ6RXpWVVU1TVZwdVdtRlVWbVJ1VVd4Sk1sWXlXbkZsYm14b1ZWaHdlbEV3TVVKamJXaE5XVlYwZFZwVVJYZFRSbEpOVW5wU2JGbHBkRXBVVlRGSlYwUnNWMkV5ZEZSalZFRXdUbTVuTUdKck1WZE5SR2N3VmxWYVRsSnJNVzlqUlVwMFlVUlNlRTFJYkZaWmExRXhVbTFzTUUxSVpIZE5iR3hVWWxob1IyTkVSbE5sVlhkeVVsWm9OV0ZGUlROUmJWSnVWVEZDYUdKSVZrWkxNV3hZVmpGb2FtSjVPVWxSVlRsT1ltMTNNbE5zUlRCYWFsSlFWbXBCZUZRd1VrSlpha1Z5V20wMWRVNXVXblZSTTJnell6RldTazlGTVU1aFNHeFFUREE1TUZOc2JFWldTRkpXVlVaSk1sUkRkRkpXUjJoUlYwUlNjbGxyTlhGTlJHeFpXbmwwYjJGVk1VeFZWMVpVU3pCd2RFNTZVblpUYW14SVpEQnJlVkZ0TVVsalJGWXdWRlZTZEZreWVIcE9WbWhLV1Zkb1MxZEdSa1pqTUhSMVVsaFdlbE13VGpSaVJsSjVUVmR3ZFdOSGFFNWFlbFV3WW0xNGJFOVVhRzlUU0VWeVVWaE5NV1ZZVWxSTlIyTTVVRk5KYzBsRFNtcGFRMGsyU1VOS2JHVlZjSGRaYlRGaFpHdHNjV0l5Wkd4bFZYQTJXa2N4VDFKSFNYbFZiWGhLWVcwNWJsTlhOVTlPVjBwMFZHeEdhbUpVYUhCVVJVNUNZVlpyZVdSSVFtRlJNR3N5VTFWT1MyVkdWblJXVkVKVFltczFjbGt3V2s1TmJVVjNaVVYwYW1Wc1NsaFpla0pyVFVaRmVGRnRlRmRUUlRWNVUxZHNNMW93YkhSV2FsSnFVVEJyTWxOVlVrcGxSVFZGVmxSV1RsWkdhekJVVlZKQ1l6QnNSRk50Y0dwTk1VWndWREpzUW1GWFNqVk5WelZQVmtaYVVGbDZRbTloYkZwelZsZHNUVkV3Um5CYVJXaHpaREZ3VkZOVVdrcFJNSEF6VjJ4b1MyVnRTWGxPVjJocFVUQnNlbE5WVGt0a2JVNUpWVzV3U21GdE9XNWFXR3hMWWxkSmVXVkhkR0ZYUlhCVlYyeGtUMlZXY0ZsVlYyeFFZVlZHY0ZSdGMzaFVNVlpIVjJ4YVZGSkhVa05VV0hCVFYyeEdWbFZVUmxoU1ZGWkhWV3RXVTFWV1VrWk9WVnBYVFZWd1UxUlhjRk5VVmxsNFdqSnNUVkV3Um5CWmVrcFhZVWRTU1ZSWGJGQmhWVVkwV214bmQyTXdiRVJUYlhoc1UwVkdjRlF5YkVKbFZURlZWVlJHVUZaRlZYbFVNRkpDWkRKYVVsQlVNR2xtVVQwOUlpd2dJbWx1Wm04aU9pQjdJbTl5WkdWeVNXUWlPaUFpWVc1aGRXeG1ZVzUxYTJadWIydHViVzF6TURZNWNXbzNOQ0lzSUNKaGNpSTZJREFzSUNKbGVIQWlPaUF5TVRRMU9URTJPREF3TENBaVkzSmxJam9nTVRRNE1UUXlOek00Tnl3Z0luTjJZMGxrSWpvZ0luTjVibU5RY204eElpd2dJbU56ZENJNklDSnZMV2MxTlU1elNHTldWU0lzSUNKemRtTkRiMlJsSWpvZ0luTjVibU5RY204aUxDQWlZMmxrSWpvZ0ltZHFaV295YmlJc0lDSjBlWEJsSWpvZ0luQmxjbk52Ym1Gc0lpd2dJbTl3ZEhNaU9pQjdJbVp2YkdSbGNsTmxZM0psZENJNklDSkJWMFJOVHpSRlUxTkJUbGhCV2xKVE1rMHlORlpCTmtkQlIxSlhWVFJRTlZZaUxDQWljMlZoZEhNaU9pQXhmWDBzSUNKbGVIQWlPaUF5TVRRMU9URTJPREF3ZlE9PSJ9
在
许可证
中选择应用许可证
填写路径为
/data/sync/ResilioSyncPro.btskey
点击
打开
后,可看到应用已使用许可证激活
使用
创建需要共享文件的文件夹
shell 1
mkdir /data/sync/share
注意:共享的文件夹需要
rslsync
用户可访问,否则会有权限问题,添加失败shell 1
chown -R rslsync:rslsync /data/sync/
添加共享文件到此目录
选择左上角的“➕”然后选择高级文件夹或者标准文件夹
在高级文件夹中添加共享文件成功后,会显示如下界面。勾选新用户(我邀请的)必须由我批准后,所有通过分享链接加入的节点都需要经过同意后才能正式加入。由于我们需要访问节点可控,所以选择此类型文件夹共享。
点击复制后会显示链接,把此链接给其他希望组网的用户使用即可申请加入此共享文件夹。
完成后关闭窗口可看到当前有共享文件夹
share
,在线用户0/0
,这是由于我们还没有用户节点加入。接下来我们来在 Windows 上面部署节点加入。
Windows 上部署节点
Windows 上仅做加入说明,共享方式与 Linux 服务器上一致
下载 Windows 上对应版本安装包
安装 Resilio-Sync,并填写当前节点名字
添加链接或秘钥
输入我们之前在 Linux 上部署的 sync 中添加的共享文件夹的共享链接
选择保持路径,并勾选选择性同步
等待服务端同意
登录共享文件夹的服务端,同意节点加入
加入节点成功
Win
Linux
点击 Sync 中共享文件夹名称,进入文件夹可看到与源服务器上同样的文件目录结构,只不过本地文件中所有文件均添加有后缀
.rsls
,且文件图标为半透明状。此时双击文件或右键选中文件选择同步到此设备
即可下载文件查看使用。
- 本文标题:使用 resilio sync 部署同步服务器
- 本文作者:akiya
- 本文链接:https://little-star.love/posts/b7c2e9da/
- 版权声明:本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明出处!