Syncthing 安装与核心概念
学习目标
- 了解 Syncthing 的功能与适用场景。
- 掌握 Syncthing 在 Windows / macOS / Linux 上的安装方法。
- 理解 Syncthing 的核心概念:设备 ID、文件夹共享、中继与发现。
- 掌握 Syncthing 的基本 Web UI 界面操作。
- 完成单台设备的初始配置与文件夹添加。
前置条件
- 两台(或以上)可在同一局域网内互相访问的设备。
- 基本的软件安装能力。
- 可选:路由器支持局域网设备互通(绝大多数家用路由器默认支持)。
单设备也能学
如果你暂时只有一台设备,可以先完成本节的安装与概念学习,后续实战再找第二台设备。
Syncthing 是什么
Syncthing 是一款开源、去中心化的文件同步工具,让你可以在多台设备之间实时同步文件夹,无需上传到第三方云服务器。
适用场景
- Obsidian Vault 同步:在多台电脑间同步你的 Obsidian 笔记仓库。
- 文档备份:在多设备间同步工作文档,避免 U 盘来回拷贝。
- 家庭共享:与家人共享照片、音乐等文件。
- 团队协作:小团队在局域网内同步项目文件。
Syncthing 与其他同步方案的对比
| 特性 | Syncthing | 云盘(OneDrive / iCloud) | Git |
|---|---|---|---|
| 是否需要云服务 | 不需要(点对点) | 需要 | 需要远程仓库(GitHub 等) |
| 数据存储位置 | 完全由你控制 | 云端 | 远程仓库 + 本地 |
| 实时同步 | ✅ 自动实时同步 | ✅ 增量同步 | ❌ 需手动推送/拉取 |
| 冲突处理 | 自动保留冲突副本 | 视平台而定 | 需手动解决冲突 |
| 隐私性 | 极高(端到端加密) | 受云服务商政策限制 | 取决于仓库公开/私有 |
| 学习曲线 | 中低 | 低 | 中高 |
| 适用场景 | 多设备文件实时同步 | 通用文件备份与共享 | 版本控制与协作开发 |
Syncthing 不是版本控制工具,它不会像 Git 那样记录文件的历史变更。如果需要版本追溯能力,可以将 Syncthing 同步的仓库同时纳入 Git 管理——两者互补使用。
核心概念
在安装之前,先了解几个关键概念,这将帮助你更好地理解后续操作。
设备 ID(Device ID)
每台运行 Syncthing 的设备都有一个唯一标识符,由一串字符组成,类似:
7CNNHR6-J57G7XI-6K5G4R4-...(共 52 位字符)
- 设备 ID 基于设备的密钥对生成,用于设备之间的身份验证。
- 两台设备配对时,需要交换设备 ID,形成信任关系。
- 设备 ID 可以转换为 二维码,方便手机端扫码添加。
安全提示
设备 ID 是设备间信任的基础。在配对时,务必面对面确认设备 ID,或通过安全的通信渠道(如加密聊天)交换,防止中间人攻击。
文件夹共享(Folder Sharing)
- Syncthing 同步的基本单位是文件夹(而非整个硬盘)。
- 你可以选择将本地的某个文件夹与其他设备共享。
- 每个共享文件夹可以设置不同的同步策略(如仅发送、仅接收、双向同步)。
- 不同设备上的文件夹路径不必相同——A 设备的
D:\Notes可以与 B 设备的~/Documents/Obsidian同步。
中继(Relay)与发现(Discovery)
- 发现服务器:帮助设备在互联网上找到彼此(不传输文件数据)。
- 中继服务器:当两台设备无法直接建立连接时(如 NAT 网络),通过中继服务器转发数据(数据仍为端到端加密)。
- 在局域网内,Syncthing 会自动发现邻居设备并建立直连,速度最快。
- 你可以选择禁用全局发现和中继,仅在局域网内使用(推荐用于本教程场景)。
版本控制(File Versioning)
- Syncthing 内置文件版本控制功能,可在文件冲突或被误删时恢复。
- 支持的版本控制策略:垃圾桶(回收站)、简单版本控制(保留最近 N 个版本)、阶段性版本控制(定时快照)、外部文件版本控制(自定义脚本)。
- 对于 Obsidian 仓库,推荐开启简单版本控制,保留最近 5-10 个版本。
步骤
第 1 步:下载与安装 Syncthing
Windows
- 打开 https://syncthing.net/downloads/。
- 下载 Windows (64-bit) 版本(建议选择 SyncTrayzor 安装包——它包含 Syncthing 核心与系统托盘界面)。
- 运行安装程序,按默认设置完成安装。
- 安装完成后,SyncTrayzor 会自动启动并在系统托盘显示图标。
macOS
- 访问下载页面。
- 下载 macOS 版本(
.dmg或通过 Homebrew 安装:brew install --cask syncthing)。 - 将 Syncthing 拖入 “应用程序” 文件夹。
- 首次启动时,系统可能提示 “无法验证开发者”,前往 系统设置 → 隐私与安全性,点击 仍要打开。
Linux
# Ubuntu / Debian
sudo apt update
sudo apt install syncthing
# 启动系统服务(开机自启)
sudo systemctl enable syncthing@$(whoami)
sudo systemctl start syncthing@$(whoami)
# Fedora
sudo dnf install syncthingAndroid
Android 平台使用社区维护的 Syncthing-Fork(功能与原版一致,专为 Android 优化):
- 方法一:从 GitHub Releases 下载(推荐)
- 打开 researchxxl/syncthing-android/releases。
- 找到最新稳定版(如
v2.1.1.0),在 Assets 中下载*.apk文件。 - 安装前需在 Android 设置中允许 安装未知来源应用。
- 方法二:通过 Obtainium 安装(自动更新)
- 安装 Obtainium。
- 添加应用源:
https://github.com/researchxxl/syncthing-android,获得自动更新通知。
- 方法三:通过 F-Droid 安装
- 在 F-Droid 客户端中搜索 Syncthing 并安装(更新可能较 GitHub 稍慢)。
安装完成后,打开浏览器访问
http://127.0.0.1:8384即可进入 Web 管理界面。
第 2 步:首次启动与 Web UI
-
启动 Syncthing:
- Windows(SyncTrayzor):双击桌面图标,系统托盘出现 Syncthing 图标。
- macOS:从 “应用程序” 打开 Syncthing。
- Linux:若未配置自启,在终端运行
syncthing。 - Android:点按 Syncthing-Fork 应用图标,授予通知权限,应用将在后台自动运行。
-
打开 Web 管理界面:
- 浏览器访问
http://127.0.0.1:8384。 - 首次访问会看到设置向导页面。
- 浏览器访问
-
设置设备名称(可选但推荐):
- 点击右上角 操作 → 设置。
- 在 常规 标签页中,将 设备名称 设为可识别的名称(如 “工作电脑”、“笔记本”)。
- 点击 保存。
-
了解 Web UI 布局:
┌─────────────────────────────────────────────────┐ │ Syncthing — 工作电脑 [操作] [设置] │ ├─────────────────────────────────────────────────┤ │ 此设备 │ 远程设备 │ │ ┌─────────────────────┐ │ ┌─────────────────┐ │ │ │ 设备 ID: 7CNN... │ │ │ (暂无远程设备) │ │ │ │ 状态: 已就绪 │ │ │ │ │ │ └─────────────────────┘ │ └─────────────────┘ │ │ │ │ │ 文件夹 │ │ │ ┌─────────────────────┐ │ │ │ │ 默认文件夹 (Default)│ │ │ │ │ 路径: ~/Sync │ │ │ │ │ 状态: 未共享 │ │ │ │ └─────────────────────┘ │ │ └─────────────────────────────────────────────────┘
第 3 步:理解并修改默认配置(可选)
默认配置适用于大多数场景,但你可以按需调整:
-
修改 GUI 监听地址(安全建议):
- 设置 → 常规 → GUI 监听地址:保持
127.0.0.1:8384(仅本机可访问)。 - 如果希望在局域网其他设备上管理本机 Syncthing,可改为
0.0.0.0:8384并设置用户名/密码。
- 设置 → 常规 → GUI 监听地址:保持
-
限制局域网使用(推荐):
- 设置 → 连接 → 启用中继:取消勾选(如果只在局域网使用)。
- 设置 → 连接 → 启用全局发现:取消勾选。
- 这样 Syncthing 将仅在局域网内寻找设备,不会连接到公共中继和发现服务器。
-
修改文件夹路径:
- 默认文件夹
~/Sync可以删除或修改。 - 我们会在实战章节中为 Obsidian 仓库配置专门的同步文件夹。
- 默认文件夹
第 4 步:查看设备 ID
- 在 Web UI 主页,点击 此设备 区域右侧的 显示设备 ID 按钮。
- 弹窗中显示完整的设备 ID(52 位字符)。
- 你可以:
- 复制设备 ID 文本。
- 显示二维码:方便手机端扫描添加。
- 设备 ID 也以
QR 码形式显示在左侧面板。
将此设备 ID 保存好,后续配对时需要交换给其他设备。
第 5 步:添加共享文件夹(以 Obsidian 仓库为例)
在配对远程设备之前,可以先添加要同步的文件夹:
- 点击 Web UI 右侧的 添加文件夹 按钮。
- 填写以下信息:
- 文件夹 ID:
obsidian-tutorial(全局唯一标识,建议使用英文) - 文件夹路径:选择 Obsidian 仓库的本地路径(如
D:\WorkSpace\obsidian_tutorial) - 文件夹标签:
Obsidian 教程(显示用)
- 文件夹 ID:
- 高级设置(可选但推荐):
- 文件版本控制 → 选择 简单版本控制,保留版本数设为
5。 - 忽略权限:勾选(避免不同系统的文件权限差异导致同步问题)。
- 扫描间隔:保持
60秒。
- 文件版本控制 → 选择 简单版本控制,保留版本数设为
- 点击 保存。
文件夹 ID 必须一致
在配对后的所有设备上,同一个同步文件夹的 文件夹 ID 必须完全相同。推荐在首台设备上设置好后,在第二台设备上添加文件夹时直接复制同样的 ID。
常见问题
Q:Web UI 打不开?
确保 Syncthing 正在运行,并确认访问地址正确(默认 http://127.0.0.1:8384)。如果修改过端口,使用修改后的端口访问。
Q:防火墙弹窗警告?
Windows Defender 或第三方防火墙可能会拦截 Syncthing。首次运行时请允许 Syncthing 和 SyncTrayzor 在专用网络(局域网)上通信。
Q:我可以同时在多台设备上读写同步的笔记吗?
可以。但如果同一文件在不同设备上同时修改,Syncthing 会产生冲突副本(文件名包含 .sync-conflict- 标记)。建议在不同设备上错开编辑时间,或在编辑前确认同步已完成。
练习任务
- 在至少一台设备上完成 Syncthing 安装与启动。
- 打开 Web UI(
http://127.0.0.1:8384),查看本机设备 ID。 - 添加本仓库文件夹为 Syncthing 同步文件夹(暂不共享)。
验收清单
- Syncthing 已成功安装并启动。
- 可通过
http://127.0.0.1:8384访问 Web 管理界面。 - 已查看并记录本机设备 ID。
- 已添加需要同步的文件夹(如 Obsidian 仓库)。
- 了解设备 ID、文件夹共享、中继与发现的核心概念。