使用 Syncthing 同步安卓手机和电脑文件
type
Post
status
Published
date
Jun 20, 2023
slug
syncthing
summary
tags
工具
syncthing
资源管理
icon
1. 介绍
Syncthing 是一款开源免费跨平台的文件同步工具,是基于 P2P 技术实现设备间的文件同步,所以它的同步是去中心化的,即你并不需要一个服务器,故不需要担心这个中心的服务器给你带来的种种限制,而且类似于 torrent 协议,参与同步的设备越多,同步的速度越快。针对隐私问题,Syncthing 软件只会将数据存储于个人信任的设备上,不会存储到服务器上。设备之间的通信均通过 TLS 进行,Syncthing 还使用了完全正向保密技术来进一步保障你的数据安全。对于处于不同局域网之中的设备之间的文件同步,Syncthing 也提供了支持。
Syncthing 支持非常多的平台,包括 Windows、macOS、Android、Linux、FreeBSD、Solaris、群晖和威联通 NAS 等,但遗憾的是,在 iOS 上只有一个第三方客户端 fsync。
2. 安装及配对
如果有能力自建,强烈建议先做第 3 步,会极大提升连接和同步速度
2.1 安装
安卓手机使用 Google Play 下载 Syncthing,Mac 可使用
brew install --cask Syncthing
2.2 配对
以一台安卓和 一部 Mac 为例
- 首先打开 Mac Syncthing 的 GUI 页面
- 操作 → 显示 ID
- 复制 ID(如果与 安卓手机配对,无需复制,直接扫码即可)
- 打开安卓手机 Syncthing App,扫码连接
- 会出现一个 新设备请求连接,选择添加设备并保存
2.3 文件夹
- 在一台设备上(以安卓为例),新增一个文件夹,并勾选上要同步的设备
- 另一台设备会弹出请求,点击添加,写好标签和文件路径,保存即可
3. docker 自建发现和中继服务
Syncthing 首先通过发现服务器 (Discosrv) 发现和索引用户,当用户设备接入发现服务器后,服务器会进行设备的连接通告,当设备之间同意连接后进行连接;两台设备建立连接后,数据需要通过 NAT 穿透的方式实现交换,如果 NAT 穿透不成功,就需要中继 (Relaysrv) 服务器传输数据。
Syncthing 官方的发现服务器 (Global Discovery) 及社区贡献的中继服务器多集中在欧洲,国内较少,使用 Syncthing 时经常会出现连接慢、时常断开、速度不稳定等问题。本篇利用一台国内的闲置服务器提供发现和中继服务加快同步效率,也可以解决隐私问题。
3.1 搭建
拉取镜像:(直接拉 dockerhub 失败… 大概是被墙了)
3.2 防火墙放行 22067, 22070, 8443 端口
3.3 查看Server device ID
上图
BF2 ...... IXWIUA2
这串即为 Server device ID3.4 设置 Server device ID
3.4.1 电脑端
打开 Syncthing,操作 -> 设置 -> 连接
3.4.2 手机端
在 设置 → 同步设置 中
3.5 测试速度
如下图,速度大概在 500KB/s,不算特别快,但比默认的 10KB/s 要好上不少