跳转至

Syncthing P2P 文件同步

一句话概述:Syncthing 是开源的去中心化文件同步工具,设备之间直接同步,不经过第三方服务器,数据完全自己掌控。

核心知识点

概念白话解释
SyncthingP2P 文件同步 = 设备之间直接传文件
Device设备 = 参与同步的每台电脑/手机
Folder同步文件夹 = 要同步的目录
Device ID设备标识 = 每台设备的唯一身份证
Web GUI管理界面 = 浏览器中的管理面板
Relay中继 = 直连不通时通过公共节点转发

安装配置

# Linux(Ubuntu/Debian)
sudo apt install syncthing                             # APT 安装

# 或使用官方仓库(最新版)
curl -s https://syncthing.net/release-key.gpg | sudo gpg --dearmor -o /etc/apt/keyrings/syncthing.gpg
echo "deb [signed-by=/etc/apt/keyrings/syncthing.gpg] https://apt.syncthing.net/ syncthing stable" | sudo tee /etc/apt/sources.list.d/syncthing.list
sudo apt update && sudo apt install syncthing

# macOS
brew install syncthing                                 # Homebrew

# 启动
syncthing                                             # 前台启动
# 浏览器自动打开 http://127.0.0.1:8384(Web GUI)

# 设置开机自启(Linux systemd)
systemctl --user enable syncthing                      # 用户级服务
systemctl --user start syncthing                       # 启动

配置同步

# 步骤1:获取 Device ID
# Web GUI → Actions → Show ID → 复制设备ID

# 步骤2:添加远程设备
# Web GUI → Add Remote Device → 粘贴对方的 Device ID
# 对方也要添加你的 Device ID(双向确认)

# 步骤3:添加同步文件夹
# Web GUI → Add Folder
#   Folder Path: /home/pweaz/Documents/sync           # 本地路径
#   Sharing → 勾选要同步的设备                            # 选择同步对象

# 步骤4:对方设备确认
# 对方的 Web GUI 会弹出请求 → Accept

高级配置

<!-- 忽略文件(.stignore 文件放在同步目录根下) -->
<!-- 语法类似 .gitignore -->

// .stignore 示例
(?d).DS_Store                                          // macOS 系统文件
(?d)Thumbs.db                                          // Windows 缩略图
*.tmp                                                  // 临时文件
*.log                                                  // 日志文件
.git                                                   // Git 目录
__pycache__                                            // Python 缓存
node_modules                                           // Node 依赖
# 命令行管理
syncthing cli config devices list                      # 列出设备
syncthing cli config folders list                      # 列出文件夹
syncthing cli show system                              # 系统信息

常见报错

报错原因解决
Disconnected设备离线或网络不通检查网络和防火墙
Out of Sync文件同步冲突检查冲突文件(.sync-conflict-*)
Folder Marker Missing.stfolder 被删在同步目录下创建 .stfolder 目录
Permission denied文件权限问题检查目录权限
同步很慢走了中继(Relay)配置端口转发或 UPnP

速查表

# 管理命令
syncthing                                             # 启动(前台)
syncthing serve --no-browser                           # 启动(不开浏览器)
systemctl --user start/stop/status syncthing           # systemd 管理

# Web GUI
# http://127.0.0.1:8384                                # 管理界面

# 同步流程
# 1. 两台设备都安装 Syncthing
# 2. 互相添加 Device ID
# 3. 创建同步文件夹并共享
# 4. 自动同步(实时监听文件变化)

# 核心优势
# ✅ 开源免费,无服务器费用
# ✅ 端到端加密,数据不经过第三方
# ✅ 跨平台(Linux/macOS/Windows/Android)
# ✅ 支持版本控制(保留旧版本)
# ❌ 没有 iOS 客户端(Apple 限制)