介绍
在计算机和设备之间同步文件夹和文件可以以许多不同的方式完成。自动同步内容的一种方法是 BitTorrent的同步 。 BitTorrent Sync是一种基于流行的BitTorrent协议进行文件共享的同步内容的方法。 与传统的BitTorrent不同,使用BitTorrent Sync共享的文件被加密,访问受限于基于自动生成的共享密钥。虽然BitTorrent适用于通常用于以公共方式分发文件,BitTorrent同步常常被用作私有方法来同步和共享文件之间的设备之间由于其增加的安全措施。 在本指南中,我们将讨论如何在两个Ubuntu 12.04 VPS实例上安装和配置BitTorrent Sync。安装BitTorrent同步
首先,我们需要在我们的Ubuntu 12.04实例上安装BitTorrent Sync。如果您想在本地计算机上安装BitTorrent的同步,让您与您的服务器同步,你可以找到二进制包 在这里 。 BitTorrent Sync在Ubuntu 12.04上相对容易安装,但它不包括在默认存储库中。我们可以使用PPA(个人包存档),以便我们可以访问维护的BitTorrent Sync存储库,并用我们的正常apt工具管理它。 Ubuntu的12.04包含在一个叫包中的工具PPApython-software-properties
,我们可以通过恰当下载:
sudo apt-get update
sudo apt-get install python-software-properties
安装完成后,我们可以添加包含更新的Ubuntu软件包的PPA:
sudo add-apt-repository ppa:tuxpoldo/btsync
按“回车”添加新的PPA。 添加新存储库后,我们应该更新apt以为新源创建一个包索引,然后安装BitTorrent Sync软件:
sudo apt-get update
sudo apt-get install btsync
安装期间的初始配置
在安装阶段,系统会询问您一些问题,帮助您配置服务。第一个问题询问您是否要执行此配置以定义默认的BitTorrent Sync实例。选择“是”。 我们希望与其自己的用户和组为安全目的操作BitTorrent同步。选择btsync
在接下来的问题。 下一个问题将是关于您希望用于在实例之间通信的端口。您可以在离开的选择
0
有btsync选择一个随机端口每次启动时。如果您正在为服务器配置防火墙(强烈建议),您可能需要定义特定端口。 下一个问题询问配置UPNP请求,我们不需要。选择“否”。 接下来,定义下载和上传限制。如果你不希望限制其中任意一个,留下的默认
0
,允许最大吞吐量。 接下来,系统会询问您要为其配置服务的接口。如果你离开它
0.0.0.0
,BitTorrent的同步服务将使用任何可用的界面。如果您希望将其限制到一个网络(例如DigitalOcean专用网络),您可以在此处指定相应的IP地址。请注意,您无法使用专用网络同步到家庭计算机。 接下来,选择一个端口来访问Web界面。默认值是
8888
,但你可以改变任何打开的端口。 最后,选择用户名和密码以保护Web界面。 安装将完成,您的服务将启动。 如果以后需要更改配置,您可以随时通过配置菜单运行:
sudo dpkg-reconfigure btsync
服务的配置目录为:
/etc/btsync
不要手动编辑菜单系统生成的配置文件。但是,如果要调整菜单配置中未涵盖的详细信息,则可以复制配置以用作另一配置的模板。
如何配置共享文件夹
为了使用BT同步,同步文件夹btsync
用户或组需要写访问的文件夹。有几种不同的方法来实现这一点。 首先,让我们创建文件夹:
sudo mkdir /shared
我们需要在要同步的两个VPS实例上完成这些步骤。
给予btsync进程完全所有权
给btsync用户访问的一种方法是简单地将文件夹的所有权授予btsync用户:sudo chown btsync:btsync /shared
这将允许BitTorrent同步服务正确地服务此目录的内容,但我们不能写作为一个普通用户。这可能是你想要的,但它通常不是。
提供正常的用户所有权和btsync进程组所有权
如果系统上只有一个普通用户,您可以授予文件夹的用户所有权,并授予文件夹的btsync组所有权:sudo chown your_user:btsync /shared然后,您必须授予组写入权限:
sudo chmod 775 /shared
这将允许btsync服务访问该文件夹。但是,在目录中创建的任何文件将由您的用户和组拥有。 举例来说,如果我们将文件添加到该文件夹名为
test
,这将是完全由我们的用户拥有:
cd /shared touch test ls -l
-rw-rw-r-- 1 your_user your_user 6 Jan 16 14:36 test这将导致同步的问题,因为btsync进程不能修改文件。我们想给它与它所在的文件夹相同的组权限,以便该进程具有写访问权限。 我们可以通过设置目录上的SGID位来实现。这将将目录中创建的所有新文件的组设置为目录本身的组。这将允许正确的写访问修改的东西:
sudo 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这对于获得适当的功能有很大的帮助,但它还不是很对。 删除我们创建的测试文件,然后继续:
rm /shared/test*
将您的用户添加到btsync组并授予root用户所有权
上面的方法有点工作,但使用BitTorrent Sync传输的文件由btsync用户和组拥有。这意味着目前,由服务同步的任何文件将不能由我们编辑。 我们可以通过将我们的用户添加到btsync组来改变这一点。这将允许我们修改可由btsync组写入的文件,这是我们想要的。 将您希望能够使用btsync的任何用户名添加到btsync组:sudo usermod -a -G btsync your_user这将btsync组附加到您的用户的组定义。这将允许您编辑由btsync进程在共享文件夹中创建的文件。 但是,目录仍然由我们的用户所有,这不是一个好的方法来处理事情,如果我们有多个用户在系统上。我们应将所有权转让给root用户,以避免常规用户更改文件夹设置。我们也应该允许组写权限,使 任何人 btsync组中添加内容:
sudo chown root:btsync /shared
sudo 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第一个“2”的
chmod
命令设置了同样的方式,“G + S”以前做了SGID位。这只是一个更简洁的组合这些命令的方法。
访问BitTorrent Sync Web界面
现在,我们有一个文件夹配置适当的BitTorrent同步共享,我们可以访问Web界面添加我们的文件夹开始同步。 同样,我们将在每个希望配置同步的服务器上执行此操作。 通过转到您的Droplet的IP地址访问Web界面,然后是您在安装期间配置的端口。默认情况下,这是8888
:
your_ip_or_domain:8888您必须使用在安装期间配置的凭据登录。默认用户名是
admin
,如果你不改变它。 您将看到一个非常简单的界面来开始:
将共享文件夹添加到第一个Droplet
现在我们在我们的web界面,我们可以添加我们的共享文件夹,以便btsync进程可以注册它。 在您的第一台机器上,单击右上角的“添加文件夹”按钮。这将打开一个框,允许您选择要共享的目录: 找到您配置为共享的文件夹。在我们的例子,这是/shared
文件夹。一旦您选择了一个文件夹,您应该点击“生成”按钮生成文件夹的密码。
生成的密码允许您将此文件夹与另一个BitTorrent Sync实例同步。这个唯一值基本上是一个密码,允许两个服务相互连接。 完成这些步骤后,单击“添加”按钮。这将添加我们的文件夹到界面,并给你一些按钮来管理这个文件夹。
现在,我们只对“Secret / QR”按钮感兴趣。单击此以打开一个框,将允许您选择如何共享此文件夹。 我们可以通过“完全访问”授予对具有读/写权限的文件夹的访问权限。如果我们只想同步一种方式,例如备份,我们只能允许读取访问。为每种类型的访问提供的秘密不同。 复制所需访问类型的密钥。我们将在本教程中使用完全访问。
将共享文件夹和密钥添加到第二个Droplet
现在我们有了我们的第一个VPS的秘密,我们可以添加我们在第二个VPS上创建的共享文件夹,并使用秘密来同步我们的文件。 首先,您必须像第一台服务器一样登录Web界面:second_ip_or_domain:8888进入第二台服务器的界面后,再次点击“添加文件夹”按钮。 添加本地创建的共享文件夹。 这一次,我们将不再单击“生成”按钮,而是将另一个实例的密钥粘贴到“秘密”框中: 单击“添加”按钮创建共享。 稍后,在两个Web界面中,您应该在“已连接的设备和状态”部分中看到一些新信息: 这意味着我们的两个实例的BitTorrent同步找到了对方!前面的图标表示我们已授予完全访问权限,文件将在两个方向同步。
测试同步
现在我们已经配置同步,让我们测试看它是否工作。 在您的其中一个服务器(无论哪一个如果您配置完全访问),我们将添加一些文件到我们的共享文件夹。 作为已授予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守护进程来做到这一点。这将打开比我们最初通过配置时给出的更多的选项。开始在两个同步机上重新配置:键入:
sudo dpkg-reconfigure btsync您将运行配置菜单,这次有更多的问题。在大多数情况下,它应该自动选择您之前的选择,或任何以前未设置的参数的默认选择。你必须记住不要跳过的一个问题是密码提示。 你正在寻找的选项是默认
umask
由守护进程同步文件。 我们可以设置相应的umask来创建可由所有者和组(我们的用户是其一部分)写入的文件,方法是输入:
002完成配置,守护程序应使用新设置自动重新启动。在两个服务器上完成此任务后,您应该能够在一个服务器上创建一个新文件,并在第二个主机上给予正确的可写权限:
touch /shared/write_test在第二个主机上的文件同步,你会看到像这样的东西:
-rw-rw-r-- 1 btsync btsync 0 Jan 30 10:44 write_test在Web界面中,您不会看到您的文件已同步,因为文件不包含任何实际数据。如果我们向文件中添加一些内容,界面将会更新,以显示我们已同步的文件数量:
for item in /shared/file{1..10}; do echo "some content" > $item; done
结论
现在,您已配置您的服务器,您可以轻松地在它们之间传输文件。您还可以配置多个文件夹以自动同步。这可以提供一些有趣的选项来处理配置文件等。 该应用程序在如何在多台计算机之间同步是相当灵活的。您可以创建一次性秘密,以确保没有人共享对您的目录的访问,您可以只与特定主机共享,并在您的移动设备之间同步。 BitTorrent的同步提供通过归档版本控制系统.SyncArchive
文件中的目录和能率的限制,以确保您有可用于其他应用程序的带宽。
作者:Justin Ellingwood