在Ubuntu 18.04、18.10桌面/服务器上安装Resilio Sync(BTSync)

本教程将向您展示如何在Ubuntu 18.04和18.10上安装Resilio Sync(以前称为BitTorrent Sync)。 Resilio Sync是Resilio,Inc发布的免费,快速,对等文件共享和同步工具,适用于Linux,FreeBSD,Mac,Windows,Android,iOS,Amazon Kindle Fire和NAS设备。

与Dropbox或NextCloud不同,Resilio Sync不需要中央服务器来存储文件。 相反,您只需要在终端设备上安装Resilio Sync即可通过BitTorrent协议同步文件,因此您将不受服务器存储限制的约束。

从官方存储库在Ubuntu 18.04和Ubuntu 18.10上安装Resilio Sync

Resilio Sync具有Ubuntu的存储库。 首先,我们需要导入Resilio Sync的公钥,以便程序包管理器可以验证Resilio Sync程序包。 打开终端窗口,然后运行以下命令以下载公共密钥。

wget http://linux-packages.resilio.com/resilio-sync/key.asc

然后用 apt-key

sudo apt-key add key.asc

接下来,运行以下命令以添加Resilio Sync存储库。 ( add-apt-repository 该命令由 software-properties-common 包。)

sudo apt install software-properties-common

sudo add-apt-repository "deb http://linux-packages.resilio.com/resilio-sync/deb resilio-sync non-free"

Ubuntu 18.04和18.10将自动更新软件包索引,因此您不必手动运行sudo apt update。 现在,使用以下命令安装Resilio Sync软件包。

sudo apt install resilio-sync

安装后,Resilio Sync将自动启动。 您可以通过以下方式查看其状态:

systemctl status resilio-sync

resilio同步linux网站

提示:运行上述命令后,按Q键即可获得对终端的控制权。

如果它没有运行,则可以使用以下命令启动它:

sudo systemctl start resilio-sync

默认情况下,Resilio Sync不会在启动时启动。 您可以通过以下方式启用自动启动:

sudo systemctl enable resilio-sync

Resilio Sync以rslsync用户身份运行,并且Web UI监听 127.0.0.1:8888 如在 /etc/resilio-sync/config.json 配置文件。

设置Resilio Sync Web UI

Linux版本的Resilio Sync不提供桌面客户端。 相反,您需要通过Web界面进行配置。 在Web浏览器地址栏中键入以下内容,以访问Resilio Sync Web UI。

127.0.0.1:8888

如果在远程Linux服务器上安装Resilio Sync,则需要使用Nginx或Apache设置反向代理才能访问Web UI。 请参阅本文的后半部分。

系统将要求您设置用户名和密码以保护Web UI。

在Ubuntu 18.04、18.10桌面/服务器上安装Resilio Sync(BTSync)

然后为您的设备选择一个名称,然后单击 Get started

resilio同步反向代理

并输入您刚创建的用户名和密码。

resilio同步侦听端口

登录后,您可以将计算机上的文件夹共享到其他设备,或从其他设备接收文件夹。

与其他设备共享文件夹

要共享计算机上的文件夹,请单击左上角的+按钮,然后选择标准文件夹。

resilio同步标准文件夹ubuntu

然后在计算机上选择一个文件夹。

resilio sync无法打开目标文件夹。

您可能会遇到以下错误消息。

Can't open the destination folder.

要么

Don't have permissions to write to selected folder.

这是因为Resilio Sync的运行方式为 rslsync 用户,没有访问该文件夹的权限。

假设您选择了主文件夹 /home/your-username/ 作为共享文件夹。 要解决上述错误,您所需要做的就是将主文件夹的权限授予 rslsync 用户使用以下命令。

sudo setfacl -R -m "u:rslsync:rwx" /home/your-username

上面的命令不会更改共享文件夹的所有者。 所有者具有与通常相同的权限。 它的作用是向另一个用户授予读取,写入和执行权限,即 rslsync。 注意 -R (递归)标志必须在 -m (modify)标志,紧随其后的是访问控制列表条目(u:rslsync:rwx)。

如果看到此错误:

sudo: setfacl: command not found

然后安装 acl 打包并重新运行上面 setfacl 命令。

sudo apt install acl

现在,您应该可以将主文件夹添加为共享文件夹了。

添加文件夹后,您可以通过链接,密钥或QR码共享此文件夹。

resilio同步nginx反向代理

如果共享文件夹很大,Resilio Sync将需要一些时间来索引内容。

从其他设备接收文件夹

要从其他设备接收文件夹,请单击左上角的+按钮,然后选择“输入密钥或链接”。

resilio同步https

然后输入密钥或链接。resilio同步接收文件夹

在Ubuntu 18.04、18.10服务器上使用Resilio Sync

您可以从上述存储库在Ubuntu 18.04和18.10服务器上安装Resilio Sync。 如果您的服务器位于云中,则您需要设置反向代理才能访问Web UI,因为Web UI仅在本地主机上侦听。 配置反向代理后,您可以通过域名访问Web UI。

使用Nginx设置Resilio Sync反向代理

如今,Nginx作为Web服务器和反向代理变得越来越流行。 使用以下命令在Ubuntu 18.04、18.10服务器上安装Nginx。

sudo apt install nginx

启动Nginx并启用自动启动。

sudo systemctl start nginx

sudo systemctl enable nginx

现在为Resilio Sync创建一个虚拟主机文件。

sudo nano /etc/nginx/conf.d/resilio-sync.conf

将以下行复制并粘贴到文件中。 更换 resilio.example.com 您的真实域名。 您还应该为此子域添加DNS A记录。

server {
  listen 80;
  server_name resilio.example.com;

  access_log /var/log/nginx/resilio_access.log;
  error_log /var/log/nginx/resilio_error.log;
  location / {
     proxy_pass http://127.0.0.1:8888;
     proxy_set_header Host $host;
     proxy_set_header X-Real-IP $remote_addr;
     proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
  }
}

保存并关闭此文件。 然后测试Nginx的配置。

sudo nginx -t

如果测试成功,请重新加载Nginx。

sudo systemctl reload nginx

现在,在浏览器的地址栏中输入 resilio.example.com 并且您应该能够访问Web GUI。

使用Apache设置Resilio Sync反向代理

Apache是​​众所周知的Web服务器,也可以用作反向代理。 如果您更喜欢Apache而不是Nginx,请使用以下命令将其安装在Ubuntu 18.04、18.10服务器上:

sudo apt install apache2

启动Apache并启用自动启动。

sudo systemctl start apache2

sudo systemctl enable apache2

要将Apache用作反向代理,我们需要启用 proxy 模块和标头模块。

sudo a2enmod proxy proxy_http headers proxy_wstunnel

现在为Resilio Sync创建一个虚拟主机文件。

sudo nano /etc/apache2/sites-available/resilio-sync.conf

将以下行复制并粘贴到文件中。 更换 resilio.example.com 您的真实域名。 您还应该为此子域添加DNS A记录。

<VirtualHost *:80>
   ServerName resilio.example.com
   ErrorDocument 404 /404.html

   ProxyPass / http://localhost:8888/
   ProxyPassReverse / http://localhost:8888/

   ErrorLog ${APACHE_LOG_DIR}/resilio_error.log
   CustomLog ${APACHE_LOG_DIR}/resilio_access.log combined

</VirtualHost>

保存并关闭文件。 然后启用此虚拟主机。

sudo a2ensite resilio-sync.conf

重新启动Apache

sudo systemctl restart apache2

现在您可以通过访问Web UI resilio.example.com

使用HTTPS保护Resilio Sync Web GUI

为了在您通过域名访问Resilio Sync Web UI时加密HTTP通信,我们可以通过安装由Let’s Encrypt发行的免费TLS证书来启用HTTPS。 运行以下命令在Ubuntu 18.04、18.10服务器上安装Let’s Encrypt客户端(certbot)。

sudo apt install certbot

如果使用Nginx,则还需要安装Certbot Nginx插件。

sudo apt install python3-certbot-nginx

接下来,运行以下命令以获取并安装TLS证书。

sudo certbot --nginx --agree-tos --redirect --hsts --staple-ocsp --email [email protected] -d resilio.example.com

如果使用Apache,请安装Certbot Apache插件。

sudo apt install python3-certbot-apache

并运行此命令以获取并安装TLS证书。

sudo certbot --apache --agree-tos --redirect --hsts --staple-ocsp --email [email protected] -d resilio.example.com

哪里

  • --nginx:使用nginx插件。
  • --apache:使用Apache插件。
  • --agree-tos:同意服务条款。
  • --redirect:通过301重定向强制HTTPS。
  • --hsts:将Strict-Transport-Security标头添加到每个HTTP响应。 强制浏览器始终对域使用TLS。 防御SSL / TLS剥离。
  • --staple-ocsp:启用OCSP装订。 有效的OCSP响应被装订到服务器在TLS期间提供的证书。

现在应该获得证书并自动安装。

resilio同步ssl

您可以通过HTTPS访问Resilio Sync Web UI(https://resilio.example.com)。

在防火墙中打开Resilio同步端口

除了Web UI端口,Resilio Sync还需要在公共接口上进行侦听以连接到对等方。 每个设备的监听端口都不同。 您可以通过以下方式在Resilio Sync Web UI中找到它: 偏爱 -> 高级

resilio同步侦听端口ufw

如果在Ubuntu服务器上启用了UFW防火墙,则需要打开此端口。 例如,我的端口是22251,因此我运行以下命令将其打开。

sudo ufw allow 22251

Resilio Sync iOS应用

我使用Resilio Sync在Ubuntu桌面,Ubuntu服务器和iPhone之间同步文件。 有人说iOS应用程序是一场彻底的灾难,但我发现它运行良好。 默认情况下,iOS应用程序中启用了“选择性同步”。 这意味着只有您选择时,单个文件才会被同步。 如果禁用“选择性同步”,则所有文件将立即同步。

如何配置选择性同步

在Web UI中,Resilio Sync告诉您选择性同步是Linux用户的专业功能,但实际上我们可以从命令行配置选择性同步。 每个同步文件夹都有一个隐藏的 .sync Resilio Sync创建的文件夹。 在这个隐藏的文件夹中,有一个名为 IgnoreList,它是UTF-8编码的.txt文件,可帮助您指定单个文件,路径和规则,以便在同步作业期间忽略。 它支持“?” 和“ *”通配符。

例如,我需要在读写模式下在计算机A和B之间同步文件夹。 计算机B包含一个我不想同步到计算机A的文件。这是我忽略该文件的步骤。

  1. 我将文件夹添加到计算机A的Resilio Sync Web UI中。
  2. 现在计算机A有一个 .sync 隐藏的文件夹。
  3. 我在其中添加该文件的名称 IgnoreList 在计算机A上,因此它将拒绝从计算机B接收该文件。
  4. 与计算机B以读写模式共享文件夹。
  5. 同步完成后,我可以在计算机B的文件中添加该文件的名称。 IgnoreList,因此,如果新计算机加入同步,计算机B将不会与其他计算机共享该文件。

结论

我希望本教程可以帮助您在Ubuntu 18.04和Ubuntu 18.10上安装Resilio Sync。 与往常一样,如果您发现这篇文章很有用,请订阅我们的免费新闻通讯以获取更多提示和技巧。 保重🙂

Sidebar