开源同步软件 Syncthing
Syncthing 介绍
什么是 Syncthing?
Syncthing 是一个开源的 分布式文件同步工具,可以让多台电脑/手机之间自动、实时、加密地同步文件。
它就像一个去中心化的 Dropbox/百度网盘:
- 没有中央服务器(文件直接点对点传输);
- 不需要 U 盘拷贝;
- 不依赖慢速的第三方云;
- 你的数据完全掌握在自己手里。
核心特点
- 去中心化
- 不依赖第三方云服务器。
- 设备之间 直连传输,速度取决于局域网/互联网带宽。
- 跨平台
- 支持 Windows / Linux / macOS / Android / FreeBSD / OpenBSD / Solaris …
- 甚至可以用在 NAS、树莓派。
- 实时同步
- 文件发生变化后,几乎立刻同步到对方设备。
- 支持增量同步(只传改动的部分,速度快)。
- 安全性
- 默认使用 TLS 加密。
- 每个设备有唯一的 设备 ID,要手动互相添加才会同步。
- 你的文件不会经过任何第三方服务器。
- 灵活同步模式
- 双向同步(两边都能改)。
- 单向同步(比如家里当备份机)。
- 只下载、只上传等多种策略。
- Web 界面管理
- 启动后在浏览器打开 http://127.0.0.1:8384 管理。
- 图形界面简单直观,适合新手。
典型使用场景
- 个人文件同步:办公室 + 家里 + 笔记本,自动保持相同的工作目录。
- 多人协作:小团队共享一个项目文件夹,不用依赖网盘。
- 备份:把笔记本文件自动同步到家里的 NAS/台式机当备份。
- 手机 ↔ 电脑同步:照片、文档自动传到电脑,不用数据线。
工作原理(简化版)
- 每台设备运行 Syncthing,会生成一个唯一 设备 ID(相当于指纹)。
- 你在设备 A 上输入设备 B 的 ID,设备 B 同意后,它们才能互联。
- 指定一个文件夹(比如
~/Documents/Work),设置同步到对方。 - 文件修改时 → Syncthing 检测变化 → 分块、压缩、加密传输 → 对方实时更新。
- 在同一个局域网里,传输速度接近拷贝速度(100MB/s+);
- 在不同网络下,它会尝试直连,如果失败会通过中继服务器,但依然加密。
📦 和其他同步工具对比
| 工具 | 去中心化 | 速度 | 是否加密 | 适合场景 |
|---|---|---|---|---|
| Syncthing | ✅ 是 | 🚀 快 | ✅ 强加密 | 文件实时同步,私有数据 |
| Resilio Sync | ✅ 是 | 🚀 快 | ✅ 加密 | 类似 Syncthing,但闭源 |
| Dropbox/坚果云 | ❌ 否 | ⏳ 依赖网速 | ✅ | 云存储 + 协作 |
| FreeFileSync | ❌(本地比对) | 🚀 本地很快 | ❌ | 手动/定时备份 |
| Git | ✅ 是 | ⚡ 差异同步 | ✅ | 代码版本管理 |
🚀 总结
- Syncthing = 私人 Dropbox + 局域网直连加速
- 优点:
- 免费开源
- 不依赖网络云服务
- 速度快、安全、跨平台
- 配置简单(添加设备 ID + 共享文件夹即可)
- 缺点:
- 没有文件历史版本管理(Git 更适合代码)
- 如果两台设备都不在线,就无法同步(但可以用 NAS/服务器解决)
👉 简单一句话:
Syncthing 特别适合你要在家里和办公室之间同步科研/工作文件,但又不想依赖慢速云盘。
🧑💻 Git + Syncthing/FreeFileSync 双轨同步方案
1. Git 管理代码
1.1 在办公室电脑初始化仓库
cd ~/projects/mycode # 进入代码目录
git init
git add .
git commit -m "first commit"
1.2 在家里电脑克隆
假设你两台机器能通过 VPN/局域网/SSH 互通:
- 在办公室电脑上创建一个 裸仓库(remote)
mkdir -p ~/git-repos/mycode.git
cd ~/git-repos/mycode.git
git init --bare
- 在办公室代码目录添加 remote:
cd ~/projects/mycode
git remote add home ssh://user@家里电脑IP/~/git-repos/mycode.git
git push home master
- 在家里电脑 clone:
cd ~/projects
git clone ssh://user@办公室电脑IP/~/git-repos/mycode.git
👉 之后日常使用:
# 办公室提交
git add .
git commit -m "work update"
git push home master
# 家里更新
git pull home master
如果要外网访问,建议装 ZeroTier/Tailscale 建立虚拟局域网,省得折腾 IP/端口映射。
2. Syncthing 同步大文件(推荐 🚀)
2.1 安装
-
- Linux:
sudo apt install syncthing - Windows: 官方 exe Download
- macOS:
brew install syncthing
- Linux:
2.2 启动
Linux:
syncthing &
Windows/Mac:双击运行,默认打开浏览器管理界面:http://127.0.0.1:8384
2.3 配置
- 两台电脑互加 设备 ID(在 Web 界面复制设备 ID,粘贴到对方的“添加设备”里)。
- 选择要同步的文件夹(如
~/Documents/WorkData)。 - 选择对方设备,设为 共享。
👉 这样,两边只要开着 Syncthing,就会自动双向同步(增量传输,速度快)。
3. FreeFileSync(适合手动/定时同步)
3.1 安装
下载 FreeFileSync(跨平台,图形界面)。
3.2 使用
打开 FreeFileSync,新建一个同步任务:
- 左边:办公室文件夹(如
D:\WorkData) - 右边:家里文件夹(如
E:\WorkData) - 选择同步方式:双向
- 左边:办公室文件夹(如
保存配置,生成一个
.ffs_batch文件。可以用任务计划程序(Windows)或
cron(Linux)定时运行:- Windows 任务计划程序示例:
FreeFileSync.exe "C:\sync\work.ffs_batch"- Linux 定时任务:
crontab -e 0 * * * * freefilesync /home/user/sync/work.ffs_batch
👉 适合你只想在特定时间点同步,而不是实时同步。
4. 推荐使用场景
代码 (几百 KB~几十 MB): Git 管理版本,方便回滚、多人协作。
大文件/科研数据 (GB~TB): Syncthing 自动同步(实时)或 FreeFileSync 手动/定时同步。
混合使用:
- Git 管理
~/projects/code/ - Syncthing 管理
~/data/ - FreeFileSync 定期备份到移动硬盘
- Git 管理
📌 总结:
- Git:做版本管理,push/pull 同步代码。
- Syncthing:最方便的实时文件同步工具。
- FreeFileSync:适合你想“手动/定时”控制同步。
找回/重置 Syncthing 密码步骤
1. 停止 Syncthing
不同系统方法:
Linux:
pkill syncthing或者
systemctl --user stop syncthingWindows / Mac:
直接关闭 Syncthing 界面或任务管理器里结束进程。
2. 找到配置文件 config.xml
配置文件一般在:
- Linux:
~/.config/syncthing/config.xml - Windows:
C:\Users\liupe\AppData\Local\Syncthing\config.xml - Mac:
~/Library/Application Support/Syncthing/config.xml
3. 编辑 config.xml
找到类似下面的字段:
<gui enabled="true" tls="false" debugging="false">
<address>127.0.0.1:8384</address>
<apikey>xxxxxx</apikey>
<user>你的用户名</user>
<password>xxxxxxxxx</password>
</gui>
方法 A:去掉密码验证
直接删除 <user> 和 <password> 这两行,例如:
<gui enabled="true" tls="false" debugging="false">
<address>127.0.0.1:8384</address>
<apikey>xxxxxx</apikey>
</gui>
方法 B:重置为新密码
<password> 字段存的是 哈希值,不能直接写明文。最简单办法:
- 删除
<user>和<password>,保存后启动 Syncthing; - 重新进入 Web 界面 http://127.0.0.1:8384,然后在设置里重新设定新密码。
4. 重启 Syncthing
Linux:
syncthing &或
systemctl --user start syncthingWindows/Mac: 双击启动。
此时应该可以无密码登录 Web 界面,然后重新设置。
⚠️ 小提示:
- 修改前建议先备份
config.xml。 - 如果你使用过 反向代理(nginx、caddy 等),也要确认是不是代理层设置了密码。
docker install
docker run -d --name syncthing --user 1001:1001 -p 8384:8384 -p 22000:22000/tcp -p 22000:22000/udp -v /public/home/liupei/syncthing:/var/syncthing --restart unless-stopped syncthing/syncthing:latest
要注意,如果当前用户id不是1000,而是,比如1001,就要显示指定 --user 1001:1001
- 添加对方主机ID
- 添加文件夹,并共享给对方
多设备同步方案
🌞 白天
A: Send Only #
B: Receive Only
C: Receive Only
🌙 晚上
A: Receive Only
B: Receive Only
C: Send Only #
海南自由贸易港高层次人才分类标准(2020) – 海南省人民政府政务服务中心 (hainan.gov.cn)
笔记本
台式机










