Syncthing

简要介绍

Syncthing 是一种文件同步工具,通过 P2P 的方式在多台机器上同步文件。

Linux

Ubuntu 下安装

1
sudo apt-get install syncthing

运行

1
2
tmux
syncthing

访问 http://127.0.0.1:8384

部署到服务器中

安装和运行过程与在本地运行一致。只是为了安全,通常会在 syncthing 前面加入一个反向代理,比如 Nginx 或者 Caddy。这里我使用的是 Caddy,他可以很方便的实现 https,同时配置文件也比 Nginx 更加简洁。使用反向代理就很可能遇到Host check error的问题。

这在 syncthing 的文档中有提及: https://docs.syncthing.net/users/faq.html#why-do-i-get-host-check-error-in-the-gui-api

文档提及了这有三种解决方案,这里使用的是第一种,在反向代理中修改 Header 中的 Host。我的 Caddyfile 大概长这样:

1
2
3
4
5
6
7
<your-domain> {
tls <your-email>
encode gzip
reverse_proxy localhost:8384 {
header_up Host "localhost:8384"
}
}

syncthing 需要监听 22000 端口,所以记得在防火墙上打开这个端口。

Windows 和 安卓

  • Windows 可以使用 SyncTrayzor
  • 安卓可以在 Play Store 中下载 Syncthing

基本使用

syncthing 是一个分布式的文件同步软件,所以每个设备的ID都是独一无二的,所以在使用时需要将设备连接起来(连接需要在两方同时同意),然后选择文件夹同步。