文件同步工具推荐—Synthing
在信息时代,文件管理变得越来越重要,特别是多设备的情况,目前出现了很多方案,去解决多设备文件管理困难问题(本文只针对个人)。
- 网络云盘:网盘的出现似乎为文件管理提供了一种云存储方案,但是现状令人担忧。
- 个人NAS:个人NAS提供了一种局域网的云存储方案,比较适合家庭内部,目前看来前景不错,但在互联网下不是那么有效,比如离开了家。
目录预览
- 文件管理策略
- Synthing概况
- Synthing使用说明
- Synthing高级功能
文件管理策略
目前看来,提高文件管理效率的方式,个人来看有两种,云存储策略
和同步策略
。
云存储策略
网盘和NAS的文件管理策略是可以将文件集中放在一个数据中心(服务器),这样其它任何设备都能访问这些文件,数据中心类似于图书馆,可以为其它设备提供海量数据,对小容量设备来说,解决了存储问题。
应用案例:
- 百度网盘等(互联网)
- NAS(局域网)
同步策略
不同于网盘和NAS,同步策略并不能提供一个类似图书馆的功能,仅仅是保持数据同步,保证可以方便在多设备之间切换工作,以及自动备份,不需要额外操作。一般来说,目前的同步往往采用自动同步方式,在本机操作,响应快,自动影响其他设备上的文件,不过会存在流量浪费的情况。
应用案例:
- 各种软件(如office等)的自动云备份,云同步
- 手机电脑端数据同步软件,新旧手机端同步(解决换机难题)
云存储策略 VS 同步策略
云存储策略和同步策略,并不是孰优孰劣,它们各有优势,应该根据个人需求进行选择。相对来说,同步策略相对人性化一些,不需要额外的文件移动,文件复制操作,实现多设备文件管理,不需要额外的服务器部署,额外管理开销基本上为0,但是不适合存储量特别大的文件管理.
Synthing概况
今天我要推荐的文件同步工具是Synthing,官网为:https://syncthing.net ,这是一款开源的文件同步工具,完全免费,支持多设备文件同步,目前来说是我找到的最好的同步工具,使用体验非常好。
由于是国外的原因,软件下载十分慢,这里我下载了,放在了百度云,供大家下载。
- 百度云(提取码:4f4b,只有android端和win10端)
特点:(官方说明)
开源(不只是免费):持续更新,二次开发
隐私安全(私有):数据不存储在云端,加密传输,认证机制
-
功能强大,使用简单:只需下载软件,无需注册,图形化操作。
- 多设备支持,支持android,mac,win,linux (貌似不支持ios)
- 操作简单,数据传输不需要知道ip地址,每个设备都有唯一ID,只需使用ID连接。
- 自动同步,多设备同步,无需人工干预。
- 可设置同步条件,满足条件才同步
同步技术简要说明:
Synthing对每一个设备都有一个唯一ID,两个设备通过ID确定同步设备,而在网络中数据传输是需要ip地址的,为了从ID找到ip地址,这里使用了全球发现服务器
,默认的全球发现服务器default
由官方提供,除此之外,还支持本地发现,即同一局域网下,可以开启本地发现,发现其它设备。
知道设备网络地址后,就可以进行数据传输了,两个设备数据同步传输需要分两种情况:
- 同一局域网情况(如,同一wifi下):数据直连,传输速度快,不耗流量。
- 互联网情况:由于NAT的原因,无法之间传输,这里使用
中继服务器
进行流量转发,中继服务器
是一个网络设备池,默认中继服务器default
由官方提供,传输速度慢。
Synthing使用说明
软件下载:官网:https://syncthing.net , 百度云(提取码:4f4b,只有android端和win10端)
android 端
1.下载安装好APP(百度云中有)
- 我这里以及进行过添加,所以显示了多个同步文件夹。
2.添加设备
在设备的tab下,点击"+"按钮(建议在网页管理端添加设备,相对方便一点。)
3.添加同步文件
在文件夹的tab下,点击"+"按钮
4.网页管理
- 参考win10端网页管理
win10 端
注:小白用户强烈推荐图形化集成软件 :SyncTrayzor (百度云中有)
1.下载安装(百度云中有)
2.网页端管理
点击软件运行,会弹出黑窗口和浏览器web界面http://127.0.0.1:8384/
- 按提示添加即可
3.图形化集成软件SyncTrayzor
如果你不适应CMD方式控制,你可以选择图形化的集成软件,支持小图标,支持后台运行,支持开机自启,小白用户推荐。界面和web界面一致。
- SyncTrayzor: Windows tray utility, filesystem watcher & launcher (百度云中有)
Mac端
图形化集成软件:syncthing-macos: macOS application bundle
ubuntu 端
建议使用apt安装
# apt仓库添加
curl -s https://syncthing.net/release-key.txt | sudo apt-key add -
echo "deb https://apt.syncthing.net/ syncthing stable" | sudo tee /etc/apt/sources.list.d/syncthing.list
sudo apt-get update
# Update and install syncthing:
sudo apt-get install syncthing
运行
syncthing
#打开浏览器http://127.0.0.1:8384/管理
#后台运行
#nohup syncthing &
Synthing高级功能
由于Synthing的官方服务器在国外,所以,有时候在互联网的情况下,中继同步比较慢。(局域网下同步不不依赖服务器,不受影响)。这里简单介绍一下如何搭建私人服务器(包括发现服务器和中继),加速互联网下的同步。
- 前提:你得有云服务器
- 其实我个人觉得局域网同步基本上满足了大部分需求,无需搭建私人服务器。
搭建私人全球发现服务器
服务器配置(ubuntu)
安装
#syncthing apt仓库添加,参考上文
#install syncthing:
sudo apt-get install syncthing-discosrv
运行
#后台运行
nohup stdiscosrv -listen=3000 &
- listen:默认为8443
中止后台程序
#查询strelaysrv PID
#sudo ps -aux | grep strelaysrv
#kill
#sudo kill -9 <填写strelaysrv PID>
客户端设置
https://1.2.3.4:3000/?id=7DDRT7J-UICR4PM-PBIZYL3-MZOJ7X7-EX56JP6-IK6HHMW-S7EK32W-G3EUPQA
##修改说明
# 服务器 ip: 发现服务器的IP,含服务端口(该例中为1.2.3.4:3000)
# id :服务器生成的设备id (该例中为7DDRT7J-UICR4PM-PBIZYL3-MZOJ7X7-EX56JP6-IK6HHMW-S7EK32W-G3EUPQA)
android端:同步设置->全球发现服务器(默认default)
web端(支持win10,android):操作->设置->连接->全球发现服务器(默认default)
搭建私人中继服务器
服务器配置
安装
#syncthing apt仓库添加,参考上文
#install syncthing:
sudo apt-get install syncthing-relaysrv
运行
#后台运行
nohup strelaysrv -status-srv 22068 &
- listen,默认值为22067
- status-srv,默认值为22070
客户端设置
tcp://0.0.0.0:22000, quic://0.0.0.0:22000, relay://1.2.3.4:22067/?id=7DDRT7J-UICR4PM-PBIZYL3-MZOJ7X7-EX56JP6-IK6HHMW-S7EK32W-G3EUPQA&pingInterval=1m0s&networkTimeout=2m0s&sessionLimitBps=0&globalLimitBps=0&statusAddr=:22068&providedBy=
##修改说明
# 服务器 ip: 中继服务器的IP,含服务端口(该例中为1.2.3.4:22067)
# id :服务器生成的设备id (该例中为7DDRT7J-UICR4PM-PBIZYL3-MZOJ7X7-EX56JP6-IK6HHMW-S7EK32W-G3EUPQA)
# statusAddr :状态监听端口(该例中为“:22068”,默认为“:22070”)
- android端:同步设置->同步协议监听地址(默认default)
- web端(支持win10,android):操作->设置->连接->协议监听地址(默认default)
注意:
- 监听地址有三个,前两个为局域网监听,不可少,否则不能局域网内设备会有问题。
- 发现服务器和中继服务器,可以运行在同一个服务器上。