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

  1. 打开 https://syncthing.net/downloads/
  2. 下载 Windows (64-bit) 版本(建议选择 SyncTrayzor 安装包——它包含 Syncthing 核心与系统托盘界面)。
  3. 运行安装程序,按默认设置完成安装。
  4. 安装完成后,SyncTrayzor 会自动启动并在系统托盘显示图标。

macOS

  1. 访问下载页面。
  2. 下载 macOS 版本(.dmg 或通过 Homebrew 安装:brew install --cask syncthing)。
  3. 将 Syncthing 拖入 “应用程序” 文件夹。
  4. 首次启动时,系统可能提示 “无法验证开发者”,前往 系统设置 → 隐私与安全性,点击 仍要打开

Linux

# Ubuntu / Debian
sudo apt update
sudo apt install syncthing
 
# 启动系统服务(开机自启)
sudo systemctl enable syncthing@$(whoami)
sudo systemctl start syncthing@$(whoami)
 
# Fedora
sudo dnf install syncthing

Android

Android 平台使用社区维护的 Syncthing-Fork(功能与原版一致,专为 Android 优化):

  1. 方法一:从 GitHub Releases 下载(推荐)
    • 打开 researchxxl/syncthing-android/releases
    • 找到最新稳定版(如 v2.1.1.0),在 Assets 中下载 *.apk 文件。
    • 安装前需在 Android 设置中允许 安装未知来源应用
  2. 方法二:通过 Obtainium 安装(自动更新)
    • 安装 Obtainium
    • 添加应用源:https://github.com/researchxxl/syncthing-android,获得自动更新通知。
  3. 方法三:通过 F-Droid 安装
    • 在 F-Droid 客户端中搜索 Syncthing 并安装(更新可能较 GitHub 稍慢)。

安装完成后,打开浏览器访问 http://127.0.0.1:8384 即可进入 Web 管理界面。

第 2 步:首次启动与 Web UI

  1. 启动 Syncthing

    • Windows(SyncTrayzor):双击桌面图标,系统托盘出现 Syncthing 图标。
    • macOS:从 “应用程序” 打开 Syncthing。
    • Linux:若未配置自启,在终端运行 syncthing
    • Android:点按 Syncthing-Fork 应用图标,授予通知权限,应用将在后台自动运行。
  2. 打开 Web 管理界面

    • 浏览器访问 http://127.0.0.1:8384
    • 首次访问会看到设置向导页面。
  3. 设置设备名称(可选但推荐):

    • 点击右上角 操作 → 设置
    • 常规 标签页中,将 设备名称 设为可识别的名称(如 “工作电脑”、“笔记本”)。
    • 点击 保存
  4. 了解 Web UI 布局

    ┌─────────────────────────────────────────────────┐
    │  Syncthing  —  工作电脑               [操作] [设置] │
    ├─────────────────────────────────────────────────┤
    │  此设备                   │  远程设备             │
    │  ┌─────────────────────┐  │  ┌─────────────────┐ │
    │  │ 设备 ID: 7CNN...    │  │  │ (暂无远程设备) │ │
    │  │ 状态: 已就绪        │  │  │                 │ │
    │  └─────────────────────┘  │  └─────────────────┘ │
    │                           │                       │
    │  文件夹                   │                       │
    │  ┌─────────────────────┐  │                       │
    │  │ 默认文件夹 (Default)│  │                       │
    │  │ 路径: ~/Sync        │  │                       │
    │  │ 状态: 未共享        │  │                       │
    │  └─────────────────────┘  │                       │
    └─────────────────────────────────────────────────┘
    

第 3 步:理解并修改默认配置(可选)

默认配置适用于大多数场景,但你可以按需调整:

  1. 修改 GUI 监听地址(安全建议):

    • 设置 → 常规 → GUI 监听地址:保持 127.0.0.1:8384(仅本机可访问)。
    • 如果希望在局域网其他设备上管理本机 Syncthing,可改为 0.0.0.0:8384 并设置用户名/密码。
  2. 限制局域网使用(推荐):

    • 设置 → 连接 → 启用中继:取消勾选(如果只在局域网使用)。
    • 设置 → 连接 → 启用全局发现:取消勾选。
    • 这样 Syncthing 将仅在局域网内寻找设备,不会连接到公共中继和发现服务器。
  3. 修改文件夹路径

    • 默认文件夹 ~/Sync 可以删除或修改。
    • 我们会在实战章节中为 Obsidian 仓库配置专门的同步文件夹。

第 4 步:查看设备 ID

  1. 在 Web UI 主页,点击 此设备 区域右侧的 显示设备 ID 按钮。
  2. 弹窗中显示完整的设备 ID(52 位字符)。
  3. 你可以:
    • 复制设备 ID 文本。
    • 显示二维码:方便手机端扫描添加。
    • 设备 ID 也以 QR 码 形式显示在左侧面板。

将此设备 ID 保存好,后续配对时需要交换给其他设备。

第 5 步:添加共享文件夹(以 Obsidian 仓库为例)

在配对远程设备之前,可以先添加要同步的文件夹:

  1. 点击 Web UI 右侧的 添加文件夹 按钮。
  2. 填写以下信息:
    • 文件夹 IDobsidian-tutorial(全局唯一标识,建议使用英文)
    • 文件夹路径:选择 Obsidian 仓库的本地路径(如 D:\WorkSpace\obsidian_tutorial
    • 文件夹标签Obsidian 教程(显示用)
  3. 高级设置(可选但推荐):
    • 文件版本控制 → 选择 简单版本控制,保留版本数设为 5
    • 忽略权限:勾选(避免不同系统的文件权限差异导致同步问题)。
    • 扫描间隔:保持 60 秒。
  4. 点击 保存

文件夹 ID 必须一致

在配对后的所有设备上,同一个同步文件夹的 文件夹 ID 必须完全相同。推荐在首台设备上设置好后,在第二台设备上添加文件夹时直接复制同样的 ID。

常见问题

Q:Web UI 打不开?

确保 Syncthing 正在运行,并确认访问地址正确(默认 http://127.0.0.1:8384)。如果修改过端口,使用修改后的端口访问。

Q:防火墙弹窗警告?

Windows Defender 或第三方防火墙可能会拦截 Syncthing。首次运行时请允许 SyncthingSyncTrayzor专用网络(局域网)上通信。

Q:我可以同时在多台设备上读写同步的笔记吗?

可以。但如果同一文件在不同设备上同时修改,Syncthing 会产生冲突副本(文件名包含 .sync-conflict- 标记)。建议在不同设备上错开编辑时间,或在编辑前确认同步已完成。

练习任务

  1. 在至少一台设备上完成 Syncthing 安装与启动。
  2. 打开 Web UI(http://127.0.0.1:8384),查看本机设备 ID。
  3. 添加本仓库文件夹为 Syncthing 同步文件夹(暂不共享)。

验收清单

  • Syncthing 已成功安装并启动。
  • 可通过 http://127.0.0.1:8384 访问 Web 管理界面。
  • 已查看并记录本机设备 ID。
  • 已添加需要同步的文件夹(如 Obsidian 仓库)。
  • 了解设备 ID、文件夹共享、中继与发现的核心概念。