最近在研究一些好玩的开源软件,似乎有些沉迷。

发现这样一款软件可以支持多平台的同步软件,可以在Windows上、各种Linux发行版、MacOS是和Android上,甚至你可以在你的群晖或是OpenWRT甚至树莓派上使用它,可以使多个平台的文件保持一致,非常适合企业或是个人文件的多端同步。
经测试同步时差在10s左右,即一方客户端删除、增加或修改文件,另一端开始产生同步效果的时间,效果极佳!

环境准备

话不多说,开始搭建,首先需要一个docker的环境,我这里依然使用一键脚本。

# CentOS,版本至少大于等于7
curl -fsSL https://get.docker.com | bash -s docker --mirror Aliyun# Ubuntu
curl -fsSL https://get.docker.com | bash -s docker --mirror Aliyun# Debian
curl -fsSL https://get.docker.com | bash -s docker --mirror Aliyun

我这里依然使用CentOS7来演示搭建,使用其它Linux发行版或运行有Docker环境的小伙伴操作类似。

# 查看Docker的版本
[root@mx ~]# docker -v
Docker version 20.10.9, build c2ea9bc
[root@mx ~]# # 查看Docker运行状态
[root@mx ~]# systemctl status docker

安装docker-compose

这里搭建需要使用到docker-compose工具,它是docker官方出品的管理软件,能够有效地定义我们容器运行方式,使得管理更加高效。这里使用官方提供的安装脚本。

# 官方
sudo curl -L "https://github.com/docker/compose/releases/download/1.29.2/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
# 备用地址
curl -L https://get.daocloud.io/docker/compose/releases/download/1.25.5/docker-compose-`uname -s`-`uname -m`  /usr/local/bin/docker-composechmod +x /usr/local/bin/docker-compose

如果上面的方式下载不了,可以以下地址下载二进制运行文件。

# github地址
# https://github.com/docker/compose/releases/wget https://github.com/docker/compose/releases/download/v2.0.1/docker-compose-linux-x86_64
mv docker-compose-linux-x86_64 /usr/local/bin/docker-compose && chmod +x /usr/local/bin/docker-compose

查看docker-compose的版本

[root@mx ~]# docker-compose -v
Docker Compose version v2.0.1
[root@mx ~]#

部署Syncthing

首先创建一个存储数据的目录,并在此目录下创建一个dockerfile的文件。

[root@mx ~]# mkdir -p /opt/docker/syncthing
[root@mx ~]# mkdir -p /opt/docker/syncthing/data
[root@mx ~]# cd /opt/docker/syncthing/ && vim docker-compose.yml

下面是内容,粘贴到docker-compose.yml文件中,保存!我这里把/opt/docker/syncthing/data作为同步目录,大家可自行更改。

---
version: "3"
services:syncthing:image: syncthing/syncthingcontainer_name: syncthinghostname: my-syncthingenvironment:- PUID=1000- PGID=1000volumes:- /opt/docker/syncthing/data:/var/syncthingports:- 8384:8384- 22000:22000/tcp- 22000:22000/udprestart: unless-stopped

执行命令开始部署Syncthing运行环境。

[root@mx syncthing]# docker-compose up
[+] Running 5/5⠿ syncthing Pulled                                                                                                                                               17.2s⠿ a0d0a0d46f8b Pull complete                                                                                                                                    7.1s⠿ c1f268ddb189 Pull complete                                                                                                                                    7.7s⠿ 7135014d6b43 Pull complete                                                                                                                                   11.6s⠿ 1eeaea656424 Pull complete                                                                                                                                   11.8s
[+] Running 2/2⠿ Network syncthing_default  Created                                                                                                                              0.1s⠿ Container syncthing        Created                                                                                                                              0.1s
Attaching to syncthing
syncthing  | [monitor] 12:57:53 INFO: We will skip creation of a default folder on first start
syncthing  | [start] 12:57:53 INFO: syncthing v1.18.3 "Fermium Flea" (go1.17.1 linux-amd64) docker@build.syncthing.net 2021-09-28 06:05:18 UTC [noupgrade]
syncthing  | [start] 12:57:53 INFO: Generating ECDSA key and certificate for syncthing...
syncthing  | [start] 12:57:53 INFO: Default folder created and/or linked to new config
syncthing  | [start] 12:57:53 INFO: Default config saved. Edit /var/syncthing/config/config.xml to taste (with Syncthing stopped) or use the GUI
syncthing  | [start] 12:57:53 INFO: Archiving a copy of old config file format at: /var/syncthing/config/config.xml.v0
syncthing  | [HN32Y] 12:57:53 INFO: My ID: HN32YAU-WLN3D6S-JA65AC6-7VWORO4-O4OOXS3-543CCUQ-FJ3LBX7-SDEU6QY
syncthing  | [HN32Y] 12:57:54 INFO: Single thread SHA256 performance is 164 MB/s using minio/sha256-simd (164 MB/s using crypto/sha256).
syncthing  | [HN32Y] 12:57:55 INFO: Hashing performance is 132.67 MB/s
syncthing  | [HN32Y] 12:57:55 INFO: Running database migration 1...
syncthing  | [HN32Y] 12:57:55 INFO: Running database migration 2...
……

如果启动没有问题,可以使用它在后台运行。使用ctrl+c 结束当前进程,并放到后台运行。

[root@mx syncthing]# docker-compose up -d
[root@mx syncthing]# docker ps
CONTAINER ID   IMAGE                 COMMAND                  CREATED         STATUS                            PORTS                                                                                                                                                NAMES
7cafc4c27c08   syncthing/syncthing   "/bin/entrypoint.sh …"   7 minutes ago   Up 2 seconds (health: starting)   0.0.0.0:8384->8384/tcp, :::8384->8384/tcp, 0.0.0.0:22000->22000/tcp, :::22000->22000/tcp, 21027/udp, 0.0.0.0:22000->22000/udp, :::22000->22000/udp   syncthing
[root@mx syncthing]#

开放防火墙端口

firewall-cmd --add-port={8384,22000}/tcp --permanent
firewall-cmd --add-port=22000/udp --permanent
firewall-cmd --reload

访问

使用ip:8384访问,可以看到已经正常地访问到我们的syncthing服务了,但还需要一些设置使我们的服务更加的安全。

为我们的服务设置一个访问密码,当然在些基础上更好的方法是再为网站添加好ssl证书,此处略过。

输入用户名和密码并点击保存。

配置同步

点击添加一个文件夹,并为此文件夹设置好名称等相关属性。

这样我们就建立好了一个可用于同步的文件夹。

选择右上角的操作,点击"显示id",会生成一个二维码和id,这个会用于我们后面绑定同步关系。

使用客户端测试同步

我这里使用Mac的客户端来先做一个测试,下载好运行文件,点击syncthing开始运行。

运行后,会在本地启动一个类似的于Linux服务器上创建的服务。

点击右下角的添加设备,将我们前面的id填到此处,点击保存。

回到Linux端,这里可以看到有一个设备已经添加进来了,点击添加设备,,这样就产生绑定关系了。

再把创建的文件夹共享给该设备。

这样两端的设备就实现了同步,快去试试吧~需要开源项目地址,可私聊获取!

绝了,这款P2P全平台的文件同步工具,开源且不依赖中心服务器相关推荐

  1. 再见 XShell 和 ITerm 2,是时候拥抱全平台高颜值终端工具 Hyper 了!

    再见 XShell 和 ITerm 2,是时候拥抱全平台高颜值终端工具 Hyper 了! 不论是 macOS 还是 Windows 下,我们都不推荐使用系统自带终端.无论是可拓展性还是可编程性都被「系 ...

  2. android全平台基于ffmpeg解码本地MP4视频推流到RTMP服务器

    音视频实践学习 android全平台编译ffmpeg以及x264与fdk-aac实践 ubuntu下使用nginx和nginx-rtmp-module配置直播推流服务器 android全平台编译ffm ...

  3. 用树莓派搭建全功能NAS服务器(06):自带穿透的文件同步工具

    写在前面 说完了nextcloud,大家已经对于个人网盘不再陌生.但想要做到随时随地同步文件,还需要公网IP/内网穿透. 其实说到文件同步,还有一款自带内网穿透的P2P文件同步工具必须介绍一下,就是s ...

  4. Syncthing - P2P文件同步工具使用

    1 简介 随着数据的增长,我们对于文件的同步和备份需求也日趋强烈.各种网盘为我们在文件同步备份提供便利的同时,也在速度.安全和隐私等方面带来不小的限制和风险. Syncthing是一款开源免费跨平台的 ...

  5. 终端主题_再见 XShell 和 ITerm 2,是时候拥抱全平台高颜值终端工具 Hyper 了!

    点击上方"涛哥聊Python",选择"星标"公众号 重磅干货,第一时间送达 转自:运维之美 不论是 macOS 还是 Windows 下,我们都不推荐使用系统自 ...

  6. linux pt 下载软件,下载工具系列——Deluge (全平台BT/PT下载工具)

    一.介绍 Deluge是通过PyGTK来实现图形界面的,所以也就有了方便全平台的基础,当然,也有不带图形界面的命令行版本以及Web界面的版本,它的后端使用了libtorrent,自06年第一个版本放出 ...

  7. send anywhere:一个全平台的文件传输神器

    简介: Send Anywhere是个免费的跨平台传输软件,使用不受平台和文件大少的限制,无需注册和登录. 支持的平台: 移动端: 有Android,iOS, Windows Store, Kindl ...

  8. [微力同步 v2.4.2] 跨平台文件同步工具+使用P2P协议同步分发和合并文件+WAN同步加速

    介绍 使用 P2P 协议同步,分发和合并文件 凭借独特的 P2P 加速同步软件和数据,文件传送成功率高达 100%, 支持数以千台的终端设备和百万级的文件规模, 传送的数据量无限制. WAN 同步加速 ...

  9. java 开源 断点续传,全平台大文件断点续传上传技术 ( 开源项目 Stream )

    Stream 上传插件介绍 Stream 这个项目主要是为了解决大文件上传, 本程序只是它的一个 Perl 后端的实现. 项目网站是: http://www.twinkling.cn 原始地址是: h ...

最新文章

  1. Mozilla新特性只支持https网站
  2. c++语言中如何写入文件,C++:在多线程程序中写入文件
  3. Web开发框架–第1部分:选项和标准
  4. c++中string插入一个字符_Java内存管理-探索Java中字符串String(十二)
  5. (22)HTML Emoji
  6. Android 系统(216)---Android坐标分析过程
  7. 更改via浏览器字体_【安卓】我心中的最佳手机浏览器
  8. npm install全局安装的模块路径自定义管理
  9. KC伺服舵机带参控制程序程序
  10. 汽车试验数据管理(TDM系统)的特点分析及解决方案
  11. 如何解决青年大学习的复制粘贴问题???
  12. image caption笔记(八):《From Captions to Visual Concepts and Back》
  13. js去除url中的localtion.search部分
  14. 基于PaddlePaddle实现的DeepSpeech2端到端中文语音识模型
  15. java将字符串转成对象_java – 将字符串转换为类对象
  16. 困惑了很久的函数D3DXCreateTextureFromFileInMemoryEx
  17. Redis存key出现\xAC\xED\x00\x05t\x00\x14
  18. Windows11任务管理器
  19. 华为5885H V5配置RAID
  20. 【PDF转换电子书】云展网教程 | 如何进入云展网展厅的书籍详情链接和书本链接?

热门文章

  1. 「Spring Boot」接口幂等性的4种实现方案
  2. 抖音短视频APP开发通过三种方式绘制图片
  3. uni-app/js/小程序/生成支付二维码图片,类似于支付宝和微信商家码
  4. 起枪还是ECO ? CSGO什么时候起长枪 CSGO超实用教学
  5. DOTA2匹配机制详解
  6. html图片转换特效,css3图片切换效果
  7. 蜘蛛程序php,php模仿百度spider蜘蛛爬虫程序例子
  8. Axure 中继器表格背景颜色交替不成功
  9. 使用vs2019用c++创建dll库
  10. 皮卡丘(pikachu)XXE