本文介绍在Ubuntu 18.04/18.10桌面和服务器操作系统上安装Resilio Sync(BTSync)的方法,与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软件包提供,参考Ubuntu 18.04/16.04/Debian 9上安装add-apt-repository的方法): 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
提示:运行上述命令后,按Q键恢复对终端的控制。 如果它没有运行,你可以用以下命令启动它: sudo systemctl start resilio-sync 默认情况下,Resilio Sync不会在启动时启动,可以启用自动启动: sudo systemctl enable resilio-sync Resilio Sync作为rslsync用户运行,Web UI按照/etc/resilio-sync/config.json配置文件中的指定侦听127.0.0.1:8888。
设置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:
然后选择设备名称并单击Get started:
并输入你刚刚创建的用户名和密码:
登录后,你可以将计算机上的文件夹共享给其他设备或从其他设备接收文件夹。
与其他设备共享文件夹及从其他设备接收文件夹 1、与其他设备共享文件夹 要在计算机上共享文件夹,请单击左上角的+按钮,然后选择标准文件夹:
然后选择计算机上的文件夹:
可能会遇到以下错误消息: 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(修改)标志之前,紧接着是访问控制列表条目(u:rslsync:rwx)。 如果您看到此错误: sudo: setfacl: command not found 然后安装acl包并重新运行上面的setfacl命令: sudo apt install acl 现在应该可以将主文件夹添加为共享文件夹。 添加文件夹后,可以通过链接,密钥或QR代码共享此文件夹:
如果共享文件夹很大,则Resilio Sync需要一些时间来索引内容。 2、从其他设备接收文件夹 要从其他设备接收文件夹,请单击左上角的+按钮,然后选择“输入密钥或链接”:
然后输入密钥或链接:
在Ubuntu 18.04,18.10服务器上使用Resilio Sync 你可以从上面提到的存储库在Ubuntu 18.04、18.10服务器上安装Resilio Sync,如果你的服务器位于云中,则需要设置反向代理才能访问Web UI,因为Web UI仅侦听本地主机,配置反向代理后,可以通过域名访问Web UI。 1、使用Nginx设置Resilio Sync反向代理 如今,Nginx作为Web服务器和反向代理变得越来越流行,使用以下命令在Ubuntu 18.04、18.10服务器上安装Nginx: sudo apt install nginx 参考:在Ubuntu 18.04 Server中安装LEMP的方法[Nginx、MariaDB、PHP7.2]。 启动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了。 2、使用Apache设置Resilio Sync反向代理 Apache是众所周知的Web服务器,也可以用作反向代理,如果你更喜欢Apache到Nginx,请在Ubuntu 18.04、18.10服务器上安装它: sudo apt install apache2 参考:在Ubuntu 18.04服务器上安装LAMP Stack的方法[Apache、MySQL、PHP]。 启动Apache并启用自动启动: sudo systemctl start apache2 sudo systemctl enable apache2 要将Apache用作反向代理,我们需要启用代理模块和头模块: 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 现在,你可以通过resilio.example.com访问Web UI了。
使用HTTPS保护Resilio Sync Web GUI 要在通过域名访问Resilio Sync Web UI时加密HTTP流量,我们可以通过安装从Let's Encrypt发出的免费TLS证书来启用HTTPS,运行以下命令在Ubuntu 18.04、18.10服务器上安装Let的加密客户端(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 you@example.com -d resilio.example.com 如果使用Apache,请安装Certbot Apache插件: sudo apt install python3-certbot-apache 并运行此命令以获取并安装TLS证书: sudo certbot --apache --agree-tos --redirect --hsts --staple-ocsp --email you@example.com -d resilio.example.com 说明: --nginx:使用nginx插件。 --apache:使用Apache插件。 --agree-tos:同意服务条款。 --redirect:通过301重定向强制HTTPS。 --hsts:将Strict-Transport-Security标头添加到每个HTTP响应中,强制浏览器始终对域使用TLS,防御SSL/TLS剥离。 --staple-ocsp:启用OCSP Stapling,将有效的OCSP响应装订到服务器在TLS期间提供的证书。 现在应该获取并自动安装证书:
你可以通过HTTPS(https://resilio.example.com)访问Resilio Sync Web UI。
在防火墙中打开Resilio Sync端口 除了Web UI端口之外,Resilio Sync还需要侦听公共接口以连接到对等端,每个设备的侦听端口都不同,可以通过转到Preference->Advanced在Resilio Sync Web UI中找到它:
如果你在Ubuntu服务器上启用了UFW防火墙(参考:Debian、Ubuntu、Linux Mint系统中的UFW防火墙入门教程),则需要打开此端口,例如,我的端口是22251,所以我运行以下命令来打开它: sudo ufw allow 22251
结语 上面的教程能够帮助你在Ubuntu 18.04、Ubuntu 18.10系统上安装Resilio Sync,安装成功后就可以在Ubuntu桌面、Ubuntu服务器和iPhone之间同步文件了。
相关主题 |