当前位置:
AIGC文章详情

删掉手机上一张照片,NAS 里的备份也跟着没了:把 Syncthing 当备份前必须搞懂的三个机制

源自159位全网作者

07:53

最近两个月,Syncthing 教程迎来了井喷。B站、知乎、小红书,到处都在教你怎么安装、怎么配对、怎么把网盘会员退掉。但仔细看,几乎所有教程都止步于"配通了",很少有人讲另一面:

Syncthing 默认是双向同步,而"删除"也是同步内容之一。

你在任何一台设备上删掉一个文件,只要其他设备在线,这个删除就会"忠实"地分发到所有共享该文件夹的设备上。偏偏 Syncthing 的文件版本控制默认是关闭的,删掉就是真的没了。

这不是危言耸听。Syncthing 官方 FAQ 里有一个直白的问题:"Syncthing 是我理想的备份应用吗?“官方回答的第一个词就是"不”——对文件的所有更改,包括修改和删除,都会传播到你的所有设备上。Syncthing官方文档所以这篇不是劝退。工具层面,Syncthing 依然是多设备同步里的顶级免费选择,今天要补的三门课——删除传播、文件版本控制、文件夹类型——恰恰是教程普遍不教的部分。看懂了,你可以继续放心用;看不懂,迟早要用数据交学费。

一、删除传播:镜像的职责是"一样",不是"安全"

Syncthing 的默认文件夹类型是"发送与接收"(Send & Receive),双向收发。新增、修改、删除,一律被称作"变更",一律分发给所有共享这个文件夹的设备。本地文件和集群"全局版本"比对时,全局没有的,本地也要删掉——删除不是一个需要确认的特殊操作,它就是一次普通变更。

删掉手机上一张照片,NAS 里的备份也跟着没了:把 Syncthing 当备份前必须搞懂的三个机制

逻辑上这没毛病,如果每次删除都要全设备确认,同步就退化成手动操作了。但这个设计落到真实场景里,是这样的:

  • 你在电脑上误删一个目录,NAS 和手机上的对应目录会跟着清空;

  • 你一次性重命名或移动大批文件,可能会有更大的损失。

后面这条不是推测。Syncthing 官方论坛有人发过一场噩梦:330GB 数据复制到两台机器后做了一批目录移动,同步结束只剩 220GB,发帖人说如果搞不清哪里出了问题,就只能停用 Syncthing 了,“数据丢失实在太危险”。

官方开发者的回复点破了核心:Syncthing 并不把"移动/重命名"当成一个操作,而是看作"删除+新建",它一看到变更就尽快处理,有时先看到的是删除。Syncthing官方论坛再叠加磁盘写满之类状况时,新建进行不下去,删除却照常执行,100GB 就这么没了。

对删除唯一的内置保护,是冲突机制。知乎上有高赞回答用大白话总结过:Syncthing 可能会造成笔记冲突,但它会通过新建文件来解决冲突,而不是删除。知乎具体规则是:当两台设备同时修改同一个文件、且内容确实不同时,修改时间较旧的版本会被改名保留,而不是被覆盖;哪怕冲突的一方是"修改"、另一方是"删除",只要删除赢了裁决,文件同样会被改名留作冲突副本。Syncthing官方文档但注意,这里的关键词是"同时":一边删完并同步完成,另一边根本没来得及知道,就不存在冲突,只有删除。

另外,冲突文件生成之后,会像普通文件一样被分发到所有设备。Syncthing官方文档所以哪天你在同步文件夹里发现命名带 `xxx.sync-conflict-20260821-153000-XXXX` 的陌生文件,先别顺手删掉,打开看看,它可能正是你以为"丢了"的那个版本。

二、文件版本控制:官方自带的后悔药,但默认关闭

Syncthing 对删除传播并非无解,它内置了文件版本控制(File Versioning):当文件因为远端设备的变更被删除或覆盖时,旧版本会先被移进文件夹内的 `.stversions` 目录。Syncthing官方文档但用之前,必须弄清三件事:

第一,默认是"不启用文件版本控制"。官方文档写得清楚:版本控制按文件夹、按设备分别配置,默认不保留任何旧版本文件。Syncthing官方文档跟着教程一路点下来,最容易漏掉的就是这一步,不开等于裸奔。

第二,它只保"别人造成的变更"。官方文档解释:版本控制只作用于从其他设备收到的变更——Bob 改了文件同步过来,你机器上的旧版本会被存档;但你在本机自己改、自己删,Syncthing 不会、也无法替你存档。Syncthing官方文档所以版本控制最该开的地方,是 NAS、家里电脑这类扮演"接收方"的备份角色。

第三,四种策略各有分工,别选错:

策略

行为

适合谁

垃圾桶(Trash Can)

移入 .stversions,满 N 天自动清理

大多数用户,最直观

简单(Simple)

每个文件保留 N 个版本

频繁修改的办公文档

阶段式(Staggered)

按时间区间逐级降密度保留(30秒→小时→天→周)

长期归档,省硬盘

外部命令(External)

交给你自己写的脚本处理

会写脚本的进阶玩家

我的建议很简单:备份用途的文件夹开"垃圾桶",保留 30 天。存储成本极低,买的是真后悔药。

删掉手机上一张照片,NAS 里的备份也跟着没了:把 Syncthing 当备份前必须搞懂的三个机制

官方也把话说透了:就算开了版本控制,他们仍鼓励你用其他工具保护数据,毕竟谁也防不住自己(或他们)犯错。Syncthing官方文档

三、文件夹类型:一个开关决定谁说了算

文件夹编辑页里有一个"文件夹类型"选项,它是第二道安全阀,共三个取值:

发送与接收(Send & Receive,默认):双向镜像,谁删大家都删。适合"两台电脑的工作文档必须保持一致"的场景。

仅发送(Send Only):本机是基准,其他设备的一切变更都被忽略。注意,这个类型下有一个红色的"覆盖更改"(Override Changes)按钮,点下去会把本机当前状态强推给所有设备——本机没有的文件,会在其他设备上被全部删除。Syncthing官方文档不理解后果的话,请千万不要手滑点它。

删掉手机上一张照片,NAS 里的备份也跟着没了:把 Syncthing 当备份前必须搞懂的三个机制

仅接收(Receive Only):只收不发,远端的变更(包括删除)会在本地执行,但本地改动永远不会传回去。官方给它的定位就是复制镜像与备份目的地——"手机照片备份到 NAS"要的就是它。Syncthing官方文档普通备份场景,用它就够了。

社区里还有一个常被问到的高级选项 `ignoreDelete`,开启后会忽略来自远端的删除请求,但官方警告得很直接:这个选项通常就应该保持 false,除非你是完全清楚自己在做什么的高级用户,否则不建议改动。Syncthing官方文档开启之后,两台设备会互相认为对方"没同步完",状态非常混乱,而且你一旦修改了那个"被忽略删除"的文件,修改还会反向传回给对方。普通用户别碰。

四、到底怎么配:三种拓扑直接抄

把上面三个机制组合起来,三种最常见场景的推荐配置如下:

1. 办公双向同步(台式机 ⇄ 笔记本):两边都用默认的发送与接收,各自开启"简单"版本控制、保留 5 个版本,改坏文档能回滚。这套逻辑确实绕,连播放量 7 万+ 的教程作者都承认:功能虽然都是中文写的,一开始真没理解其中的逻辑,用久了才搞明白。哔哩哔哩

2. 手机照片备份(手机 → NAS):NAS 端文件夹设为"仅接收"+垃圾桶版本控制(保留 30 天)。手机上误删,文件会进入 NAS 的 `.stversions`,30 天内可救回;注意别随手点 NAS 端红色的"还原本地更改",你的恢复操作本身属于"本地更改",点一下就撤销了。

3. 长期归档镜像(电脑 → 备份机):备份机设"仅接收"+阶段式版本控制,最长保留 365 天。

删掉手机上一张照片,NAS 里的备份也跟着没了:把 Syncthing 当备份前必须搞懂的三个机制

另外两个通用习惯:

第一,同步过历史、本地却突然变空的设备要警惕。硬盘损坏、Syncthing 停着的时候误清空了文件夹,这类设备再上线时,会把"删除"当最新状态广播给整个集群。发现这种情况,先暂停其他设备的同步再排查。

第二,同步不是备份。版本控制开了,官方口径里它也只是容错,不是备份。真正重要的数据请按 3-2-1 原则来:3 份副本、2 种介质、1 份异地。Syncthing 能扛住前两份,第三份交给离线冷备更稳。

最后说一句

Syncthing 目前的稳定版是 v2.1.3,8 月 5 日发布,2.1 这一代加入了界面分组、HTTP/HTTPS 代理支持等能力,但本文讲的三个机制——删除传播、版本控制、文件夹类型——从 1.x 到 2.x 没有任何变化,老教程的结论依然成立,本文也一样适用。

这类工具的魅力在于"数据是你自己的",但自由的另一面是责任:网盘替你保管数据,收你会员费;Syncthing 不收一分钱,数据的生死就全看你对机制的理解了。

如果这篇帮你保住了数据,点个赞收个藏;你踩过的 Syncthing 坑,评论区聊聊——我想看看有多少人和我一样,被"删除传播"忠实同步过。

内容由AI生成
0
扫一下,分享更方便,购买更轻松
0评论

当前文章无评论,是时候发表评论了
提示信息

取消
确认
评论举报

最新文章 热门文章