本文最后更新于 2024-11-12,文章内容可能已经过时。

一步到位搞定Syncthing

网上的关于Syncthing的资料或教程都比较老旧了,而且基本都是使用内网穿透的,这样就得有一台设备长期开机,不太现实,恰好我有一台阿里云的轻量,就搭建了一个小破站,利用率还不够,就想着拿来当个文件中转站,其他设备只要同步文件到云服务器,需要同步时再从云服务器同步就好了

目前搭建Sync thing的方案有很多,这里例举几个:

  1. 本地设备同步(局域网内):适合在家中或办公室中使用,所有设备都在同一个局域网内进行文件同步。

  2. 个人服务器 + 远程设备同步:在个人服务器上搭建 Syncthing,并与外部的多个设备(如手机、笔记本等)进行文件同步。

  3. NAS(网络附加存储)搭建 Syncthing:将 Syncthing 部署在 NAS 上,实现家庭或小型办公室的集中化存储和同步。

  4. Docker 搭建 Syncthing:使用 Docker 容器来运行 Syncthing,实现轻量级部署和易于管理的环境。

  5. 云服务器搭建 Syncthing:在云服务商(腾讯云,阿里云等)上搭建 Syncthing,以实现公网设备同步。

Syncthing 是一个开源、去中心化的文件同步工具,允许设备之间通过互联网或局域网共享文件。它的特点是高效、安全且不需要依赖任何云服务,所有数据在传输过程中都会经过端到端加密。

跨平台设备同步(Windows、macOS、Linux 混合环境),适合多种操作系统混合使用的场景,例如一台 Windows PC、一台 MacBook 和一台 Linux 服务器。

image-20240816112953038

准备工作:

​ 1、公网服务器,配置不要求,

​ 2、一双能复制粘贴的小手

公网服务器端安装 Syncthing

这里推荐docker安装,配合宝塔面板,可实现一键操作,非常适合对docker不熟悉的新手

image-20240816113341864

image-20240816113437220

访问公网ip:8384即可进入管理页面,

22000端口是配置设备连接时需要用到的,

1. 客户端安装 Syncthing

Windows:

  1. 下载: 前往 Syncthing 官方下载页面,选择 Windows 版本下载。
  2. 安装: 下载完成后,运行安装程序并完成安装。
  3. 启动: 安装完成后,启动 Syncthing。默认情况下,它会在后台运行并通过浏览器界面进行操作,通常地址是 http://localhost:8384

macOS:

  1. 使用 Homebrew 安装:

    brew install syncthing
    
  2. 启动:

    syncthing
    
  3. 使用浏览器访问 http://localhost:8384 进行管理。

Linux:

  1. Ubuntu/Debian:

    sudo apt install syncthing
    
  2. Arch Linux:

    sudo pacman -S syncthing
    
  3. 安装完成后,通过命令 syncthing 启动服务,并通过浏览器访问管理界面。

2. 初次配置

访问 Web 管理界面:

Syncthing 在本地通过浏览器管理。首次启动后,访问 http://localhost:8384 进入管理界面。

设置设备名称:

在主页面的右上角,你会看到设备的默认名称。点击该名称可以修改设备名称,以便在多个设备之间更容易识别。

同步文件夹:

  1. 添加文件夹: 在主页上点击 “Add Folder” 按钮。
  2. 设置文件夹路径: 选择你想同步的本地文件夹。
  3. 标识符: 为文件夹设置一个唯一的标签,这个标签将在其他设备上用于识别该文件夹。
  4. 高级设置: 可以选择设置文件夹的同步模式(例如:双向同步、仅发送或仅接收)。

3. 添加设备

获取设备 ID:

在每台设备上,Syncthing 会生成一个唯一的设备 ID。要同步设备,首先需要获取对方的设备 ID。

  1. 在 Web 界面上,点击右上角的设备名称,找到 “Show ID” 按钮,获取当前设备的 ID。
  2. 将此 ID 分享给你想同步的设备。

添加新设备:

  1. 在 Syncthing 管理界面中,点击右下角的 “Add Remote Device” 按钮。
  2. 输入对方设备的 ID,并为该设备设置一个易于识别的名称。
  3. 选择你想与该设备同步的文件夹。
  4. 双方设备都会收到添加请求,确认后即可开始同步。

4. 高级配置

设备间加密:

所有设备间的传输都经过 TLS 加密,因此数据在传输中是安全的。此外,每个设备都有自己的设备 ID,用于确保设备身份的唯一性和安全性。

带宽限制:

如果你的网络带宽有限,可以在设置中配置上传和下载速度限制,以避免影响其他网络活动。

版本控制:

Syncthing 支持文件版本控制,允许你在文件被更改或删除时保留旧版本。你可以在文件夹的高级设置中启用版本控制并设置保留策略。

5. 日常使用

文件同步状态:

在主界面中,你可以看到每个文件夹的同步状态,例如同步进度、文件夹的大小、已同步的文件数等。

冲突解决:

当两个设备同时对同一个文件进行修改时,可能会出现冲突。Syncthing 会保留所有冲突文件并在文件名中标注冲突信息,你可以手动解决这些冲突。

本地与远程设备的连接:

Syncthing 会自动选择最快的连接方式(局域网或互联网)来同步文件。如果两台设备在同一个局域网内,Syncthing 会优先使用局域网进行同步,从而加快速度。

6. 常见问题

无法连接远程设备:

  1. 检查防火墙设置: 确保 Syncthing 的端口(默认是 22000)在防火墙中未被阻止。
  2. 检查设备 ID: 确保输入了正确的设备 ID。
  3. NAT 问题: 如果设备在不同的网络中,可能需要配置端口转发以确保设备能够互相通信。

文件夹未同步:

  1. 检查文件夹权限: 确保 Syncthing 具有访问和修改文件夹的权限。
  2. 检查设备状态: 确保远程设备在线且处于同步状态。

7. 自动启动 Syncthing

Windows:

可以将 Syncthing 设置为开机启动程序:

  1. Win + R 键,输入 shell:startup 并回车。
  2. 将 Syncthing 的快捷方式复制到启动文件夹中。

macOS:

使用 launchctl 设置 Syncthing 开机启动:

brew services start syncthing

Linux:

可以使用 systemd 设置 Syncthing 为系统服务,并开机启动:

systemctl --user enable syncthing
systemctl --user start syncthing