golang,go,博客,开源,编程
Syncthing 是一个 开源、点对点(P2P)的实时文件同步程序,用于在多台设备(如 Windows、macOS、Linux、Android、BSD、Solaris 等)之间同步文件,无需依赖中央服务器或第三方云存储
Syncthing = 开源 + 去中心化 + 实时同步 + 本地掌控数据 + 高度自动化。
你可以把它理解为一个跨设备、跨平台的“私有云同步工具”,但它不依赖任何云,也没有中心服务器,全靠设备之间自己搞定。
官方的口号就是 “Your data is your data”——你的文件只存在你自己的设备上,不经过任何第三方服务器。对,就是去中心化 + 零信任环境下的数据同步解决方案。
这意味着:
你有个 Obsidian 或 Typora 的 Markdown 笔记库,在家里电脑上写,在公司也写,用 Git 管理太麻烦了?Syncthing 一装,设置文件夹共享,自动增量同步 + 冲突标记。你可以边写边同步,不再担心“版本冲突”或“忘记 commit”。
/home/user/obsidian-notes/
├── 2025-读书笔记.md
└── 人类简史笔记.md
→ 配置为同步文件夹,在笔记设备 A 与设备 B 之间自动同步。
你手头有几台云服务器或者树莓派,在上面跑不同的微服务或脚本,但某些目录必须共享(如配置、字典表、模型文件等)?别再 SCP、rsync 来回了,用 Syncthing 搭个 mesh 网,每台机器自动同步对应目录,文件一改,秒同步到位。
比如:
机器 A: /app/config/
机器 B: /data/config/
机器 C: /mnt/shared-config/
→ 三者之间同步同一份 config,不再担心配置不同步问题。
你有一部 Android 手机和一个 NAS,拍的照片想自动同步到家里的存储服务器?用 Syncthing-Fork(手机端),和你家 NAS 上部署的 Syncthing 连接,一拍照就开始后台同步。
可选搭配:
功能 | 说明 |
---|---|
文件实时同步 | 文件一变更(如新增、删除、改名),立刻检测到并同步。基于文件监控 API。 |
多设备同步支持 | 不限数量的设备,互相之间形成 mesh 网络。 |
TLS 加密 + 签名验证 | 每台设备有自己的设备 ID(基于证书指纹),通信全程加密。 |
可视化 Web UI | 网页界面可配置设备、文件夹、权限等。 |
文件版本控制 | 每个文件支持保留多个历史版本,支持按时间/数量清理策略。 |
局域网自动发现 | 局域网内设备会广播发现彼此,自动建立连接。 |
NAT 穿透 + 中继 | 即使设备都在 NAT 后面也能连上;支持配置公网中继。 |
文件夹权限控制 | 每个文件夹可设置发送/接收者角色,控制单向同步或双向同步。 |
忽略规则 .stignore | 类似 .gitignore,可自定义同步时排除哪些文件/目录。 |
# 下载并解压二进制
wget https://github.com/syncthing/syncthing/releases/download/v1.30.0/syncthing-linux-amd64-v1.30.0.tar.gz
tar -xzvf syncthing-linux-amd64-v1.30.0.tar.gz
mv syncthing /usr/local/bin/
# 创建 systemd 服务
cat > /etc/systemd/system/syncthing@youruser.service <<EOF
[Unit]
Description=Syncthing - Open Source Continuous File Synchronization
After=network.target
[Service]
User=youruser
ExecStart=/usr/local/bin/syncthing -no-browser -home="/home/youruser/.config/syncthing"
Restart=on-failure
RestartSec=10
[Install]
WantedBy=default.target
EOF
systemctl enable --now syncthing@youruser
它不像 Dropbox 提供 10G 云盘,Syncthing给你无限空间、无限自由、完全掌控。
对注重隐私、安全、跨平台和高可用同步的人来说,它非常好用。