使用 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 页面
    • notion image
  • 操作 → 显示 ID
    • notion image
  • 复制 ID(如果与 安卓手机配对,无需复制,直接扫码即可)
    • notion image
  • 打开安卓手机 Syncthing App,扫码连接
    • notion image
  • 会出现一个 新设备请求连接,选择添加设备并保存

2.3 文件夹

  • 在一台设备上(以安卓为例),新增一个文件夹,并勾选上要同步的设备
    • notion image
  • 另一台设备会弹出请求,点击添加,写好标签和文件路径,保存即可
    • notion image
      notion image

3. docker 自建发现和中继服务

Syncthing 首先通过发现服务器 (Discosrv) 发现和索引用户,当用户设备接入发现服务器后,服务器会进行设备的连接通告,当设备之间同意连接后进行连接;两台设备建立连接后,数据需要通过 NAT 穿透的方式实现交换,如果 NAT 穿透不成功,就需要中继 (Relaysrv) 服务器传输数据。
Syncthing 官方的发现服务器 (Global Discovery) 及社区贡献的中继服务器多集中在欧洲,国内较少,使用 Syncthing 时经常会出现连接慢、时常断开、速度不稳定等问题。本篇利用一台国内的闲置服务器提供发现和中继服务加快同步效率,也可以解决隐私问题。

3.1 搭建

拉取镜像:(直接拉 dockerhub 失败… 大概是被墙了)
notion image
notion image

3.2 防火墙放行 22067, 22070, 8443 端口

3.3 查看Server device ID

notion image
上图 BF2 ...... IXWIUA2 这串即为 Server device ID

3.4 设置 Server device ID

3.4.1 电脑端

打开 Syncthing,操作 -> 设置 -> 连接
notion image

3.4.2 手机端

在 设置 → 同步设置 中
notion image

3.5 测试速度

如下图,速度大概在 500KB/s,不算特别快,但比默认的 10KB/s 要好上不少
notion image

参考

 

© insv 2021 - 2023