专栏首页美丽应用树莓派折腾记:安装和配置Syncthing

树莓派折腾记:安装和配置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 - 无聊小博

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • 树莓派折腾记:纯手机+数据线连接树莓派

    美丽应用
  • 树莓派折腾记:琐碎小笔记

    美丽应用
  • 玩转Volumio的DLNA特性

    美丽应用
  • Chrome控制台骚操作,知道这些事半功倍

    Chrome 浏览器想必是每个前端工程师必备的利器之一,速度快、体积小、支持的特性也比其他浏览器多;除此之外,它还拥有强大的控制台功能,但很多开发者并没有用出控...

    ConardLi
  • 附近小程序开放,线下门店怎样不花钱做小程序?

    约朋友出门吃喝玩乐,想要查看附近哪里有好吃的,哪里有好玩的,大部分人的第一反应是打开美团、大众点评这类 app。

    知晓君
  • Spring Data Redis使用

    上文我们介绍了Redis,在开发环境中,我们还有另外一个解决方案,那就是Spring Data Redis。本文我们就来看看这个东西。

    江南一点雨
  • Spring MVC中使用Swagger生成API文档

    实际项目中非常需要写文档,提高Java服务端和Web前端以及移动端的对接效率。 听说Swagger这个工具,还不错,就网上找了些资料,自己实践了下。 一:Sw...

    Java架构师历程
  • python-网络编程

      socket 的原意是“插座”,在计算机通信领域,socket 被翻译为“套接字”,它是计算机之间进行通信的一种约定或一种方式。通过 socket 这种约定...

    yaohong
  • Pinterest推出基于深度学习的PinSage以增强其推荐系统

    来自Pinterest的开发人员以及斯坦福大学的研究人员合作推出PinSage,这是一种基于深度学习的高级推荐框架,用于社交网络中的广告和购物推荐。

    AiTechYun
  • Google Analytics和Adobe Analytics中的数据层dataLayer

    dataLayer 是传递给GTM的键值对的全局对象,可用于描述不作为页面 DOM 或其他 JavaScript 变量的一部分提供的信息,可以理解为用于存储或发...

    GA小站

扫码关注云+社区

领取腾讯云代金券