如何在 Ubuntu 12.04 中使用 BitTorrent Sync 同步目录
状态:已弃用
本文涵盖不再受支持的 Ubuntu 版本。如果您目前正在运行运行 Ubuntu 12.04 的服务器,我们强烈建议您升级或迁移到受支持的 Ubuntu 版本:
- 升级到 Ubuntu 14.04。
- 从 Ubuntu 14.04 升级到 Ubuntu 16.04
- 将服务器数据迁移到支持的版本
原因:
请参阅:
介绍
可以通过许多不同的方式在计算机和设备之间同步文件夹和文件。一种自动同步内容的方法是 BitTorrent Sync。 BitTorrent Sync 是一种基于流行的文件共享 BitTorrent 协议同步内容的方法。
与传统的 BitTorrent 不同,使用 BitTorrent Sync 共享的文件是加密的,并且根据自动生成的共享秘密限制访问。虽然 BitTorrent 本身通常用于以公共方式分发文件,但 BitTorrent Sync 由于其添加的安全措施,通常用作在设备之间同步和共享文件的私有方法。
在本指南中,我们将讨论如何在两个 Ubuntu 12.04 VPS 实例上安装和配置 BitTorrent Sync。
安装 BitTorrent 同步
首先,我们需要在两个 Ubuntu 12.04 实例上安装 BitTorrent Sync。如果您想在本地计算机上安装 BitTorrent Sync 以允许您与服务器同步,您可以在此处找到二进制包。
BitTorrent Sync 在 Ubuntu 12.04 上安装相对容易,但它不包含在默认存储库中。我们可以使用 PPA(个人包存档),以便我们可以访问维护的 BitTorrent Sync 存储库并使用我们的常规 apt 工具对其进行管理。
Ubuntu 12.04 在名为 python-software-properties
的包中包含了 PPA 工具,我们可以通过 apt 下载它:
sudo apt-get update
sudo apt-get install python-software-properties
安装后,我们可以添加包含更新的 Ubuntu 软件包的 PPA:
sudo add-apt-repository ppa:tuxpoldo/btsync
按 \enter 添加新的 PPA。
添加新存储库后,我们应该更新 apt 为新源构建包索引,然后安装 BitTorrent Sync 软件:
sudo apt-get update
sudo apt-get install btsync
安装期间的初始配置
在安装阶段,系统会询问您一些可以帮助您配置服务的问题。第一个问题询问您是否愿意进行此配置以定义默认的 BitTorrent Sync 实例。选择“是”。
出于安全目的,我们希望使用自己的用户和组来操作 BitTorrent Sync。为下一个问题选择 btsync
。
下一个问题将是关于您希望用于在实例之间进行通信的端口。您可以将选择保留在 0
,让 btsync 在每次启动时选择一个随机端口。如果您正在为您的服务器配置防火墙(强烈推荐),您可能想要定义一个特定的端口。
下一个问题询问有关配置我们不需要的 UPNP 请求的问题。选择“否”。
接下来,定义您的下载和上传限制。如果您不想限制其中任何一个,请保留默认值 0
以允许最大吞吐量。
接下来,系统会询问您希望为哪个接口配置服务。如果您将其保留在 0.0.0.0
,BitTorrent Sync 服务将使用任何可用的接口。如果您希望将其限制在一个网络中,例如 DigitalOcean 专用网络,您可以在此处指定适当的 IP 地址。请注意,您将无法使用专用网络同步到您的家庭计算机。
接下来,选择一个端口来访问 Web 界面。默认值为 8888
,但您可以将其更改为任何开放端口。
最后,选择一个用户名和密码来保护 Web 界面。
安装将完成,您的服务将启动。
如果您将来需要更改配置,您可以随时通过发出以下命令来运行配置菜单:
sudo dpkg-reconfigure btsync
该服务的配置目录是:
/etc/btsync
不要手动编辑菜单系统生成的配置文件。但是,如果您想调整菜单配置中未涵盖的详细信息,则可以复制配置以用作另一个配置的模板。
如何配置共享文件夹
为了使用 BitTorrent Sync 同步文件夹,btsync
用户或组需要对文件夹的写入权限。有几种不同的方法可以实现这一点。
首先,让我们创建文件夹:
sudo mkdir /shared
我们需要在您将要同步的两个 VPS 实例上完成这些步骤。
赋予 btsync 进程完全所有权
授予 btsync 用户访问权限的一种方法是简单地将文件夹的所有权授予 btsync 用户:
sudo chown btsync:btsync /shared
这将允许 BitTorrent Sync 服务正确提供此目录的内容,但我们无法以普通用户身份写入此目录。这可能是您想要的,但通常不是。
赋予您的普通用户所有权和 btsync 进程组所有权
如果系统上只有一个普通用户,您可以将文件夹的所有权授予该用户,并将文件夹的所有权授予 btsync 组:
<前>
然后,您必须授予该组写权限:
sudo chmod 775 /shared
这将允许 btsync 服务访问该文件夹。但是,目录内创建的任何文件都将归您的用户和组所有。
例如,如果我们向这个名为 test
的文件夹添加一个文件,它将完全归我们的用户所有:
<前>
这将导致同步出现问题,因为 btsync 进程无法修改文件。我们要赋予它与其所在文件夹相同的组权限,以便该进程具有写入权限。
我们可以通过在目录上设置 SGID 位来做到这一点。这会将目录内创建的所有新文件的组设置为目录本身的组。这将允许适当的写访问权限来修改内容:
sudo chmod g+s /shared
现在,当我们创建一个文件时,它会被赋予目录的权限:
<前>
这对获得适当的功能大有帮助,但还不是很正确。
在继续之前删除我们创建的测试文件:
rm /shared/test*
将您的用户添加到 btsync 组并授予根用户所有权
上面的方法有些工作,但是使用 BitTorrent Sync 传输的文件归 btsync 用户和组所有。这意味着目前,我们无法编辑该服务同步的任何文件。
我们可以通过将我们的用户添加到 btsync 组来更改它。这将允许我们修改 btsync 组可写的文件,这正是我们想要的。
将您希望能够使用 btsync 的任何用户名添加到 btsync 组:
<前>
这会将 btsync 组附加到用户的组定义中。这将允许您编辑 btsync 进程在共享文件夹中创建的文件。
但是,该目录仍归我们的用户所有,如果系统上有多个用户,这不是处理事情的好方法。我们应该将所有权转移给 root 用户,以避免普通用户更改文件夹设置。我们还应该允许组写入权限,以便 btsync 组中的任何人 都可以添加内容:
sudo chown root:btsync /shared
sudo chmod g+w /shared
您可能需要注销并重新登录才能使这些更改生效。
最后,创建适用于 BitTorrent Sync 的共享文件夹的过程如下所示:
<前>
chmod
命令中的第一个 \2 设置 SGID 位的方式与之前的 \g+s 相同。这只是组合这些命令的一种更简洁的方式。
访问 BitTorrent Sync Web 界面
现在我们有一个为 BitTorrent Sync 共享适当配置的文件夹,我们可以访问 Web 界面来添加我们的文件夹以开始同步。
同样,我们必须在我们希望配置同步的每台服务器上执行此操作。
通过转到您的 Droplet 的 IP 地址,然后是您在安装期间配置的端口来访问 Web 界面。默认情况下,这是 8888
:
<前>

您将必须使用您在安装期间配置的凭据登录。如果您未更改默认用户名,则为 admin
。
您将看到一个相当简单的界面来开始:

将共享文件夹添加到第一个 Droplet
现在我们在我们的网络界面中,我们可以添加我们的共享文件夹,以便 btsync 进程可以注册它。
在您的第一台机器上,单击右上角的“添加文件夹”按钮。这将弹出一个框,您可以在其中选择要共享的目录:

找到您为共享配置的文件夹。在我们的例子中,这是 /shared
文件夹。选择文件夹后,您应该单击“生成”按钮为该文件夹生成一个秘密。

生成的秘密允许您将此文件夹与另一个 BitTorrent Sync 实例同步。这个唯一值基本上是一个允许两个服务相互连接的密码。
完成这些步骤后,单击“添加”按钮。这会将我们的文件夹添加到界面中,并在侧面为您提供一些按钮来管理该文件夹。

现在,我们只对“Secret/QR”按钮感兴趣。单击此按钮会弹出一个框,您可以在其中选择共享此文件夹的方式。
我们可以通过“完全访问”授予对文件夹的读/写权限。如果我们只想以一种方式同步,比如备份,我们可以只允许读访问。为每种访问提供的秘密不同.
复制所需访问类型的密码。我们将在本教程中使用完全访问权限。
将共享文件夹和机密添加到第二个 Droplet
现在我们有了第一个 VPS 的秘密,我们可以添加我们在第二个 VPS 上创建的共享文件夹,并使用这个秘密来同步我们的文件。
首先,您必须像使用第一个服务器一样登录到 Web 界面:
<前>
进入第二台服务器的界面后,再次单击“添加文件夹”按钮。
添加本地创建的共享文件夹。
这一次,我们不再点击“生成”按钮,而是将另一个实例的秘密粘贴到“秘密”框中:

单击“添加”按钮创建共享。
片刻之后,在两个 Web 界面中,您应该会在“连接的设备和状态”部分看到一些新信息:

这意味着我们的两个 BitTorrent Sync 实例找到了对方!前面的图标表示我们已授予完全访问权限,文件将双向同步。
测试同步
现在我们已经配置了同步,让我们测试它是否有效。
在您的一台服务器上(如果您配置了完全访问权限,那么哪台服务器并不重要),我们将向我们的共享文件夹添加一些文件。
作为已获得 btsync 组访问权限的用户,在共享目录中创建一些文件:
cd /shared
touch file {1..10}
这将在共享目录中创建 10 个文件。我们可以通过键入以下内容来检查是否已授予适当的权限:
ls -l
-rw-rw-r-- 1 your_user btsync 0 Jan 16 16:16 file1
-rw-rw-r-- 1 your_user btsync 0 Jan 16 16:16 file10
-rw-rw-r-- 1 your_user btsync 0 Jan 16 16:16 file2
-rw-rw-r-- 1 your_user btsync 0 Jan 16 16:16 file3
-rw-rw-r-- 1 your_user btsync 0 Jan 16 16:16 file4
. . .
如您所见,文件归您的用户所有,但组所有者是 btsync。这正是我们想要的。
如果我们在几秒钟后检查我们的其他服务器,我们应该在我们的共享目录中看到我们的文件!
cd /shared
ls -l
-rw-r--r-- 1 btsync btsync 0 Jan 16 16:16 file1
-rw-r--r-- 1 btsync btsync 0 Jan 16 16:16 file10
-rw-r--r-- 1 btsync btsync 0 Jan 16 16:16 file2
-rw-r--r-- 1 btsync btsync 0 Jan 16 16:16 file3
-rw-r--r-- 1 btsync btsync 0 Jan 16 16:16 file4
如您所见,文件已提供给 btuser 和组。这是因为该服务无法确定原始用户名是否存在于第二个系统上。
最后一步是让 btsync 守护进程自动将它同步的文件的文件权限设置为 btsync 组可写。如果您提供完全访问权限以便您的用户编辑已同步的文件,则这是必要的。
我们可以通过重新配置 btsync 守护进程来做到这一点。与我们最初进行配置时相比,这将打开更多选项。通过键入以下内容开始在您的两台同步机器上重新配置:
<前>
您将运行配置菜单,这次会遇到更多问题。在大多数情况下,它应该自动选择您之前的选择,或者任何之前未设置的参数的默认选择。您必须记住不要跳过的一个问题是密码提示。
您正在查看的选项是守护进程同步文件的默认 umask
。
我们可以设置适当的 umask 来创建所有者和组(我们的用户是其中的一部分)都可写的文件,方法是键入:
<前>
完成配置后,守护程序应使用新设置自动重启。在两台服务器上完成此任务后,您应该能够在一台服务器上创建一个新文件,并且它将在第二台主机上获得正确的可写权限:
<前>
一旦文件同步,在第二个主机上,你会看到类似这样的东西:
<前>
在 Web 界面中,您不会看到您的文件已同步,因为这些文件不包含任何实际数据。如果我们向文件添加一些内容,界面将更新以显示我们已同步了多少文件:
for item in /shared/file{1..10}; do echo "some content" > $item; done

结论
现在您已经配置了服务器,您可以轻松地在它们之间传输文件。您还可以将多个文件夹配置为自动同步。这可以提供一些有趣的选项来处理配置文件等。
该应用程序在如何在多台计算机之间进行同步方面相当灵活。您可以创建一次性机密以确保没有人共享对您目录的访问权限,您可以仅与特定主机共享,并在您的移动设备之间同步。 BitTorrent Sync 通过目录中的 .SyncArchive
文件提供存档版本控制系统,并且可以限制速率以确保您有可用带宽用于其他应用程序。