【使用手册】之–Syncthing一款开源免费跨平台的文件同步工具
#手册 #教程 #工具 #Linux #Windows #archlinux #Ubuntu
Syncthing 是一款开源免费跨平台的文件同步工具,其独有的对等自由块交换协议,可以在两台甚至更多的设备之间同步文件,支持非常多的平台,包括 Windows、macOS、Android、Linux。Syncthing 不会将数据存储到服务器上,它只能实现多台受信任的设备之间进行数据同步,同步时必须保证同步的设备都处于开机连接状态,设备之间的通信均通过 TLS 进行。对处于不同局域网中的设备同步,Syncthing 通过公共发现服务器和中继服务器实现同步功能。
GitHub: https://github.com/syncthing/syncthing
文档: https://docs.syncthing.net/
1. 安装方法
1.1. Windows
推荐使用 SyncTrayzor: https://github.com/canton7/SyncTrayzor/releases
下载 SyncTrayzorPortable-x64.Zip
,解压后运行 SyncTrayzor.exe
,第一次运行会提示升级 syncthing。
1.2. Linux
以 arch 为例,其他发行版可通过软件源搜索安装或登陆 GitHub 下载。
# 安装
sudo pacman -S syncthing
# 临时启动
syncthing
# 开机自动启动,username替换为自己用户名
systemctl enable --now syncthing@username.service
1.3. Android
谷歌商店、 F-Droid 、应用商店搜索 syncthing 下载安装,或者直接到 GitHub 下载,地址: https://github.com/syncthing/syncthing-android/releases/
1.4. Docker
以下方式自动生成 Docker 的默认网络,会阻止本地 IP 地址被发现,只能看到子网上的容器,这会导致传输速率不佳。
version: "3"
services:
syncthing:
image: syncthing/syncthing
container_name: syncthing
hostname: my-syncthing
environment:
- PUID=1000
- PGID=1000
volumes:
- /wherever/sync:/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
建议,使用主机网络模式。
version: "3"
services:
syncthing:
image: syncthing/syncthing
container_name: syncthing
hostname: my-syncthing
environment:
- PUID=1000
- PGID=1000
volumes:
- /wherever/sync:/var/syncthing # 同步目录
network_mode: "host" #主机模式,无需预先映射端口
restart: unless-stopped
2. 使用方法
windows 下直接启动 SyncTrayzor.exe
会直接显示配置页面,linux 下启动程序后需要登陆 http://127.0.0.1:8384/
进入配置页面。
第一次启动提示需要配置图形管理界面的用户名和密码,配置完毕保存后,需要重新登陆。
2.1. 连接两台设备
- 先获取同步设备的标识码,打开
操作
-->显示 ID
,记录设备ID
- 点击
添加远程设备
,填入设备ID
、设备名称
保存。
- 等待远程设备接到如下通知,点击
添加设备
,设备ID
会自动获取,设备名
默认或根据需要修改。
保存后回到 本地设备
,可以看到 远程设备
处于 已连接
状态(如果没有等待一会)。
2.2. 添加同步文件夹
- 在本地新建一个文件夹用于共享文件,在 syncthing 中添加该文件夹,
文件夹
-->添加文件夹
,分别填入文件夹标签
、文件夹 ID
、文件夹路径
。
第二页 共享
,可以选择共享给哪台远程设备。
第三页 版本控制
- 回收站版本控制:文件的删除和替换将导致旧版本被放入. Stversions 文件夹中的回收站(可控制清空回收站时间)
- 简易版本控制:文件的删除和替换将导致旧版本被备份到. Stversions 文件夹中,可设置最多备份多少次
- 阶段版本控制:比上一个多了指定备份文件夹以及额外指定多少时间后过期删除备份
- 外部版本控制:通过外部的 Shell 脚本进行复杂的判断
第四页 忽略模式
,可以设置一些规则,忽略一些文件不用同步。
第五页高级
保存后,可以看到本地设备的共享文件夹已经创建成功。
- 远程设备添加同步文件夹。本地添加共享文件夹时,
共享
页勾选远程设备后,远程设备会收到通知(如果忘记可以通过选项
进入共享
页重新勾选)。
远程设备同步文件夹的对应设置,设置完毕保存。
- 测试,在本地新建一个
ceshi.txt
文件,远程设备同步情况。
2.3. 删除同步文件夹
选择要移除共享的文件夹,选项
-> 移除
,这里只是移除了同步,不会删除本地文件夹里的文件。
原文件还存在。
此时,查看远程设备对应的同步文件夹,会被标记 远程设备尚未允许分享此文件夹
。
2.4. 删除远程设备
选择要移除的远程设备,选项
-> 移除
。
本地移除后,在远程设备上会显示 断开连接(未使用)
。
3. 其他
3.1. 解决 windows 下 SyncTrayzor 更新慢,卡死问题
SyncTrayzor 更新 syncthing 时需要访问 GitHub,可以先下载最新版替换掉 SyncTrayzor.exe
同级目录和 deta
目录下的 syncthing.exe
。
3.2. 如何通过局域网或公网访问 Syncthing GUI 配置页面
修改 config.xml
文件,注意:修改前一定要先配置图形管理界面的用户名和密码,密码尽量满足 8 位以上,大小写数字及特殊符号。
# 找到下面一行,把localhost修改为0.0.0.0,重新启动syncthing
<SyncthingAddress>localhost:8384</SyncthingAddress>
3.3. 安卓端同步时提示 错误 (folder marker missing)
这是由于该同步目录下面缺少一个 .stfolder
目录,解决办法是在该目录下新建文件夹: .stfolder
(注意前面的 “.”),因为该文件夹为隐藏文件夹,有的国内定制安卓系统或者系统清理软件会自动清除该文件夹,所以新建 .stfolder
文件夹后还出现这样的情况,可以在 .stfolder
里随便新建一个空文件,比如我就在该文件夹下新建一个名为 .stfolder
的空文件。
3.4. 关于 冲突
提示过多的解决办法
当两台或多台设备同时打开同一文件或者使用的文件编辑器带有频繁保存功能(如 obsidian
)时,会产生冲突。可以更改同步文件夹的扫描方式 选项
-> 高级
,取消勾选 监视更改
,同时多台设备的 完整扫描间隔(秒)
时间尽量错开 30-120s(这里可以根据网络环境选择),如设备 1 按照 60s,设备 2 100s,设备 3 135s。
评论区