使用Syncthing搭建个人同步服务器

笔者作为一个 IT 销售人员,除了要会推销自己的产品,处理报价、合同等商务工作,还得熟悉方案,甚至有时候还要着手给客户写技术方案,因此平时手头有大量的文档处理,工作时间一般电脑不离身。销售有个好就是时间比较自由,换言之就是任何时间都在休息,也都在上班!

所以我很多时候在家里也会处理一些文档类工作,比方晚上和周末。以前是怎么干的呢?1)下班的时候把工作电脑文件通过微信、QQ 发到云上;2)拷到U盘里。然后做完之后再同步回去,很不方便。

在Syncthing之前,我曾试过百度云、Onedrive、SyncToy等文件同步应用,它们有的速度慢,有的占用资源高,有的得付费,总之都觉得不太好。Syncthing这样一款开源、轻量级、速度贼快的点到点文件同步系统可以说甚合我意,它支持市面上大多数操作系统如Windows/MAC OS/Android/Linux等,它让你的数据在两个终端间通过加密方式传输,同时也不会把存放在别的地方,很安全。而且这是一款超过20年的开源软件,生命周期很长,所以针对它的第三方拓展也比较多。

使用 Syncthing 搭建个人同步服务器
使用 Syncthing 搭建个人同步服务器

Syncthing 安装

Windows安装Syncthing非常简单,直接到官网下载最新版解压后运行里面的主程序 syncthing.exe,弹出来的批处理窗口就是它的主程序了。经过几秒的初始化系统会用你默认浏览器打开http://127.0.0.1:8384,这就是Syncthing的操做和管理后台了。


如果你仅用于Windows间的文件同步和传送,那就在多台电脑间安装即可愉快食用。不瞒您说,我这博客可是用的马云家100M 带宽的ECS啊,不做个文件同步服务器有点可惜的,于是下面介绍CentOS下的安装方法——其他Linux也适用。

# 下载syncthing,可以暂时不用管版本,等安装好打开之后会自动检查更新,1.20.4是截至2022/09/03的最新版本
wget https://github.com/syncthing/syncthing/releases/download/v1.20.4/syncthing-linux-amd64-v1.20.4.tar.gz
# 解压下载下来的压缩包
tar xzvf syncthing-linux-amd64-v1.20.4.tar.gz
# 进入解压出来的文件夹
cd syncthing-linux-amd64-v1.20.4
# 将syncthing二进制程序复制到/usr/local/bin目录,然后就可以通过“syncthing”命令运行syncthing了
cp syncthing /usr/local/bin
# 将除syncthing运行文件之外的的其他说明文件删除
rm -rf syncthing*
# 运行主程序
syncthing

至此Syncthing的主文件已经安装好了,接下来开放端口。Syncthing默认监听以下几个端口:

22000 (TCP) --节点访问端口
8384 (TCP) --Web控制端口
21027 (UDP)
44647 (UDP)
37269 (UDP)

我是自己使用,只打开前两个就行了,开放防火墙端口请根据自己服务器的情况来设置。阿里云需要到后台区设置,定位到云服务器-实例-管理-本实例安全组-配置规则-添加安全组规则,然后参考如下配置:

使用 Syncthing 搭建个人同步服务器
授权对象建议写成 0.0.0.0/0,即是允许所有人访问

开放端口之后直接输入syncthing运行它,初始化的行应该跟Windows 版是一样的,咱们也不用管它,CTRL+C叫停它。修改生成的配置文件,定位到/root(你的当前用户名)/.config/syncthing/config.xml,用VIM工具或WinScp之类的 FTP 将127.0.0.1:8384改成 0.0.0.0:8384 即可,也可以直接使用命令:

sed -i 's/127.0.0.1/0.0.0.0/g' '/root/.config/syncthing/config.xml'

至此Linux版本的Syncthing 已经搭建完成,在此输入syncthing运行它。然后就可以在浏览器输入你的服务器IP:8384访问管理它了。

Syncthing 使用

建议将服务器端的面板设置个管理密码,依次定位到操作-设置-图形界面修改。系统咱们已经建好了,如何实现文件同步呢?主面板只三块清晰内容,分别是“文件夹”、“当前设备”、“远程设备”,作为本地和远程设备的一览。事实上 Syncthing 是通过唯一识别码来进行连接和文件传输的,点击“添加远程设备”,粘贴对面服务器/PC 的设备ID后发起连接申请,对面确认后即可选择文件/文件夹同步了。

使用 Syncthing 搭建个人同步服务器
Syncthing 联系二维码

具体到文件同步管理,这里面有个功能深得我心。它的“忽略模式”允许用户排除主文件夹下不想被同步的文件夹或内容,能非常灵活的管理和设置,对于我这种安良付费的 ECS,如果随便把每个文件都上传,一则费时间,二则费钱。

如果你的两个同步服务器是处于局域网内普通电脑,那么系统会进行网络寻址,数据流不会经过路由器直接在局域网内同步。如果两个电脑没在一个局域网也没有对应的公网IP了,Syncthing 还能通过它分布全球的中继服务器进行数据同步——只不过速度稍慢了。

如果你像我一样,有自己的云服务器,建议关闭设置里边的“全球发现”和“NAT 遍历”,这样它就不会 P2P 传输了~

使用 Syncthing 搭建个人同步服务器
以上是它的全球用传输热点图

Syncthing扩展

以上完成了Syncthing的安装和使用,这样一般会占用你系统50MB左右的内存,可以说相当轻量级了。不过,程序在启用的时候系统任务栏会常驻一个程序,界面也比较简陋,于是有的朋友开发了对应的GUI,把它弄到了系统托盘。我试了一下觉得没啥必要。需要的朋友可以看看这两个链接:

  • https://github.com/sieren/QSyncthingTray
  • https://github.com/canton7/SyncTrayzor

Syncthing移动端支持

Syncthing 本身是支持 Android 的,但是我并不希望文件实时同步到手机,很耗电对不对?不过毕竟有需要的时候,怎么办呢?安装个 Kodexploer 在手机上能对单独文件或目录浏览、下载、分享就行啦——建议你:保持 Syncthing 和 Kodexploer 的文件目录一致比较省事儿。

Syncthing 移动端支持
Kodexplorer 是个相当强大的文件管理工具,可以文件外链共享、预览、编辑等

下一步工作

在查询相关资料的时候,了解到斐讯 N1 这么个强大的玩意儿,于是……已经买了 N1 盒子准备折腾,初步打算:

  • 在N1上刷Debian,安装OMV(OpenMediaVault)作为小型家用Nas使用
  • 在以上基础上安装Lnmp,可以跑Wordpress
  • 内网穿透,绑定域名
  • 安装Syncthing,不再同步文件到阿里云
  • …  …
1920 1080 牧羊人
35条评论
  • 惠姐姐源码网
    05/03/2021 at 00:55 回复

    还是上群辉吧。。。专业

  • 老头
    04/20/2021 at 10:47 回复

    这货类似 微力同步、Resilio Sync 吧?不过前两者多几个任务就比较耗资源。

    • 牧羊人
      08/18/2022 at 14:38 回复

      要更轻巧一些

  • Andy烧麦
    04/19/2021 at 21:19 回复

    赞,这是拿ECS云服务器,做网盘么?

    • 牧羊人
      08/18/2022 at 14:38 回复

      差不多是这个意思

  • Uz
    04/03/2021 at 23:27 回复

    为什么不用坚果云呢?

    • 牧羊人
      04/04/2021 at 09:00 回复

      为什么要用坚果云呢?

  • 皇家元林
    09/23/2019 at 11:13 回复

    我想知道你内网穿透用的是什么?

    • 牧羊人
      09/23/2019 at 18:24 回复

      用的FRP,搭建了没使用~
      想了想我还不如直接把数据放在云上,还快~

  • Lvtu
    08/23/2019 at 16:51 回复

    原来还是位隐藏的IT大神,失敬。。。。

  • 曾经左手烟
    08/23/2019 at 10:27 回复

    我是想到时候直接买群晖
    省事省心

    • 牧羊人
      08/23/2019 at 10:41 回复

      恩恩额,我觉得我还是比较喜欢这种折腾的快乐吧哈哈哈哈

  • 懿古今
    08/16/2019 at 09:40 回复

    其他文件我倒是很少,一般都是在公司写的稿件或文档,家里还要继续用,一般直接用WPS编辑然后保存为云文档,然后随时随地都可以编辑使用。

    • 牧羊人
      08/19/2019 at 14:05 回复

      其他文件少自然可以简便一些了~ 微软也有类似功能

  • 尽欢
    08/13/2019 at 19:23 回复

    我是用的nextcloud

    • 牧羊人
      08/13/2019 at 20:43 回复

      跟这个好像不是一个方向的产品~

  • Joe
    08/06/2019 at 14:36 回复

    遗憾的是,Syncthing好像没有适用的ios客户端

    • 牧羊人
      08/09/2019 at 09:46 回复

      好像是的,似乎 ios 的读写权限比较难搞到,根据自己需求选择合适的系统吧~

  • repostone
    07/19/2019 at 16:44 回复

    还真的没搞过这个。

  • 1900
    07/19/2019 at 00:51 回复

    我之前也考虑了很久,最后还是找几个人合伙买了个onedrive

    • 牧羊人
      07/21/2019 at 17:42 回复

      生命的乐趣在于折腾~

  • Sam.Z
    07/16/2019 at 11:44 回复

    现在用的自家NAS同步,给个建议,还是不要搭在路由器上,最好买个itx的板子做,24h不关机稳定功耗小散热快最关键,咸鱼几百块淘一下可以的。如果家里想做软路由,可以买最近出的树莓派4~

    • 牧羊人
      07/19/2019 at 11:17 回复

      我公司有个宏碁的HTPC,赛扬CPU,可以拿回去用,体机也还算小,但是我看了看功率,要30w以上,我觉得没啥必要。。。我还是就用阿里云算了。经过两周的试用,家里 的OMV唯一作用是当下载器看电影(然而电影我也很少看)。。。问个问题:怎么把内网映射出来?性价比高点的方案

      • Sam.Z
        07/20/2019 at 09:26 回复

        我走的FRP,你用你的主机搭一个就好了,性价比很高,速度嘛,我觉得OK

        • 牧羊人
          07/20/2019 at 23:52 回复

          感谢提醒,我已经装上啦~

  • 山小炮
    07/16/2019 at 10:59 回复

    这个挺好,配置看起来也不太复杂。另外阿里云确实快,一分钱一分货啊,羡慕~~

    • 牧羊人
      07/21/2019 at 17:43 回复

      那可不~

      我的斐讯 N1 已经折腾好了,可能还需要DDNS,然后把 sync 搬进去~

  • 山野愚人居
    07/15/2019 at 11:51 回复

    100M?独享吗?我的天,我的才1M小水管……

    • 牧羊人
      07/21/2019 at 17:44 回复

      是的,100M独享哈哈哈哈,只不过我是按流量计费的,我把图片什么的都用cdn了,所以一年下来也没花多少钱~

      • k8s
        08/16/2020 at 11:03 回复

        可以了解一下阿里云的轻量应用服务器 轻量香港节点864元/3年,30M峰值带宽

  • 逆时针
    07/14/2019 at 20:25 回复

    我的网站用的还是一个共享的虚拟主机,是不是落伍了~

    • 牧羊人
      07/21/2019 at 17:48 回复

      不落伍不落伍,看需求嘛,我是之前在这个server上有过其他站,就这么留下来了,不过,vps 确实还是要方便很多的~

  • 子午物联网
    07/13/2019 at 21:42 回复

    这个不错啊,有时间尝试一下!

  • 神父
    07/12/2019 at 12:36 回复

    能不能用个旧手机(安卓、苹果都行)作为中转服务器,在不同的windows间同步。比如,上班时办公室pc同步至手机,下班后在家里pc自动接收手机同步来的文件

    • 牧羊人
      07/13/2019 at 10:13 回复

      可以直接同步到你手头的手机,不过不建议这么干,太耗电了…

      请继续关注我的下一篇折腾日志:在家里面安装个 斐讯N1作为软路由和NAS,可解决你说这个痛点~

发表评论

请输入关键词...