Syncthing 介绍

什么是 Syncthing?

Syncthing 是一个开源的 分布式文件同步工具,可以让多台电脑/手机之间自动、实时、加密地同步文件。

它就像一个去中心化的 Dropbox/百度网盘

  • 没有中央服务器(文件直接点对点传输);
  • 不需要 U 盘拷贝;
  • 不依赖慢速的第三方云;
  • 你的数据完全掌握在自己手里。

核心特点

  1. 去中心化
    • 不依赖第三方云服务器。
    • 设备之间 直连传输,速度取决于局域网/互联网带宽。
  2. 跨平台
    • 支持 Windows / Linux / macOS / Android / FreeBSD / OpenBSD / Solaris …
    • 甚至可以用在 NAS、树莓派。
  3. 实时同步
    • 文件发生变化后,几乎立刻同步到对方设备。
    • 支持增量同步(只传改动的部分,速度快)。
  4. 安全性
    • 默认使用 TLS 加密
    • 每个设备有唯一的 设备 ID,要手动互相添加才会同步。
    • 你的文件不会经过任何第三方服务器。
  5. 灵活同步模式
    • 双向同步(两边都能改)。
    • 单向同步(比如家里当备份机)。
    • 只下载、只上传等多种策略。
  6. Web 界面管理

典型使用场景

  • 个人文件同步:办公室 + 家里 + 笔记本,自动保持相同的工作目录。
  • 多人协作:小团队共享一个项目文件夹,不用依赖网盘。
  • 备份:把笔记本文件自动同步到家里的 NAS/台式机当备份。
  • 手机 ↔ 电脑同步:照片、文档自动传到电脑,不用数据线。

工作原理(简化版)

  1. 每台设备运行 Syncthing,会生成一个唯一 设备 ID(相当于指纹)。
  2. 你在设备 A 上输入设备 B 的 ID,设备 B 同意后,它们才能互联。
  3. 指定一个文件夹(比如 ~/Documents/Work),设置同步到对方。
  4. 文件修改时 → 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 互通:

  1. 在办公室电脑上创建一个 裸仓库(remote)
mkdir -p ~/git-repos/mycode.git
cd ~/git-repos/mycode.git
git init --bare
  1. 在办公室代码目录添加 remote:
cd ~/projects/mycode
git remote add home ssh://user@家里电脑IP/~/git-repos/mycode.git
git push home master
  1. 在家里电脑 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 安装

2.2 启动

Linux:

syncthing &

Windows/Mac:双击运行,默认打开浏览器管理界面:http://127.0.0.1:8384

2.3 配置

  1. 两台电脑互加 设备 ID(在 Web 界面复制设备 ID,粘贴到对方的“添加设备”里)。
  2. 选择要同步的文件夹(如 ~/Documents/WorkData)。
  3. 选择对方设备,设为 共享

👉 这样,两边只要开着 Syncthing,就会自动双向同步(增量传输,速度快)。

3. FreeFileSync(适合手动/定时同步)

3.1 安装

下载 FreeFileSync(跨平台,图形界面)。

3.2 使用

  1. 打开 FreeFileSync,新建一个同步任务:

    • 左边:办公室文件夹(如 D:\WorkData
    • 右边:家里文件夹(如 E:\WorkData
    • 选择同步方式:双向
  2. 保存配置,生成一个 .ffs_batch 文件。

  3. 可以用任务计划程序(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:做版本管理,push/pull 同步代码。
  • Syncthing:最方便的实时文件同步工具。
  • FreeFileSync:适合你想“手动/定时”控制同步。

找回/重置 Syncthing 密码步骤

1. 停止 Syncthing

不同系统方法:

  • Linux:

    pkill syncthing
    

    或者

    systemctl --user stop syncthing
    
  • Windows / 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 syncthing
    
  • Windows/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

  1. 添加对方主机ID
  2. 添加文件夹,并共享给对方

多设备同步方案

🌞 白天

A: Send Only   #
B: Receive Only
C: Receive Only

🌙 晚上

A: Receive Only
B: Receive Only
C: Send Only   #

海南自由贸易港高层次人才分类标准(2020) – 海南省人民政府政务服务中心 (hainan.gov.cn)

海口市高层次人才子女入学办事指南

笔记本

海南省政府采购网上商城 (hainan.gov.cn)

台式机

海南省政府采购网上商城 (hainan.gov.cn)海南省政府采购网上商城 (hainan.gov.cn)