Resilio Sync
Resilio Sync (原名: BitTorrent Sync 或 BTSync) 是一个专有的文件共享系统,它依赖于 BitTorrent 对等网络 (P2P) 协议。
它不使用中央服务器来存档每个文件,而是使用设备之间的点对点连接,因此对数据存储和/或传输速度没有限制。用户的数据专门存储在用户选择与之同步的设备上,因此需要至少两台用户设备或“节点”在线。如果多个设备同时连接,文件将在它们之间以网状网络拓扑结构共享。
设备之间的所有流量都使用 AES-128 在计数器模式下加密,使用唯一的会话密钥。此密钥从“密钥”派生而来,而“密钥”本身是一个随机的 21 字节密钥 Base32 编码。通过交出“密钥”,文件和文件夹可以与其他用户共享。当设备添加文件夹进行同步时,会生成一个密钥。从现在开始,每个想要同步该文件夹的设备都必须知道密钥。同步没有速度或大小限制,只要两个设备都有足够的磁盘空间。
安装
安装 rslsyncAUR 软件包,其中包含用于管理 rslsync 守护程序的 systemd 服务定义。此软件包为系统/root 操作创建一个默认的 /etc/rslsync.conf
。在启用 rslsync.service
之前,对这些文件进行所需的更改(例如,登录 id 和密码)。
或者,可以从 官方网站 下载裸 .tar.gz 打包的可执行文件。本指南的其余部分假定您正在使用 rslsyncAUR 软件包。
用法
Resilio Sync 的 Linux 客户端不使用典型的 GUI,而是设置一个可通过 localhost:8888
访问的 WebUI 服务器。共享文件夹也可以在配置文件中静态配置,但这样做会禁用 WebGUI。
安装完成后,您首先需要创建一个配置文件,位于 ~/.config/rslsync/rslsync.conf
,请参阅 #配置。您还需要创建 storage_path
目录。完成这些操作后,启动并在(如果您希望它在启动时启动) 启动/启用 用户服务 rslsync
(即,使用 --user
标志)。
该服务将以调用命令的用户身份运行。请注意,上述命令不是以 root 身份运行的:这样做可能会导致一个神秘的错误,指出 D-Bus 拒绝了连接。
- 重要的是要确保当
rslsync
以用户身份运行时,rslsync.conf
文件和rslsync.pid
文件将要位于的目录具有正确的用户权限,即归调用命令的用户所有。 否则将阻止服务运行。如果用户权限正确,但rslsync
在启用后仍然无法运行,请重启您的系统。 - 如果在无头服务器上运行
rslsync
,请启用持久化以启动rslsync
并使其在用户会话之外运行:Systemd/User#自动启动 systemd 用户实例。
您也可以将其作为 rslsync.service
系统用户运行(不带 --user
标志)。
此用户的配置位于 /etc/rslsync.conf
,元数据默认保存在 /var/lib/rslsync/
中。您应该查看配置设置,特别是用户和密码,请参阅下文。
配置
可以使用以下命令创建示例配置文件
# rslsync --dump-sample-config > ~/.config/rslsync/rslsync.conf
您可能想要更改某些设置,包括
- device_name
- storage_path
- webui/login
- webui/password
- 如果
storage_path
目录不存在,rslsync
可执行文件不会创建它,您必须手动执行此操作或使用#自动创建配置文件。 storage_path
设置定义了元数据将保存的位置,不是同步文件本身。同步文件的保存位置是在 WebGUI 中按文件夹配置的。- 配置选项
webui/password_hash_unified
是使用预先添加的webui/password_hash_salt_unified
计算的,如果使用了任何 salt 的话。
自动创建配置文件
rslsyncAUR 软件包提供了一个名为 rslsync.service
的 systemd 用户服务,如果启用,它会在用户的 rslsync_user.service
启动时触发。然后,如果配置文件尚不存在,则会创建一个具有默认值的配置文件。
rslsync
实例的端口将是 7889 + $UID
,而不是 8888。如果您的 $UID
是“1000”,则端口将为 8889。安装脚本默认情况下为所有用户启用该服务。尽管这在很大程度上违背了其目的,但可以禁用 rslsync.service
。
然后,各个用户可以启用 rslsync_user.service
用户单元。
如果 rslsync_user.service
不存在,则会创建 ~/.config/rslsync/rslsync.conf
,并猜测某些默认设置值
- device_name:
$USER@$HOSTNAME
- storage_path:
~/.rlsync
- webui/login:
$USER/password
脚本还会创建配置文件中设置的 storage_path
目录(如果该目录不存在)。这与配置文件的创建无关。
故障排除
缺少存储路径
如果您启动了服务但无法访问 WebUI,请检查系统范围实例或用户单元的 单元状态。
一个常见的错误是 Storage path specified in config file does not exist.
。这很容易通过 mkdir ~/.rslsync
或您设置的任何 storage_path
来修复。
忽略某些文件/文件夹同步
如果您不希望 Resilio Sync 跟踪同步文件夹中的某些文件,请使用 IgnoreList
。 IgnoreList
位于隐藏的 .sync
文件夹中。
IgnoreList
是一个 UTF-8 编码的 .txt 文件,允许您指定在同步作业期间要忽略的单个文件、路径或规则。 IgnoreList
文件的每一行代表一个单独的规则。所有属于忽略过滤器的文件都不会被索引,也不会在 Sync 主视图的“大小”列中计数。
它支持 '?' 和 '*' 通配符。
请注意,IgnoreList
仅应用于包含它的文件夹,并且不适用于已同步的文件。 如果您将已索引的文件添加到 IgnoreList
,它们将在其他同步设备上被删除。为了避免这种情况
- 从所有设备上删除同步文件夹。
- 在所有设备上修改
IgnoreList
文件,使其包含相同的信息。 - 重新添加修改后的文件夹。
有关更多详细信息,请参阅 忽略 Sync 中的文件 (IgnoreList)
如果您收到错误消息 error while loading shared libraries: libcrypt.so.1
,在使用二进制文件或作为服务启动 rslsync 时,请安装软件包 libxcrypt-compat。