Loading... Syncthing是一个star达到惊人的65.9k的全平台同步应用。同步方面,本来已经习惯坚果云了,但它却一直缺失PC端与手机端的同步功能,很不方便。于是,在关注Syncthing一年多后,终于尝试着使用它了。 ![syncthing_01.png](https://bloggz-1310365773.cos.ap-guangzhou.myqcloud.com/syncthing_012024/11/29/6749d58780551.png) ![jianguoyun_01.png](https://bloggz-1310365773.cos.ap-guangzhou.myqcloud.com/jianguoyun_012024/11/29/6749d5b8370f6.png) 万事开头难。虽说Syncthing的口碑是轻量好用、方便快速,但初上手时,还是被无数个大坑小坑折磨得很疲惫。下边挑些重要的简单说说。 ### 同步的注意事项 - **基本前提**:要想不间断的顺利同步,建议入手一台有公网ip的云主机作为中心进行“中转。满足这个需求,最实惠的方案是腾讯云、阿里云等大厂促销的99元云主机方案,足够优惠。然后,先在云主机上进行自托管部署,再按照教程和官网文档添加远程设备。一般的,在同一个物理局域网下的设备就可以互相添加了。 Syncthing部署参考教程:[Docker 搭建开源文件同步工具 Syncthing - 阿蛮君博客](https://www.amjun.com/1966.html) - **跨网段组网问题**:虽然Syncthing已经内置的跨网段的打洞与穿透功能,但实际上,由于网络结构的复杂性,穿透往往不能成功,这就造成了多个设备之前难以互相发现和连接的问题。怎么办呢?这种情况下,就得考虑再部署Tailscale或Headscale组网了。这两个实际差不多,Tailscale是官方服务,组网简单,但有设备数量等方面的限制;Headscale则是一个开源的第三方服务,没有官方那一堆限制,更自由,但操作是通过命令行执行的,有一点点小门槛。 Headscale部署参考教程:[Docker 搭建 headscale 异地组网完整教程](https://www.amjun.com/1957.html) - **同步的顺序问题**:当我们要把一个文件夹同步到多个设备上时,最好是从“**起点**”的那个设备开始,一次性选择完其余多个设备进行同步。不要想着先从A同步到B,再从B同步到C。因为,Syncthing的逻辑是,从B到C的过程中,“起点”发生了变化,文件夹ID也就发生了变化,再到C后,Syncthing就会认为它们已经不是“同一个”文件夹,从而生成同名而ID不同的另一个文件夹,造成无谓的麻烦。经测试,这种半路同步的情况,如果从“**起点**”A再同步到C,也是可以的。 ### 大坑:文件夹加密一致性报错 我在多个设备间同步时,被频繁冒出的以下错误提示搞得不胜其烦。奇怪的是,其它技术群里的朋友都没有碰到过。我呢,不论是手动部署,还是docker部署,还是面板部署,还是换主机,这个错误提示总是如影随形,无法摆脱。类似这样: ![jmyzx_01.png](https://bloggz-1310365773.cos.ap-guangzhou.myqcloud.com/jmyzx_012024/11/30/6749ead643245.png) 大意:检查文件夹“abc”与设备X的加密一致性失败:**远程**期望交换明文数据,但**本地**数据是加密的(文件夹类型接收-加密)。 #### 排查过程 怎么办?既然是”加密“问题,那就围绕”加密“或相关的系统设置来排查。先后进行过的排查项目有: - 坚果云:是否不能与坚果云选择同一个同步文件夹。 - ”GUI“监听地址:选择127.0.0.1,还是0.0.0.0;是否勾选https。 - 设备的节点地址:选择dynamic,还是tcp://a.b.c.d:22000。 - 设备数量:是否两个以上的设备加入集群就会引发报错。 - 文件位置:不论是电脑还是手机,是否某些系统定义的位置有权限限制。 - 文件夹类型:是否只能有一个设备选择“发送和接收”选项。 经排查,以上问题均不是造成上文所述文件夹“加密一致性失败”的原因! #### 问题定位 面对这个大坑,搜索、问AI、问群友,均无可行的解决方案,以致我都准备放弃Syncthing。转念一想,再坚持一下,再试试!最终,还是Syncthing官方论坛的帖子给了我启发。问题在这里:文件夹→→编辑→→共享:已共享的设备→加密密码。这里如果有密码,那么此设备上的该文件夹就是“加密”的,否则就是“明文”。如下图: ![dingwei_01.png](https://bloggz-1310365773.cos.ap-guangzhou.myqcloud.com/dingwei_012024/12/01/674c7bc296c7b.png) 至于为什么报错,那是因为Bitwarden的自动填充功给共享文件夹自动填写了密码(实际就是登录这个网页的密码),而使用者完全没注意到!于是,当在另外一台设备上接受这个文件夹的共享时,那边有密码,这边没密码(或相反),错误就出现了!! ![dingwei_02.png](https://bloggz-1310365773.cos.ap-guangzhou.myqcloud.com/dingwei_022024/12/01/674c7d9a72e49.png) #### 解决办法 找到了原因,解决办法就很简单了:要么,手动删除Bitwarden自动填写的共享文件夹密码,要么,临时禁用Bitwarden。 最后修改:2024 年 12 月 04 日 © 允许规范转载 打赏 赞赏作者 支付宝微信 赞 如果觉得我的文章对你有用,请随意赞赏