Syncthing 无中心文件同步实战:不经过云,家里多台设备自己传文件

前阵子整理家里的服务器,发现一个挺尴尬的问题…

前阵子整理家里的服务器,发现一个挺尴尬的问题:几台节点之间的配置、脚本、证书要来回拷,一会儿 U 盘拔来拔去,一会儿丢到网盘再下载,慢不说,数据还绕了别人家的服务器一圈。今天给老伙计们推荐一个我用了很久的开源工具——Syncthing,专治这种”多设备传文件”的麻烦。

Syncthing 是个去中心化的文件同步工具。它不依赖任何云盘,两台装了 Syncthing 的设备直接点对点传输,全程端到端加密,开源免费。设备在同一个局域网里就局域网直连,跨网络也能自动走中继打通。Windows、macOS、Linux、Android 全平台都有客户端,官方源就能装。

安装:一条命令起步

Debian / Ubuntu 系直接从官方源装:

sudo apt update
sudo apt install syncthing

喜欢容器化的老伙计也可以用 Docker 跑,把同步目录挂进去就行:

docker run -d --name syncthing \
  -v /data/sync:/var/syncthing \
  -p 8384:8384 -p 22000:22000/tcp -p 22000:22000/udp \
  syncthing/syncthing

三分钟打通两台设备

  • 启动后浏览器打开 http://127.0.0.1:8384,右上角能看到本机的设备 ID,先记下来;
  • 在另一台设备装好 Syncthing,点「添加远程设备」,粘贴第一台的设备 ID;
  • 第一台设备会弹出确认请求,点接受,两台设备就算配对成功;
  • 接着点「添加文件夹」,选要同步的目录,勾选共享给哪台设备;
  • 两台设备自动扫描、索引、同步,状态变成「最新」就大功告成。

纯命令行、没有图形界面的服务器也别慌,Syncthing 自带 CLI,常用命令如下:

# 查看本机设备 ID 和运行状态
syncthing cli show system

# 列出已配置的同步文件夹
syncthing cli config folders list

几个要留意的设置

第一,强烈建议在文件夹的高级设置里开启版本控制(比如保留 5 个历史版本),误删、误改都能回滚。第二,两台设备同时改同一个文件会生成 .sync-conflict 冲突文件,别慌,手动挑一份保留即可。第三,跨网络时默认走全局发现和中继,开箱即用;如果你只想纯内网跑、不碰公网,把「全局发现」和「启用中继」关掉,安全性更省心。

和 rsync、rclone 的区别

有人会问:rsync、rclone 不也能同步吗?没错,但它俩是”手动 / 定时触发”的命令行工具,更适合单向备份;Syncthing 是”持续实时”的双向同步,文件一改动就自动推送到所有节点,更适合多设备之间的协同。我现在就用它把几台节点的配置目录、证书、脚本做成双向同步,改一处处处更新,出问题还能靠版本控制回滚。

如果你也有好几台设备、好几个节点要互相传文件,别再拿 U 盘和网盘折腾了。装个 Syncthing,局域网里它比网盘快一个量级,数据还全攥在自己手里。有问题的,评论区见。

类似文章

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注