3.6 万 Star!开源跨平台的文件同步工具
GitHub那些事 文章源自JAVA秀-https://www.javaxiu.com/21533.html
以下文章来源于开源前哨,作者小秋文章源自JAVA秀-https://www.javaxiu.com/21533.html
文章源自JAVA秀-https://www.javaxiu.com/21533.html 文章源自JAVA秀-https://www.javaxiu.com/21533.html 开源前哨文章源自JAVA秀-https://www.javaxiu.com/21533.html 点击获取10万+ star的开发资源库。 日常分享热门、有趣和实用的开源项目~文章源自JAVA秀-https://www.javaxiu.com/21533.html
【导语】:Syncthing 是一个免费的、跨平台的文件同步工具。文章源自JAVA秀-https://www.javaxiu.com/21533.html
文章源自JAVA秀-https://www.javaxiu.com/21533.html
简介
Syncthing 采用 Go 语言编写,它是一个免费的、跨平台的文件同步工具,其独有的对等自由块交换协议,可以在两台甚至更多的计算机之间同步文件,同步意味着在其中一台设备上进行的创建、修改或删除文件的操作,都会被其他设备看见。文章源自JAVA秀-https://www.javaxiu.com/21533.html
Syncthing 只会在同步的设备之间传输数据,不会上传到云中。文章源自JAVA秀-https://www.javaxiu.com/21533.html
文章源自JAVA秀-https://www.javaxiu.com/21533.html
Syncthing同步文件具有以下特点:文章源自JAVA秀-https://www.javaxiu.com/21533.html
防止数据丢失。这是文件同步最重要的目标,保护数据避免损坏。没有这个目标,同步文件将毫无意义。Syncthing不会为了性能或在某些情况下甚至是可用性而进行不安全的折衷。文章源自JAVA秀-https://www.javaxiu.com/21533.html
防范攻击者。保护用户数据至关重要,不能让用户的数据收到第三方的窃听或修改。文章源自JAVA秀-https://www.javaxiu.com/21533.html
易用性。复杂的概念和数学构成Syncthing功能的基础,但是对于普通用户来说不需要关心底层实现,其使用方法非常简单,文章源自JAVA秀-https://www.javaxiu.com/21533.html
自动化。Syncthing会自动化处理很多问题而无需用户干预,获取对文件的更改,解决冲突,维护连接等。文章源自JAVA秀-https://www.javaxiu.com/21533.html
通用性。保持在各个平台上使用的通用性。文章源自JAVA秀-https://www.javaxiu.com/21533.html
文章源自JAVA秀-https://www.javaxiu.com/21533.html
项目地址是:文章源自JAVA秀-https://www.javaxiu.com/21533.html
https://github.com/syncthing/syncthing文章源自JAVA秀-https://www.javaxiu.com/21533.html
简单使用
Syncthing提供了很简易的安装方式,linux下直接解压安装包,windows则提供了exe文件供安装,另外社区还提供了Android等安装包。文章源自JAVA秀-https://www.javaxiu.com/21533.html
以命令行启动,并输出以下内容(也可以在可视化系统中双击启动,这里只是为了了解细节才使用命令行):文章源自JAVA秀-https://www.javaxiu.com/21533.html
> 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[6FOKX] 22:56:33 INFO: My ID: 6FOKXKK-SKUBWFW-GSKX6IQ-ZC4SYUZ-5IEVZKE-TC42AAX-HW7IBW4-GAZFAQ7[6FOKX] 22:56:34 INFO: Single thread SHA256 performance is 123 MB/s using crypto/sha256 (108 MB/s using minio/sha256-simd).[6FOKX] 22:56:34 INFO: Hashing performance is 106.31 MB/s[6FOKX] 22:56:34 INFO: Overall send rate is unlimited, receive rate is unlimited[6FOKX] 22:56:34 INFO: Using discovery server https://discovery.syncthing.net/v2/?noannounce&id=LYXKCHX-VI3NYZR-ALCJBHF-WMZYSPK-QG6QJA3-MPFYMSO-U56GTUK-NA2MIAW[6FOKX] 22:56:34 INFO: Using discovery server https://discovery-v4.syncthing.net/v2/?nolookup&id=LYXKCHX-VI3NYZR-ALCJBHF-WMZYSPK-QG6QJA3-MPFYMSO-U56GTUK-NA2MIAW[6FOKX] 22:56:34 INFO: Using discovery server https://discovery-v6.syncthing.net/v2/?nolookup&id=LYXKCHX-VI3NYZR-ALCJBHF-WMZYSPK-QG6QJA3-MPFYMSO-U56GTUK-NA2MIAW[6FOKX] 22:56:34 INFO: Ready to synchronize "Default Folder" (default) (sendreceive)[6FOKX] 22:56:34 INFO: QUIC listener ([::]:22000) starting[6FOKX] 22:56:34 INFO: TCP listener ([::]:22000) starting[6FOKX] 22:56:34 INFO: Relay listener (dynamic+https://relays.syncthing.net/endpoint) starting[6FOKX] 22:56:34 INFO: Completed initial scan of sendreceive folder "Default Folder" (default)[6FOKX] 22:56:34 INFO: GUI and API listening on 127.0.0.1:8384[6FOKX] 22:56:34 INFO: Access the GUI via the following URL: http://127.0.0.1:8384/[6FOKX] 22:56:34 INFO: My name is "This computer"[6FOKX] 22:56:45 INFO: quic://0.0.0.0:22000 detected NAT type: Symmetric NAT[6FOKX] 22:56:45 INFO: quic://0.0.0.0:22000 resolved external address quic://125.190.151.7:59296 (via stun.syncthing.net:3478)[6FOKX] 22:56:46 INFO: Detected 0 NAT services
管理员页面会自动启动,访问http://localhost:8384/即可。文章源自JAVA秀-https://www.javaxiu.com/21533.html
文章源自JAVA秀-https://www.javaxiu.com/21533.html
左侧是“Folders”列表,代表要同步的目录,此时尚未与其他设备共享,因此当前状态为“Unshared”,文件夹状态还包括Paused、Stopped、Up to Date等状态。文章源自JAVA秀-https://www.javaxiu.com/21533.html
右边是设备列表,表示与当前设备连接的设备,包括本地设备。本地设备始终位于顶部,而远程设备则按字母顺序排列。对于每个设备,都可以查看到当前状态以及更多的详细信息,如传输速率、数据总量等。文章源自JAVA秀-https://www.javaxiu.com/21533.html
为了使Syncthing能够与另一台设备同步文件,必须告知该设备另一台设备的相关信息。Syncthing通过交换“设备ID”来实现。设备ID是唯一的加密安全标识符,该标识符在首次启动Syncthing时作为密钥生成的一部分生成。它被打印在上面的日志中,您可以通过选择“Actions”(右上角)和“Show ID”在Web GUI中看到它。文章源自JAVA秀-https://www.javaxiu.com/21533.html
如果两个设备都配置有彼此的设备ID,则它们会相互连接并通话。由于配置必须是相互的,因此不需要将设备ID保密。它们本质上是公钥的一部分。文章源自JAVA秀-https://www.javaxiu.com/21533.html
要使两个设备互相通信,请单击两个设备右下角的“Add Remote Device”,然后输入另一侧的设备ID,还要选择共享的文件夹。设备名称是可选的,可以随时更改。文章源自JAVA秀-https://www.javaxiu.com/21533.html
文章源自JAVA秀-https://www.javaxiu.com/21533.html
文章源自JAVA秀-https://www.javaxiu.com/21533.html
单击“Save”后,新设备将出现在GUI的右侧,然后在大约一分钟后连接到新设备。另一台设备也需要重复以上步骤。文章源自JAVA秀-https://www.javaxiu.com/21533.html
文章源自JAVA秀-https://www.javaxiu.com/21533.html
此时,两个设备共享一个空目录。将文件添加到任一设备上的共享目录会将这些文件同步到另一端。文章源自JAVA秀-https://www.javaxiu.com/21533.html
Syncthing还有命令行的使用方法,感兴趣的读者自己去尝试吧。文章源自JAVA秀-https://www.javaxiu.com/21533.html
- EOF - 文章源自JAVA秀-https://www.javaxiu.com/21533.html
重磅!程序员交流群已成立公众号运营至今,离不开小伙伴们的支持。为了给小伙伴们提供一个互相交流的平台,特地开通了程序员交流群群里有不少技术大神,不时会分享一些技术要点,更有一些资源收藏爱好者不时分享一些优质的学习资料。(群完全免费,不广告不卖课!)需要进群的朋友,可长按扫描下方二维码。▲长按扫码文章源自JAVA秀-https://www.javaxiu.com/21533.html

评论