vps安装Resilio Sync|以Debian为例

linux admin 3周前 (05-03) 122次浏览 0个评论

简介

各位都熟悉BTsync吗。没错,这就是那个传说中的BTSync的产品,只不过改了个名字开发而已。Resilio Sync 使用于在不同的服务器上同步文件或者文件夹。如果你认为他仅仅只是用于同步文件,那你就错了。Sync 最强大的在于它的密钥分享功能。只需要输入一串乱七八糟的字母数字组合,就能下载到几十个G的资源库并且保持实时更新。所以Sync 被称之为开车神器,因为某些资源你懂得。

为什么在VPS上安装

很简单,Windows上免费版本的Sync是无法选择同步文件的。免费版的只能一次性把整个密钥分享的文件夹全部同步下来。如果我们利用VPS将资源下载完成,再在VPS上进行选择下载,就可以克服这个问题。而且大部分VPS的网络情况比家庭网络要好很多,同步速度非常之快。

安装教程

由于Resilio Sync是闭源软件,官方提供了二进制包、软件源,以及docker三种安装方式,具体参见Installing Sync Package On Linux。我们今天主要看看软件源安装和官方编译好的二进制执行包安装。

下载,安装主程序

Debian / Ubuntu:

echo "deb http://linux-packages.resilio.com/resilio-sync/deb resilio-sync non-free" | sudo tee /etc/apt/sources.list.d/resilio-sync.list
wget -qO - https://linux-packages.resilio.com/resilio-sync/key.asc | sudo apt-key add -
apt-get update
apt-get install resilio-sync

CentOS:
vim /etc/yum.repos.d/resilio-sync.repo按键盘字母i并写入以下内容,按ESC键,然后输入:wq 回车

[resilio-sync]
name=Resilio Sync
baseurl=http://linux-packages.resilio.com/resilio-sync/rpm/$basearch
enabled=1
gpgcheck=1

二进制包安装

由于从软件包安装只支持 DEB 和 RPM 两种软件包管理器,而默认内置了 DEB 软件包管理器的主要是 Debian 系的 Debian Linux, Kali Linux, Ubuntu Linux 以及众多基于 Ubuntu 的其他发行版,默认内置了 RPM 软件包管理器的主要是 RedHat 系的 Redhat Linux, CentOS Linux, Fedora Linux 和 SUSE Linux 等。如果想要在其他 Linux 发行版中安装,可以参考 Resilio Sync 提供的其他安装方式,链接地址:https://help.resilio.com/hc/en-us/articles/206178924

使用软件包管理器安装,第一步就是下载对应的软件包,下载地址如下,根据自己的系统选择即可:

https://help.resilio.com/hc/en-us/articles/206178924

如果是下载的 DEB 包,就使用如下命令安装:

sudo dpkg -i <resilio-sync.deb>

如果是下载的 RPM 包,就使用如下命令安装:

sudo rpm -i <resilio-sync.rpm>

 

完成后:

iptables -I INPUT -m state --state NEW -m tcp -p tcp --dport 8888 -j ACCEPT
iptables -I INPUT -m state --state NEW -m udp -p udp --dport 8888 -j ACCEPT
/etc/init.d/iptables save
/etc/init.d/iptables restart

开启任意主机连接

sed -i "s/127.0.0.1/0.0.0.0/g" /etc/resilio-sync/config.json
sed -i "s/127.0.0.1/0.0.0.0/g" /etc/resilio-sync/user_config.json

配置同步文件夹

假设我们希望能把密钥的文件夹同步到/data/sync,我们需要给/data/sync设置Resilio Sync的用户权限,才能向这个文件夹写入内容。

chown -R rslsync /data/sync

Resilio Sync控制命令

service resilio-sync start #启动
service resilio-sync stop #停止

开启防火墙端口

Ubuntu / Debian

iptables -I INPUT -m state --state NEW -m tcp -p tcp --dport 8888 -j ACCEPT
iptables -I INPUT -m state --state NEW -m udp -p udp --dport 8888 -j ACCEPT

CentOS

iptables -I INPUT -m state --state NEW -m tcp -p tcp --dport 8888 -j ACCEPT
iptables -I INPUT -m state --state NEW -m udp -p udp --dport 8888 -j ACCEPT
/etc/init.d/iptables save
/etc/init.d/iptables restart

重启sync

service resilio-sync restart

配置 Sync 网页端

访问http://VPSIP地址:8888

修改webui端口

nano /etc/resilio-sync/config.json
nano /etc/resilio-sync/user_config.json

将8888改为可用的端口

权限问题

出于安全性的考虑,Resilio Sync 默认只会以属于 rslsync 组的 rslsync 用户的身份运行,很显然,这并不适合我们日常使用。关于权限问题,小白有这个几个解决思路:

1.将同步文件夹权限设为777

2.修改/etc/passwd文件,直接将 rslsync用户权限设为root权限

3.精细一点,修改用户及用户组归属

第一种很简单,第二种很暴力,具体可参见小白手动安装transmission那篇教程,第三种我们稍微说下:

首先,将用户 rslsync 新增到当前用户所在的组,user_group 就是指当前用户所在的组,根据实际情况替换即可:

sudo usermod -aG user_group rslsync

之后,将当前用户 user_name 新增到 rslsync 用户组,user_name 就是指当前用户,根据实际情况替换即可:

sudo usermod -aG rslsync user_name

P.S: 上面的 -a 参数的作用是将用户追加至 -G 参数中提到的附加组中,但并不从其它组中删除此用户。

一般情况下,当前用户的用户名和其默认所属的组的组名是相同的,例如,在我的操作环境下,当前用户是 zkf, 当前用户所属的组也是 zkf. 如果不确定当前用户所属的组是谁,可以使用如下命令查询:

groups <用户名>

此外,我们还需要建立一个 Resilio Sync 的同步文件夹,然后赋予其读写权限:

mkdir synced_folder
chmod g+rw synced_folder

参考文献

1.在VPS部署Resilio Sync

2.保姆级教程:在Linux上安装配置Resilio Sync 

 


VPS小白 , 版权所有丨如未注明 , 均为原创丨本网站采用BY-NC-SA协议进行授权
转载请注明原文链接
喜欢 (0)
发表我的评论
取消评论
表情 贴图 加粗 删除线 居中 斜体 签到

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址