如何在 Ubuntu 12.04 中使用 BitTorrent Sync 同步目录

金钱(警告)

** 状态:** 被贬值

如果您目前正在运行运行 Ubuntu 12.04 的服务器,我们强烈建议升级或迁移到支持的 Ubuntu 版本:

** 原因:** Ubuntu 12.04 已于 2017 年 4 月 28 日到期(EOL)并且不再收到安全补丁或更新。

** 参见相反:** 本指南可能仍然有用作为参考,但可能不会在其他Ubuntu版本上工作. 如果可用,我们强烈建议使用为您正在使用的Ubuntu版本撰写的指南。

介绍


同步文件夹和文件在计算机和设备之间可以以许多不同的方式进行。自动同步内容的一种方法是 BitTorrent Sync. BitTorrent Sync 是基于流行的 BitTorrent 协议进行文件共享的内容同步的方法。

与传统的BitTorrent不同,使用BitTorrent Sync共享的文件是加密的,并且访问是基于自动生成的共享秘密而受到限制的,尽管BitTorrent proper通常用于以公共方式分发文件,但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 下载:

1sudo apt-get update
2sudo apt-get install python-software-properties

安装后,我们可以添加包含更新Ubuntu包的PPA:

1sudo add-apt-repository ppa:tuxpoldo/btsync

点击Enter,添加新的PPA。

一旦新存储库被添加,我们应该更新 apt 来构建新源的包索引,然后安装 BitTorrent Sync 软件:

1sudo apt-get update
2sudo apt-get install btsync

安装期间的初始配置


在安装阶段,您将被问到一系列可以帮助您配置服务的问题,第一个问题是您是否希望进行此配置以定义默认的 BitTorrent Sync 实例。

为了安全目的,我们希望使用自己的用户和组运行BitTorrent Sync。

下一个问题将是您想要使用的端口以便在实例之间进行通信。您可以将选项留在0,以便 btsync 每次启动时选择随机端口。

下一个问题是如何配置UPNP请求,我们不需要。

接下来,定义您的下载和上传限制. 如果您不希望限制其中任何一个,请留下0的默认值以允许最大输出量。

接下来,您将被问及您想要配置服务的界面。如果您将其放置为0.0.0.0,BitTorrent Sync 服务将使用任何可用的界面。如果您希望将其限制在一个网络上,例如 DigitalOcean 私人网络,您可以在这里指定适当的 IP 地址。

接下来,选择一个端口来访问 Web 接口. 默认值为8888,但您可以将其更改到任何开放的端口。

最后,选择一个用户名和密码来保护 Web 界面。

安装将完成,您的服务将开始。

如果您需要在未来某个时候更改配置,您可以随时通过发送通过配置菜单运行:

1sudo dpkg-reconfigure btsync

服务的配置目录是:

1/etc/btsync

请勿手动编辑菜单系统生成的配置文件,但如果您想要调整菜单配置中未涵盖的详细信息,您可以复制配置作为另一个配置的模板。

如何设置共享文件夹


为了与BitTorrent Sync同步文件夹,btsync用户或组需要写入这些文件夹。

首先,让我们创建一个文件夹:

1sudo mkdir /shared

我们需要在将同步的 VPS 实例上完成这些步骤。

赋予 btsync 流程完全所有权


给予 btsync 用户访问的一种方法是简单地将文件夹的所有权授予 btsync 用户:

1sudo chown btsync:btsync /shared

这将允许BitTorrent Sync服务正确地服务本目录的内容,但我们无法作为一个正常用户来写信,这可能是你想要的,但通常不是。

给您的正常用户所有权和 btsync 流程组所有权


如果系统上只有一个正常用户,则可以给该用户对文件夹的所有权,并给 btsync 组对文件夹的所有权:

sudo chown your_user:btsync /shared

然后,您需要给组写权限:

1sudo chmod 775 /shared

这将允许btsync服务访问文件夹,但是,在目录中创建的任何文件将属于您的用户和组。

例如,如果我们在这个文件夹中添加一个名为测试的文件,它将完全属于我们的用户:

cd /shared
touch test
ls -l
-rw-rw-r-- 1 your_user your_user 6 Jan 16 14:36 test

这会导致同步问题,因为btsync进程无法修改该文件,我们希望给它与其中的文件夹相同的组权限,以便进程可以访问写入。

我们可以通过在目录上设置 SGID 位来做到这一点,这将将所有在目录内部创建的新文件组设置为目录本身的组。

1sudo chmod g+s /shared

现在,当我们创建一个文件时,它将获得目录的权限:

cd /shared
touch test2
ls -l
-rw-rw-r-- 1 your_user your_user 6 Jan 16 14:36 test
-rw-rw-r-- 1 your_user btsync 0 Jan 16 14:41 test2

这在获得合适的功能方面有很长的路要走,但这还不够正确。

在继续之前删除我们创建的测试文件:

1rm /shared/test*

将用户添加到 btsync 组,并赋予 root 用户所有权


上面的方法有些工作,但使用BitTorrent Sync传输的文件属于btsync用户和组,这意味着目前,任何服务同步的文件都无法由我们编辑。

我们可以通过将我们的用户添加到btsync组来改变这一点,这将使我们能够修改btsync组可写的文件,这就是我们想要的。

将任何您希望能够使用 btsync 的用户名添加到 btsync 组中:

sudo usermod -a -G btsync your_user

这将将btsync组附加到用户的组定义中,这将允许您通过btsync过程编辑在共享文件夹中创建的文件。

然而,目录仍然由我们的用户拥有,如果我们在系统上有多个用户,这不是一个好方法。我们应该将所有权转移给根用户,以避免常规用户更改文件夹设置。

1sudo chown root:btsync /shared
2sudo chmod g+w /shared

您可能需要退出并重新登录才能对这些更改产生影响。

最后,创建一个适合BitTorrent Sync的共享文件夹的过程是这样的:

sudo mkdir shared_folder
sudo chown root:btsync shared_folder
sudo chmod 2775 shared_folder
sudo usermod -a -G btsync your_user

chmod命令中的第一个2设置了SGID位,就像以前的g+s一样。

使用 BitTorrent Sync Web 接口


现在我们有一个适当配置的BitTorrent同步共享文件夹,我们可以访问Web接口添加我们的文件夹开始同步。

再次,我们必须在我们想要配置同步的每个服务器上做到这一点。

访问 Web 界面,到您的 Droplet 的 IP 地址,然后是您在安装过程中配置的端口。

your_ip_or_domain:8888

BitTorrent Sync login

您需要使用您在安装过程中配置的凭据登录,默认用户名是admin,如果您没有更改它。

您将被介绍一个相当简单的界面开始:

BitTorrent Sync main page

将共享文件夹添加到第一滴


现在我们在我们的 Web 界面,我们可以添加我们的共享文件夹,以便 btsync 过程可以注册它。

在你的第一台机器上,点击右上角的添加文件夹按钮. 这将带来一个框,允许你选择一个目录来共享:

BitTorrent Sync add folder

查找您配置共享的文件夹 在我们的情况下,这是/shared文件夹. 一旦您选择了文件夹,您应该点击生成按钮来生成文件夹的秘密。

BitTorrent Sync generate secret

生成的秘密允许您同步此文件夹与BitTorrent Sync的另一个实例. 这个独特的值基本上是一个密码,允许两种服务相互连接。

点击添加按钮完成这些步骤后,这将添加我们的文件夹到界面,并为您提供一些侧面的按钮来管理此文件夹。

BitTorrent Sync buttons

目前,我们只对秘密/QR按钮感兴趣. 点击此处以引入一个框,允许您选择您想要共享此文件夹的方式。

我们可以通过完全访问授予读取/写入权限的文件夹访问权限。如果我们只想以一种方式同步,例如备份,我们可以只允许读取访问权限。

复制您想要的访问类型的秘密. 我们将在本教程中使用完整的访问。

将共享文件夹和秘密添加到第二滴


现在我们从第一 VPS 获得了我们的秘密,我们可以添加我们在第二 VPS 上创建的共享文件夹,并使用该秘密来同步我们的文件。

首先,您必须登录 Web 界面,就像您在第一个服务器上一样:

second_ip_or_domain:8888

一旦您到达第二个服务器的界面,请再次点击添加文件夹按钮。

添加本地创建的共享文件夹。

这一次,而不是点击生成按钮,我们会将另一个实例的秘密粘贴到秘密框中:

BitTorrent Sync pasted secret

点击添加按钮来创建共享。

过了一会儿,在两个网页界面上,你应该在连接设备和状态部分看到一些新信息:

BitTorrent Sync connected devices

这意味着我们两个BitTorrent Sync实例已经找到对方!前面的图标意味着我们已经给予了完整的访问权限,并将同步文件在两个方向。

测试 同步


现在我们已经配置了同步,让我们测试它是否有效。

在您的一台服务器上(如果您配置了完全访问,不重要哪个),我们会将一些文件添加到我们的共享文件夹中。

作为已获准访问 btsync 组的用户,请在共享目录中创建一些文件:

1cd /shared
2touch file {1..10}

这将在共享目录中创建 10 个文件,我们可以通过键入来检查这些文件是否获得了适当的权限:

1ls -l

1-rw-rw-r-- 1 your_user btsync 0 Jan 16 16:16 file1
2-rw-rw-r-- 1 your_user btsync 0 Jan 16 16:16 file10
3-rw-rw-r-- 1 your_user btsync 0 Jan 16 16:16 file2
4-rw-rw-r-- 1 your_user btsync 0 Jan 16 16:16 file3
5-rw-rw-r-- 1 your_user btsync 0 Jan 16 16:16 file4
6. . .

正如您所看到的,这些文件属于您的用户,但组所有者是btsync。

如果我们在几秒钟后检查我们的其他服务器,我们应该在我们的共享目录中看到我们的文件!

1cd /shared
2ls -l

1-rw-r--r-- 1 btsync btsync 0 Jan 16 16:16 file1
2-rw-r--r-- 1 btsync btsync 0 Jan 16 16:16 file10
3-rw-r--r-- 1 btsync btsync 0 Jan 16 16:16 file2
4-rw-r--r-- 1 btsync btsync 0 Jan 16 16:16 file3
5-rw-r--r-- 1 btsync btsync 0 Jan 16 16:16 file4

正如你所看到的,这些文件被分配给 btuser 和组,这是因为该服务无法确定原始用户名是否存在于第二个系统上。

最后一步是让 btsync 示威者自动设置其同步的文件的文件权限,以便 btsync 组可编写。

我们可以通过重新配置 btsync daemon 来做到这一点,这将打开比我们最初通过配置时的更多选项。

sudo dpkg-reconfigure btsync

您将通过配置菜单运行,这一次有更多的问题。大多数情况下,它应该自动选择您之前的选择,或任何之前未设置的参数的默认选择。

您正在寻找的选项是默认的umask用于由 DAEMON 同步的文件。

我们可以设置适当的 umask 来创建可以由所有者和组(我们的用户是其中的一部分)编写的文件,通过键入以下内容:

002

完成配置后,戴蒙会自动重新启动新的设置,在两个服务器上完成此任务后,您应该能够在一个服务器上创建一个新文件,并在第二个主机上获得正确的可写权限:

touch /shared/write_test

在第二個主機上,一旦檔案同步,你會看到這樣的東西:

-rw-rw-r-- 1 btsync btsync 0 Jan 30 10:44 write_test

在 Web 接口中,您不会看到您的文件已同步,因为文件不包含任何实际数据. 如果我们添加一些内容到我们的文件,接口将更新,以显示我们同步了多少文件:

1for item in /shared/file{1..10}; do echo "some content" > $item; done

BitTorrent Sync file size

结论


现在你已经配置了你的服务器,你可以轻松地在它们之间传输文件. 你也可以配置多个文件夹自动同步. 这可以提供一些有趣的选项来处理配置文件等。

该应用程序在多台计算机之间如何同步方面相当灵活。您可以创建一次性秘密,以确保没有人共享您的目录,您只能与特定主机共享,并在移动设备之间同步。

By Justin Ellingwood
Published At
Categories with 技术
comments powered by Disqus