Syncthing 入门:让两台设备同步文件

假设你有两台计算机,想在它们之间同步文件。按照 Syncthing 的术语,后文将把它们称为“设备”。“本地设备”指你正在配置、查看状态等的那一台;“远程设备”指另一台计算机。

按照本指南操作时,最好在两台计算机上都完成安装,并行进行配置。即使无法同时访问两台计算机也没有关系,只是操作结果不会立刻显现。

@theincogtion 为本指南制作了 YouTube 视频版本:Ubuntu、Debian、Mint 安装视频演示如何通过 PPA 安装 Syncthing,并有德语版本;另有Windows 安装视频及其德语版本。这些是原文提供的视频链接,安装渠道请以当前官方发布页和仓库说明为准。

安装

可以先查看社区贡献,选择最适合使用场景的 Syncthing 封装版本。原文以跨平台图形应用 Syncthing-GTK 为例。社区还为 Windows、Android 等平台开发了不同封装,方便在相应设备上运行 Syncthing。

这些封装在底层使用 Syncthing 核心,因此以后更换封装版本不必从头理解同步机制。本页余下内容将使用核心 Syncthing 程序,说明如何配置两台设备。

Syncthing 核心程序

下载适用于你操作系统的 Syncthing 最新发布版本并解压。使用 Debian 或 Ubuntu 时,也可以查看官方 Debian 软件仓库。

解压后的程序名为 syncthing;在 Windows 上则是 syncthing.exe。用你习惯的方式启动即可,在图形桌面中通常可以双击。为了清楚展示启动过程,这里沿用原文的命令行示例。

首次启动时,Syncthing 会生成配置文件和加密密钥,然后在浏览器中打开管理界面。终端里会出现类似下面的日志。

下方是原文的历史示例,包含 2020 年的 Syncthing v1.7.1 和 Go 1.14.4,版本、路径、设备标识及性能数字不代表本次执行或你的设备。示例设备 ID、发现服务 ID、设备日志前缀及外部 IP 地址已匿名化,其他日志内容保留。

> syncthing
[monitor] 22:56:32 INFO: Log output saved to file "C:\Users\User\AppData\Local\Syncthing\syncthing.log"
[monitor] 22:56:32 INFO: Default folder created and/or linked to new config
[start] 22:56:32 INFO: syncthing v1.7.1 "Fermium Flea" (go1.14.4 windows-386) teamcity@build.syncthing.net 2020-07-11 18:17:41 UTC
[start] 22:56:32 INFO: Default folder created and/or linked to new config
[start] 22:56:32 INFO: Default config saved. Edit C:\Users\User\AppData\Local\Syncthing\config.xml to taste (with Syncthing stopped) or use the GUI
[示例设备] 22:56:33 INFO: My ID: [示例设备 ID 已隐去]
[示例设备] 22:56:34 INFO: Single thread SHA256 performance is 123 MB/s using crypto/sha256 (108 MB/s using minio/sha256-simd).
[示例设备] 22:56:34 INFO: Hashing performance is 106.31 MB/s
[示例设备] 22:56:34 INFO: Overall send rate is unlimited, receive rate is unlimited
[示例设备] 22:56:34 INFO: Using discovery server https://discovery.syncthing.net/v2/?noannounce&id=[示例发现服务 ID 已隐去]
[示例设备] 22:56:34 INFO: Using discovery server https://discovery-v4.syncthing.net/v2/?nolookup&id=[示例发现服务 ID 已隐去]
[示例设备] 22:56:34 INFO: Using discovery server https://discovery-v6.syncthing.net/v2/?nolookup&id=[示例发现服务 ID 已隐去]
[示例设备] 22:56:34 INFO: Ready to synchronize "Default Folder" (default) (sendreceive)
[示例设备] 22:56:34 INFO: QUIC listener ([::]:22000) starting
[示例设备] 22:56:34 INFO: TCP listener ([::]:22000) starting
[示例设备] 22:56:34 INFO: Relay listener (dynamic+https://relays.syncthing.net/endpoint) starting
[示例设备] 22:56:34 INFO: Completed initial scan of sendreceive folder "Default Folder" (default)
[示例设备] 22:56:34 INFO: GUI and API listening on 127.0.0.1:8384
[示例设备] 22:56:34 INFO: Access the GUI via the following URL: http://127.0.0.1:8384/
[示例设备] 22:56:34 INFO: My name is "This computer"
[示例设备] 22:56:45 INFO: quic://0.0.0.0:22000 detected NAT type: Symmetric NAT
[示例设备] 22:56:45 INFO: quic://0.0.0.0:22000 resolved external address quic://[示例外部地址已隐去]:59296 (via stun.syncthing.net:3478)
[示例设备] 22:56:46 INFO: Detected 0 NAT services

此时,Syncthing 还会在你的用户主目录下创建 Sync 目录,并把其中的默认文件夹称为 Default Folder。Windows 用户主目录可通过 %USERPROFILE% 表示。你可以从这个默认文件夹开始,之后再移除它或添加更多文件夹。

配置

管理界面会自动打开,之后仍可通过 http://localhost:8384/ 访问。管理界面需要 Cookie 才能正常工作,请确保浏览器允许它使用 Cookie。初始界面大致如下。

查看原文真实界面图 1:初始管理界面
图 1:官方文档的初始管理界面。

左侧显示“文件夹”列表,也就是需要同步的目录。已经创建的 Default Folder 此时标为 Unshared,表示尚未与其他设备共享。右侧显示设备列表,目前只有一台设备:正在运行 Syncthing 的本机。

要让 Syncthing 与另一台设备同步文件,需要先告诉它另一台设备是谁,这通过交换“设备 ID”完成。设备 ID 是唯一、具有密码学安全性的标识符,在首次启动并生成密钥时创建。上面的日志会打印该 ID;在网页管理界面中,也可以点击右上角的 Actions(操作),再选择 Show ID(显示 ID)查看。

只有双方都配置了对方的设备 ID,两台设备才会连接并通信。连接要求双方相互确认,因此设备 ID 本身不需要作为秘密保存;它本质上是公钥的一部分。

在两台设备上分别点击右下角的 Add Remote Device(添加远程设备),输入另一台设备的 ID。还应选择想要共享的文件夹。设备名称是可选的,只用于显示,之后可以修改。

查看原文真实界面图 2:添加远程设备
图 2:官方文档的远程设备配置界面。
查看原文真实界面图 3:共享设置
图 3:官方文档的共享配置界面。

点击 Save(保存)后,新设备会出现在管理界面右侧,最初显示为断开连接。原文的示例中,约一分钟后它会连接到对方。请记得在另一台设备上重复同样的操作;实际等待时间以连接状态为准。

查看原文真实界面图 4:双方完成配置后的界面
图 4:官方文档中双方完成配置后的界面。

到这一步,两台设备已经共享一个空目录。向任一设备的共享目录中添加文件,这些文件就会同步到另一台设备。

如果你使用带有操作系统专属功能的 Syncthing 封装,例如原文提到的 Android 应用,可能需要打开网页管理界面,启用文件夹同步或修改其他配置选项。

遇到连接问题时

祝你使用顺利!你可以继续阅读官方文档,遇到问题时也可以到支持论坛提问。

如果设备无法建立连接,先阅读防火墙配置,然后查看管理界面或控制台中的错误信息。配置变更不会立即反映出来,尤其在重启后,应给 Syncthing 一些时间完成处理。


© 版权声明
THE END
喜欢就支持一下吧
点赞0 分享
评论 抢沙发

请登录后发表评论

    暂无评论内容