怎么在 Linux 上安装配置 Syncthing 2.1(2026 版)

AI 生成的 Syncthing 2.1 网络拓扑示意图(非官方截图):五台设备围绕中心引擎块,双向同步箭头连接。

AI 生成的 Syncthing 2.1 网络拓扑示意图(非官方截图)。

如果你有两台或更多电脑——笔记本、家用服务器、NAS、充当备份的老台式机——你大概已经撞上了”云同步”和”手动 U 盘拷贝”之间那道尴尬的缝隙。云同步要你信任别人的硬盘;手动拷贝平时还能凑合,等真需要时就不够用了。Syncthing 是第三个选项,从 2013 年起就安静地跑着:它在你的设备之间点对点同步文件,传输全程加密,没有任何中心服务器

两个月前,项目在 2.0 大版本(2025 年 8 月)之上发布了期盼已久的 2.1.3 小版本。这也是 Syncthing 在 Linux 上从未有过的友好。本文带你看看 2.1 究竟改了啥、为什么重要、以及怎么在现代 Linux 机器上装好它,避开那些常见的坑。

官网: https://syncthing.net —— 免费开源,MPL-2.0 协议,Go 编写。

用一段话说清楚 Syncthing 是什么

Syncthing 是一个小巧(约 12 MB)的 Go 守护进程,能跑在 Linux、macOS、Windows、BSD 甚至 Android 上。每个运行实例由一个 设备 ID 标识——一长串加密指纹,你跟自己希望同步的设备交换这个 ID。一旦两台设备互相信任对方的 ID,并约定一个共享文件夹,文件就会双向流动:能本机走 Wi-Fi 就走 Wi-Fi,否则走 Internet 上的中继服务器,全程 TLS 加密。没有云账号,没有上传配额,也没有第三方能读你的数据,因为你的数据根本没出过你的机器。

AI 生成的 Syncthing 2.1 架构示意图(非官方截图):中央引擎块,连接文件夹同步、设备发现、块交换协议三大子系统。

AI 生成的 Syncthing 内部架构示意图(非官方截图)。

你在 http://127.0.0.1:8384 看到的网页界面,其实是一个用 JavaScript 写的前端,跟守护进程暴露的 HTTP API 通信。每一台平台跑的都是同一套代码——所以下面这套 Linux 安装流程,在树莓派、Ubuntu 24.04 桌面、Fedora Server 虚拟机上完全一致。

为什么现在装 2.1

2025 年 8 月发布的 2.0 把 Syncthing 内部的 LevelDB 索引换成了 SQLite,大体量文件夹扫描明显加快,跨小版本滚动升级也更稳。随后的 2.1 系列主要是修 bug 和打磨细节,但有一个 Linux 用户关心的改动:STHOMEDIR(state 目录)改了默认位置,开始遵循 XDG 基础目录规范。在 Linux 上,Syncthing 现在找的是 $XDG_STATE_HOME/syncthing,回退到 ~/.local/state/syncthing,不再用历史上的 ~/.config/syncthing

这个变化不大,但如果你从 1.x 年代就开始用 Syncthing,那它跟你有关。你在老路径 ~/.config/syncthing 下的配置仍然有效(Syncthing 会继续用它),但全新安装会落到新位置。2.x 的迁移是自动的。

2.1.3 在 2026 年 8 月 5 日 发布,是目前的稳定版。新用户应当从这一版开始。

Linux 安装:选一条路

2026 年的 Linux 上,有三条靠谱的路。挑对应你发行版的那条。

方案 A:用发行版仓库(最省事)

绝大多数主流发行版都把 Syncthing 收进了主仓库,但版本通常落后一两个小版本。如果你的发行版仓库里已经到 2.1.x,直接用就行。先查一下:

Bash
syncthing --version

在 Fedora、RHEL、openSUSE、Tumbleweed 以及基于 Arch 的 Endeavour 上:

Bash
# Fedora / RHEL / Nobara
sudo dnf install syncthing

# Arch / Endeavour / Manjaro
sudo pacman -S syncthing

# openSUSE Tumbleweed / Leap
sudo zypper install syncthing

在 Ubuntu 24.04 LTS(Noble)和 Debian 12(Bookworm)上,上游通常还是 1.x。如果你在这些发行版上非要 2.x,看方案 B。

方案 B:官方上游 tarball(最新)

https://syncthing.net/downloads/syncthing-linux-amd64-v2.1.3.tar.gz(或者根据你的架构选 -arm64 / -arm)。站点附带 SHA-256 签名清单;项目文档里说过 syncthing --version 会拒绝启动被篡改的二进制,所以只要你是 TLS 下载的,就能信。

Bash
cd ~/Downloads
tar -xzf syncthing-linux-amd64-v2.1.3.tar.gz
sudo mv syncthing-linux-amd64-v2.1.3/syncthing /usr/local/bin/
syncthing --version
# syncthing v2.1.3 "Fermium Reunion" (go1.23 linux-amd64)

如果你想让 GUI 绑到 80/443 又不想用 root,可以跑:

Bash
sudo setcap cap_net_bind_service=+ep /usr/local/bin/syncthing

方案 C:容器化(最干净,服务器味)

如果你部署的是一台无头机器(NAS、VPS、Docker 宿主机),Docker Hub 上的官方镜像维护得挺好:

Bash
docker run -d --name syncthing 
  -p 8384:8384 -p 22000:22000/tcp -p 22000:22000/udp 
  -p 21027:21027/udp 
  -v ~/.local/state/syncthing:/var/syncthing 
  --restart=unless-stopped 
  syncthing/syncthing:latest

-p 22000/tcp22000/udp 是真实同步流量必须开的。21027/udp 是局域网发现端口。如果你跳过了 UDP 那几个,Syncthing 也能跑——但只能走全球中继服务器,更慢、隐私也更弱。

用 systemd 用户服务跑起来

2026 年 Linux 上推荐的方式是跑成 systemd 用户服务。这样开机自启(不用 root),日志按用户隔离,systemctl --user 一条命令管全。

先交互式跑一次,让它生成配置,并从日志里抄一下 GUI 链接:

Bash
syncthing
# 看最后几行——你会看到类似:
# [TXT-NNNN] GUI URL: http://127.0.0.1:8384/
# Ctrl+C 停掉,我们下面要用 service

然后启用随发行版附带的 service 模板(Debian/Ubuntu/Fedora 自带;如果是 tarball 安装,可以从文档里把 unit 文件拷过来):

Bash
systemctl --user enable syncthing
systemctl --user start syncthing
systemctl --user status syncthing
loginctl enable-linger $USER    # 这样登出后也能继续跑

在浏览器里打开 http://127.0.0.1:8384。第一眼会弹一个警告说 API 还没认证——先点过去,我们下面会把它锁上。

配对你的前两台设备

Syncthing 配对设备靠交换 设备 ID。在设备 A(你的笔记本)上,打开 GUI 点 Actions → Show ID。你会看到一串 56 字符的 base32,开头大概是 MFFXI...。把它抄下来。

在设备 B(你的台式机)上,打开 http://127.0.0.1:8384,在右下角的 Remote Devices 面板点 Add Remote Device,把设备 A 的 ID 贴进去,给它起个昵称,保存。设备 A 会弹出一个”New Device”提示——接受。两台相互信任的同伴就建立了。

反方向再做一次,让两台在 Remote Devices 面板上都能看到对方。

AI 生成的示意图(非官方截图):两个文件夹通过双向同步箭头连接,旁边带小锁盾图标,象征加密的点对点同步。

AI 生成的双向加密同步示意图(非官方截图)。

共享第一个文件夹

在设备 A 上点 Add Folder,给它起个标签,比如 Notes,把 Folder Path 指到一个真实存在的目录,比如 /home/you/Notes,再到 Sharing 选项卡里勾上设备 B 的名字。保存。

设备 B 会弹出新文件夹提示。默认会提议在与设备 A 同样的相对路径下创建,在 Linux 上就是 /home/you/Notes——确认。

往设备 A 的 /home/you/Notes 里丢个文件。几秒钟后,文件就出现在设备 B 上,两边的 Web GUI 里文件夹状态从 Syncing 变成 Up to Date

这就是整个核心循环。剩下都是变体。

实际上你该顺手做的几件事

能跑不等于稳。花十分钟把下面这些设了,今天就完事。

把 GUI 锁上。 打开 Actions → Settings → GUI,设用户名、设密码。Listen Address 那一栏,能不改 127.0.0.1:8384 就别改;真要在 LAN 上暴露,至少把 GUI → Authentication:username + password 打开,前面挂一个反向代理(Caddy、Nginx)。

选对 Folder Type。 单向推送(比如只在一台机器上写的 recordings/)用 Send Only。单向接收(比如 backups/ 这种目的地)用 Receive Only。其它场景保留默认的 Send & Receive

打开 ignore patterns,把垃圾挡在外面。在 Folder → Ignore Patterns 里塞一份合理的起步模板:

Bash
# OS / 编辑器留下的痕迹
**/.DS_Store
**/Thumbs.db
**/*.swp
**/.*~

# 构建产物
**/node_modules
**/target
**/__pycache__
**/.cache

在文件夹的 Advanced 选项里打开 Versioning → Staggered File Versioning。 默认保留约 5% 的文件夹大小作为滚动历史,等哪天有脚本误删了你半本笔记时,就能救你一命。

看一眼 Settings → Connection 里的 Global Discovery 和 Anonymous Usage Reporting。 默认都是开,要不要关看你的偏好。

两台设备不在同一个局域网怎么办?

两台 Syncthing 设备在同一个 Wi-Fi 下,会直接握手。如果不在,就会回落到项目自营的中继服务器。能用,但费带宽,也会让你的加密流量(虽然中继看不懂)多过一道第三方。

绝大多数家庭场景,自带中继够用了。如果你经常在手机数据网下同步几个 G 的大文件,可以考虑自己买个小 VPS 当中继——文档里 Infrastructure → Relay Protocol 那节有讲。还有一条路是端口转发/反向代理:把路由器的 TCP 22000 转发到 Syncthing 那台机器上,即使跨网络也能直连,不用中继。

Syncthing 不是答案的情况

要实事求是,避免盲目推荐:

  • 只有两台设备、又很少同时编辑git 仓库加一个 remote 可能给你更多(历史、分支、冲突标记),运维成本差不多。
  • 需要在手机上离线访问、但手机很少在线,看 Syncthing-Fork(Android 上,官方 Android 客户端 2024 年已经从 Play 商店下架)。iOS 走 Möbius Sync,是第三方。
  • 团队需要共享文档、评论、在线状态,那是 Wiki 的活儿,同步工具帮不上。

但如果是”我的笔记本和我的台式机本该有同一个 ~/Notes 文件夹,TMD”,到了 2026 年,Syncthing 2.1 仍然是自托管答案里的第一名。

结论

Syncthing 2.1 是稀罕物——一个十二年的项目,2026 年还在稳定发布(2.1.3 刚发),Linux 故事非但没倒退,2025–2026 这一波反而是变好而不是变差。默认安装就是一行 dnf install 或者解压一个 tarball。一旦你接受”没有中心云可依赖”这件事,用户模型其实很简单:用 ID 配对设备、用名字共享文件夹,然后让守护进程干活就行。对于过去五年攒了一堆笔记、照片、dotfile、~/Documents 散落在一堆机器上的人,Syncthing 仍然是最好的自托管答案。

获取: https://syncthing.net
源码: https://github.com/syncthing/syncthing
2.1.3 发布说明: https://github.com/syncthing/syncthing/releases

最后修改: 2026年9月1日

作者

评论

发表评论

您的邮箱地址不会被公开。