树莓派折腾记:安装和配置Syncthing

文章更新

20170606 初次成文

问题提出

在之前的文章中:

FolderSync:文件夹同步&备份利器

小苏介绍过使用FolderSync在设备间同步文件的方法,同样的,FolderSync也适用于树莓派,比如你可以采用FTP方式或者SFTP方式在树莓派和局域网设备之间同步文件。但这两种方式有一个最大的缺点,就是"速度慢"。在一般情况下,在局域网中使用FTP或者SFTP的传输方式只能达到3m/s左右的速度(树莓派的网口为100Mbps),因此FTP/SFTP方式显然不能满足我们对于文件同步的需求,所以,我们需要一种更快的的方式来完成树莓派与各设备间的文件同步工作,Syncthing就是方案之一,使用Syncthing在局域网各设备之间同步文件,可以达到6m/s的速度。

解决方案

Syncthing是一个跨平台,开源且免费的基于P2P的文件同步解决方案,支持Windows,Mac,Linux,Android。有些遗憾的是,目前Syncthing暂不支持iOS平台。

Github项目:

https://github.com/syncthing/syncthing

Release页面:

https://github.com/syncthing/syncthing/releases

接下来小苏为大家介绍一下如何在树莓派上安装和启用Syncthing:

因为树莓派的CPU是ARM架构,所以我们需要在Release页面获取到编译好的且适用于ARM架构的程序文件压缩包地址:

进入Release页面,找到文件名形如syncthing-linux-arm-xxxxx.tar.gz的最新版本("xxxxx"代表版本号),并获取该版本对应的链接。

例如截至发稿前,Syncthing的最新版本为v0.14.30-rc.1,在Release页面内,ARM架构的程序文件压缩包名称为syncthing-linux-arm-v0.14.30-rc.1.tar.gz,所以我们可以得到此压缩包的下载地址为:https://github.com/syncthing/syncthing/releases/download/v0.14.30-rc.1/syncthing-linux-arm-v0.14.30-rc.1.tar.gz

获取到下载链接后,登录树莓派的SSH,因为官方不推荐以Root用户运行Syncthing,所以以下内容在pi用户下操作(命令中未提到sudo则无需加sudo)。

cd ~ #定位到pi用户的家目录

wget https://github.com/syncthing/syncthing/releases/download/v0.14.30-rc.1/syncthing-linux-arm-v0.14.30-rc.1.tar.gz #下载二进制文件压缩包至pi用户家目录

tar -zxvf syncthing-linux-arm-v0.14.30-rc.1.tar.gz #解压下载好的压缩包

解压完成后,执行ls命令,我们会发现从压缩文档中解压出了一个名为syncthing-linux-arm-v0.14.30-rc.1的目录,为了方便以后的操作,我们将此文件夹重命名为:.syncthing:

mv syncthing-linux-arm-v0.14.30-rc.1 .syncthing #重命名文件夹

cd .syncthing

chmod +x syncthing #将Syncthing的程序文件赋予可执行权限

接着,我们执行程序尝试启动Syncthing服务(./syncthing文件夹下的syncthing文件为Syncthing的程序文件):

~/.syncthing/syncthing

此时程序将在屏幕上输出一些信息,比如程序监听的端口,WEB页面的地址等等。等待程序无输出后,不要执行任何操作,使用同一局域网下其他设备的浏览器访问"http://树莓派的在局域网中的IP地址:8384"查看是否能成功打开Syncthing的WEBUI(网页管理界面)。若不能正常打开,则进入下一步,如果可以成功打开,下一步可以忽略。不论是否能打开,测试完毕后,我们先使用"Ctrl+C"终止Syncthing程序。

若未能打开树莓派的WEBUI,我们需要对Syncthing的配置文件做出一些修改:

vim ~/.config/syncthing/config.xml #编辑Syncthing的配置文件

在config.xml中,我们可以找到以下代码:

<address>127.0.0.1:8384</address>

其中,我们需要将127.0.0.1修改为0.0.0.0,如果你想要自定义Syncthing的WEBUI端口,可以将8384修改为其他端口如7777

修改完的结果如下(将WEBUI端口修改为"7777",因为好记):

<address>0.0.0.0:7777</address>

修改完毕后,保存文件,并且再次尝试启动Syncthing服务:

~/.syncthing/syncthing

这时使用同一局域网下其他设备的浏览器访问"http://树莓派的在局域网中的IP地址:7777"应该可以打开Syncthing的WEBUI了。

使用这种方法启动Syncthing时,需要一直保持SSH连接,一旦使用"Ctrl+C"结束Syncthing进程或是退出终端,Syncthing的服务就会停止。如果你想让Syncthing在退出终端后也保持在后台运行,可以执行以下命令:

(~/.syncthing/syncthing &) #记得把加上括号执行哦~

  

参考资料

使用SYNCTHING在树莓派上替代BT SYNC - 无聊小博