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

简介: 绝了,这款P2P全平台的文件同步工具,开源且不依赖中心服务器

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

发现这样一款软件可以支持多平台的同步软件,可以在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


image.png


安装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-compose
chmod +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/syncthing
    container_name: syncthing
    hostname: my-syncthing
    environment:
      - PUID=1000
      - PGID=1000
    volumes:
      - /opt/docker/syncthing/data:/var/syncthing
    ports:
      - 8384:8384
      - 22000:22000/tcp
      - 22000:22000/udp
    restart: 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服务了,但还需要一些设置使我们的服务更加的安全。

image.png

image.png


配置同步

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


image.png

image.png


使用客户端测试同步


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


image.png

image.png

image.png

image.png

相关文章
|
1天前
|
运维 安全 开发工具
GitHub 热门开源运维工具 Websoft9:如何实现服务器管理效率翻倍?
Websoft9 提供 200+ 开源应用一键部署,支持容器化隔离、GitOps 自动化和企业级安全防护,助力服务器管理效率提升 80%。
25 1
|
4月前
|
存储 人工智能 弹性计算
阿里云弹性计算(ECS)提供强大的AI工作负载平台,支持灵活的资源配置与高性能计算,适用于AI训练与推理
阿里云弹性计算(ECS)提供强大的AI工作负载平台,支持灵活的资源配置与高性能计算,适用于AI训练与推理。通过合理优化资源分配、利用自动伸缩及高效数据管理,ECS能显著提升AI系统的性能与效率,降低运营成本,助力科研与企业用户在AI领域取得突破。
132 6
|
4月前
|
安全 开发工具 Swift
Swift 是苹果公司开发的现代编程语言,具备高效、安全、简洁的特点,支持类型推断、闭包、泛型等特性,广泛应用于苹果各平台及服务器端开发
Swift 是苹果公司开发的现代编程语言,具备高效、安全、简洁的特点,支持类型推断、闭包、泛型等特性,广泛应用于苹果各平台及服务器端开发。基础语法涵盖变量、常量、数据类型、运算符、控制流等,高级特性包括函数、闭包、类、结构体、协议和泛型。
84 2
|
4月前
|
运维 监控 Linux
服务器管理面板大盘点: 8款开源面板助你轻松管理Linux服务器
在数字化时代,服务器作为数据存储和计算的核心设备,其管理效率与安全性直接关系到业务的稳定性和可持续发展。随着技术的不断进步,开源社区涌现出众多服务器管理面板,这些工具以其强大的功能、灵活的配置和友好的用户界面,极大地简化了Linux服务器的管理工作。本文将详细介绍8款开源的服务器管理面板,包括Websoft9、宝塔、cPanel、1Panel等,旨在帮助运维人员更好地选择和使用这些工具,提升服务器管理效率。
|
4月前
|
运维 安全 Linux
2024 主流的开源服务器面板推荐
随着云计算和虚拟专用服务器(VPS)的普及,服务器面板工具成为了企业和个人管理服务器的得力助手。一个优秀的服务器面板不仅可以简化服务器管理任务,还可以提升工作效率和安全性。本文将为您介绍并测评几款2024年全网热门的服务器面板,包括Websoft9、宝塔、cPanel、1Panel等,帮助您找到最适合自己的管理工具。
2024 主流的开源服务器面板推荐
|
5月前
|
关系型数据库 MySQL Linux
基于阿里云服务器Linux系统安装Docker完整图文教程(附部署开源项目)
基于阿里云服务器Linux系统安装Docker完整图文教程(附部署开源项目)
1040 3
|
5月前
|
网络协议 Unix Linux
一个.NET开源、快速、低延迟的异步套接字服务器和客户端库
一个.NET开源、快速、低延迟的异步套接字服务器和客户端库
132 4
|
5月前
|
Web App开发 运维 安全
1Panel:一个现代化、开源的 Linux 服务器运维管理面板
1Panel:一个现代化、开源的 Linux 服务器运维管理面板
197 0
|
2天前
|
弹性计算 运维 监控
【阿里云】控制台使用指南:从创建ECS到系统诊断测评
本文介绍了如何通过阿里云获取ECS云服务器并进行操作系统配置与组件安装,以实现高效的资源管理和系统监控。阿里云凭借强大的基础设施和丰富的服务成为用户首选。文中详细描述了获取ECS、RAM授权、开通操作系统控制台及组件安装的步骤,并展示了如何利用控制台实时监控性能指标、诊断系统问题及优化性能。特别针对idle进程进行了深入分析,提出了优化建议。最后,建议定期进行系统健康检查,并希望阿里云能推出更友好的低成本套餐,满足学生等群体的需求。
52 17
【阿里云】控制台使用指南:从创建ECS到系统诊断测评
|
3天前
|
弹性计算 Linux 数据安全/隐私保护
阿里云幻兽帕鲁联机服务器搭建全攻略,速来抄作业!2025新版教程
阿里云提供2025年最新幻兽帕鲁服务器申请购买及一键开服教程。4核16G配置支持8人,70元/月;8核32G配置支持20人,160元/月。选择配置、地域、操作系统后,点击【一键购买及部署】,约3分钟完成创建。本地安装STEAM客户端并登录,进入游戏选择多人模式,输入服务器IP和端口(8211),即可开始游戏。详细教程及更多问题解答请参考阿里云幻兽帕鲁游戏专区。
44 20

热门文章

最新文章