Syncthing使用小记
前言
对于我这种懒人,多设备敲代码一直是一件麻烦事。用git吧,先不说每到一个电脑还得clone一次,而且每次转移设备时还得提交一次,而且作为学生而不是社畜,我很难预测我接下来是否需要换设备,总不能每一次合上电脑就要提交一次吧。我也尝试过webdav和onedrive,但是体验都相当糟糕。偶然间看到还有一个开源软件Syncthing是专门搞同步的,甚至还有版本管理,也有类似gitignore的那种忽略模式,就想用来试试了。
配置
使用Docker部署中继服务器和发现服务器
对于国内的网络,尤其是校园网这种大内网一般都得通过中继服务器来进行数据传输。而Syncthing自带的基本都在国外,体验可想而知了。顺手建一个发现服务器免得到处输ID也是极好的。
这种服务用docker部署再好不过了。
version: "3"
services:
# 自建syncthing的发现服务器 discovery-servier
syncthing_discovery_server:
image: syncthing/discosrv
container_name: syncthing-discovery-server
command: -debug -listen=":8443"
environment:
- PUID=1000
- PGID=1000
volumes:
- ./syncthing/discosrv:/var/stdiscosrv
ports:
- 8848:8443 # Listen address (default “:8443”)
restart: always
# 自建syncthing的中继服务器 syncthing-relay-server
syncthing_relay_server:
image: syncthing/relaysrv:latest
container_name: syncthing-relay-server
command: -debug -pools="" -listen=":22067"
environment:
- PUID=1000
- PGID=1000
volumes:
- ./syncthing/strelaysrv:/var/strelaysrv
ports:
- 8858:22067 # 中继服务器的数据连接端口(必须开启)
#- 22070:22070 # 用于公用的中继服务器池,显示数据传输、客户端数量等状态,可不开启
restart: always
然后进入docker控制台,查看这两个服务各自的ID,待会要用。
Windows端安装设置
原先在win10生效的静默启动方法在win11不生效了,这里建议使用GUI。
https://github.com/Martchus/syncthingtray
使用Docker部署客户端
总不能两台电脑同时开机同步吧,肯定要部署一个客户端在服务器上作文中转站啊。
version: "3"
services:
syncthing:
image: syncthing/syncthing
container_name: syncthing
hostname: opi-sync
environment:
- PUID=1000
- PGID=1000
volumes:
- ./data:/var/syncthing
ports:
- 8384:8384 # Web UI
- 22000:22000/tcp # TCP file transfers
- 22000:22000/udp # QUIC file transfers
- 21027:21027/udp # Receive local discovery broadcasts
restart: unless-stopped
客户端配置中继服务器和发现服务器
在设置->连接中,将协议监听地址
修改成
default, relay://服务器ip:8858/?id=转发服务器ID
将全局发现器
修改成
default, https://服务器ip:8848/?id=发现服务器ID
接下来享受Syncthing带来的服务吧!
使用体验
目前这个方案已经用了一个星期,感觉还是很不错的。唯一一次出现冲突是我在两台机子没同步完的时候改了文件。不过Syncthing会保留两个文件让我们自己合并冲突,还算不错。同步速度非常快,这么多小文件也没影响性能,还是不错的。
看看其他吧