【】Syncthing搭建自己的中继服务和发现服务

这篇具有很好参考价值的文章主要介绍了【】Syncthing搭建自己的中继服务和发现服务。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

前言

syncthing除了客户端,还有中继服务器和发现服务器,如果单纯的只安装客户端,也不是不能用,只不过你的文件要走别人的服务器,才能会进行同步,而且,同步的前提,是你的两台客户端主机都开机。那么怎样把syncthing搞成类似于ondriver或者百度网盘的同步文件夹呢,往下看吧,这篇文章会教你怎么搞

前提是你有一台有公网ip的服务器

资料:

syncthing官方网站:https://syncthing.net/

syncthing官方文档:https://docs.syncthing.net/

注意:

本文章中的所有操作都在虚拟机上完成,该虚拟机并没有公网ip,请各位将虚拟机ip替换为各自服务器的公网ip

准备工作

1.带有公网ip的服务器

2.电脑A

3.电脑B

一、在服务器上安装syncthing

在服务器上安装syncthing是因为服务器是一直开启着的,电脑A与电脑B或者说手机A手机B都无时无刻的可以将文件同步至服务器,当另一台电脑开机时,服务器会自动同步给该电脑,这样就实现了一个云同步盘的功能

syncthing的Git地址:https://github.com/syncthing/syncthing

下载最后一个版本即可

我的服务器是centos7,所以我下载这个即可(文章会老,syncthing更新永不止,建议下载最新版)

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传syncthing自建中继服务器,Linux,服务器,linux,运维
选择自己合适的客户端即可

将syncthing-linux-amd64-v1.23.0.tar.gz压缩包上传至服务器

#解压压缩包
[root@localhost ~]# tar -xvf syncthing-linux-amd64-v1.23.0.tar.gz
#创建文件夹
[root@localhost ~]# mkdir -p /usr/local/syncthing/syncthing
#移动syncthing到新建的文件夹
[root@localhost ~]# mv syncthing-linux-amd64-v1.23.0/* /usr/local/syncthing/syncthing/
#运行
[root@localhost syncthing]# cd /usr/local/syncthing/syncthing/
[root@localhost syncthing]# ./syncthing 
[start] 2023/01/29 15:41:55 INFO: syncthing v1.23.0 "Fermium Flea" (go1.19.4 linux-amd64) teamcity@build.syncthing.net 2023-01-02 03:45:30 UTC
[start] 2023/01/29 15:41:55 INFO: Generating ECDSA key and certificate for syncthing...
[start] 2023/01/29 15:41:55 INFO: Default folder created and/or linked to new config
[start] 2023/01/29 15:41:55 INFO: Default config saved. Edit /root/.config/syncthing/config.xml to taste (with Syncthing stopped) or use the GUI
[start] 2023/01/29 15:41:55 INFO: Archiving a copy of old config file format at: /root/.config/syncthing/config.xml.v0
[IDLL3] 2023/01/29 15:41:56 INFO: My ID: IDLL3DS-BBO7MGC-EOE5HEG-EWSUOTG-436WYP4-JE5BK5N-CFXPH4L-F7552A6
[IDLL3] 2023/01/29 15:41:57 INFO: Single thread SHA256 performance is 2042 MB/s using minio/sha256-simd (546 MB/s using crypto/sha256).
[IDLL3] 2023/01/29 15:41:57 INFO: Hashing performance is 1237.74 MB/s
...
...
[IDLL3] 2023/01/29 15:41:57 INFO: Completed initial scan of sendreceive folder "Default Folder" (default)
[IDLL3] 2023/01/29 15:41:57 INFO: TCP listener ([::]:22000) starting
[IDLL3] 2023/01/29 15:41:57 INFO: Using discovery mechanism: IPv4 local broadcast discovery on port 21027
[IDLL3] 2023/01/29 15:41:57 INFO: Loading HTTPS certificate: open /root/.config/syncthing/https-cert.pem: no such file or directory
[IDLL3] 2023/01/29 15:41:57 INFO: Creating new HTTPS certificate
[IDLL3] 2023/01/29 15:41:57 INFO: Using discovery mechanism: IPv6 local multicast discovery on address [ff12::8384]:21027
2023/01/29 15:41:57 failed to sufficiently increase receive buffer size (was: 208 kiB, wanted: 2048 kiB, got: 416 kiB). See https://github.com/lucas-clemente/quic-go/wiki/UDP-Receive-Buffer-Size for details.
[IDLL3] 2023/01/29 15:41:57 INFO: QUIC listener ([::]:22000) starting
[IDLL3] 2023/01/29 15:41:57 INFO: GUI and API listening on 127.0.0.1:8384
[IDLL3] 2023/01/29 15:41:57 INFO: Access the GUI via the following URL: http://127.0.0.1:8384/
[IDLL3] 2023/01/29 15:41:57 INFO: My name is "localhost.localdomain"
[IDLL3] 2023/01/29 15:41:57 WARNING: Syncthing should not run as a privileged or system user. Please consider using a normal user account.
[IDLL3] 2023/01/29 15:42:07 INFO: Detected 0 NAT services
# 这里可以看到,配置文件在/root/.config/syncthing/config.xml
# 同时也可以看到,他监听的是127.0.0.1:8384,我们拿外部ip访问不到
# 同时还有个WARNING,提示你不应该使用系统用户运行,应使用普通用户运行
# 使用ctrl+c停止掉syncthing,我们去编辑一下配置文件
[root@localhost syncthing]# vim /root/.config/syncthing/config.xml
# 找到127.0.0.1:8384,将其改为0.0.0.0:8384然后退出保存
# 再次启动syncthing
[root@localhost syncthing]# ./syncthing

这时候就可以通过浏览器访问syncthing客户端了,例如http://192.168.217.129:8384/

  • 如果无法访问,看一下防火墙是否开启,syncthing是否正常启动

  • 如果不想对外开启8384端口,可以使用nginx做反向代理,具体操作方法不在赘述,如有需要,可以留言问我,我在详细讲一下

  • 首次启动会提示危险,因为没有设置GUI身份验证设置用户名/密码,这个建议设置一下,安全最重要,密码强度一定要足,因为这是在公网上

  • 搞好之后,可以通过自己的方式让其后台运行即可,后台运行方式多种多样,这里就不在赘述了,我使用的tmux终端复用器,我认为这个非常方便

二、在服务器上搭建发现服务器

公共网络服务其质量良莠不齐,网络也说不清。最好的解决方案仍是本身搭建发现服务器

发现服务器是干嘛的?

官方文档译文:Syncthing 依靠发现服务器在互联网上寻找对等点。任何人都可以运行发现服务器并将 Syncthing 安装指向它。

syncthing发现服务器Git地址:https://github.com/syncthing/discosrv

我是centos,下载stdiscosrv-linux-amd64-v1.18.6.tar.gz即可

将下载好的压缩包上传至服务器

# 创建文件夹,并移动压缩包到指定目录
[root@localhost syncthing]# mkdir -p /usr/local/syncthing/stdiscosrv/
[root@localhost syncthing]# mv stdiscosrv-linux-amd64-v1.18.6.tar.gz /usr/local/syncthing/stdiscosrv/
[root@localhost syncthing]# cd /usr/local/syncthing/stdiscosrv/
# 解压
[root@localhost stdiscosrv]# tar -xvf stdiscosrv-linux-amd64-v1.18.6.tar.gz 
[root@localhost stdiscosrv]# cp stdiscosrv-linux-amd64-v1.18.6/* ./
[root@localhost stdiscosrv]# rm -rf stdiscosrv-linux-amd64-v1.18.6 stdiscosrv-linux-amd64-v1.18.6.tar.gz
# 启动
[root@localhost stdiscosrv]# ./stdiscosrv 
stdiscosrv v1.18.6 "Fermium Flea" (go1.17.6 linux-amd64) teamcity@build.syncthing.net 2021-12-30 12:07:01 UTC [purego]
Failed to load keypair. Generating one, this might take a while...
Server device ID is OXC5ZJY-ATF6PJB-PZMLORO-MZWPZ67-NBMV3IB-QIOR3H2-QZRW4N5-7MVNGQN
# Failed to load keypair. Generating one, this might take a while... 这个报错不用管,等一会之后给他停止掉在重启,你就会发现没问题了
# 这里会给出发现服务器的id,

拿到发现服务器的id后,将该id填写至你的所有的syncthing客户端中,填写位置如下

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传syncthing自建中继服务器,Linux,服务器,linux,运维

将default替换为发现服务器的id

替换格式为

https://你的服务器地址:8443/?id=发现服务器ID

如:https://192.168.217.129:8443/?id=OXC5ZJY-ATF6PJB-PZMLORO-MZWPZ67-NBMV3IB-QIOR3H2-QZRW4N5-7MVNGQN

注意:

  • 记得防火墙开启8443端口,发现服务器默认端口为8443,若想更改,可以使用 “./stdiscosrv -listen=你的端口” 来启动
  • 启动没问题后,可以使用自己的方式让其后台运行

三、在服务器上搭建中继服务器

公共网络服务其质量良莠不齐,网络也说不清。最好的解决方案仍是本身搭建中继服务器

中继服务器是干嘛的?

官方译文:Syncthing 依赖于社区贡献的中继服务器网络。任何人都可以运行中继服务器,它会自动加入中继池并可供 Syncthing 用户使用。

Syncthing 中继服务器Git地址:https://github.com/syncthing/relaysrv

我是centos,下载strelaysrv-linux-amd64-v1.22.1.tar.gz即可

将下载好的压缩包上传至服务器

# 创建文件夹,并移动压缩包到指定目录
[root@localhost stdiscosrv]# mkdir -p /usr/local/syncthing/strelaysrv
[root@localhost stdiscosrv]# mv strelaysrv-linux-amd64-v1.22.1.tar.gz /usr/local/syncthing/strelaysrv/
[root@localhost stdiscosrv]# cd /usr/local/syncthing/strelaysrv/
# 解压
[root@localhost strelaysrv]# tar -xvf strelaysrv-linux-amd64-v1.22.1.tar.gz 
[root@localhost strelaysrv]# mv strelaysrv-linux-amd64-v1.22.1/* ./
[root@localhost strelaysrv]# rm -rf strelaysrv-linux-amd64-v1.22.1 strelaysrv-linux-amd64-v1.22.1.tar.gz 
[root@localhost strelaysrv]# ls
AUTHORS.txt  LICENSE.txt  README.txt  strelaysrv
# 启动
[root@localhost strelaysrv]# ./strelaysrv -pools=""
2023/01/29 17:19:21 main.go:141: strelaysrv v1.22.1 "Fermium Flea" (go1.19.2 linux-amd64) teamcity@build.syncthing.net 2022-11-02 06:27:53 UTC
2023/01/29 17:19:21 main.go:147: Connection limit 3276
2023/01/29 17:19:21 main.go:160: Failed to load keypair. Generating one, this might take a while...
2023/01/29 17:19:21 main.go:259: URI: relay://0.0.0.0:22067/?id=TIYYJ7H-FXFIHQU-RBAJU5M-4CDZ7YP-LXTO6MM-POHIJRQ-FPMD3TO-JH5PHQ2&networkTimeout=2m0s&pingInterval=1m0s&statusAddr=%3A22070
# 这里会给出中继服务器的URL
# Failed to load keypair. Generating one, this might take a while... 这个报错不用管,等一会之后给他停止掉在重启,你就会发现没问题了

拿到URL后,将此URL填写至所有的syncthing客户端中,填写位置如下

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传syncthing自建中继服务器,Linux,服务器,linux,运维

将default替换为你的中继服务器的URL

替换格式为

relay://你的服务器IP:22067/?id=中继服务器ID&networkTimeout=2m0s&pingInterval=1m0s&statusAddr=%3A22070

如:relay://192.168.217.129:22067/?id=TIYYJ7H-FXFIHQU-RBAJU5M-4CDZ7YP-LXTO6MM-POHIJRQ-FPMD3TO-JH5PHQ2&networkTimeout=2m0s&pingInterval=1m0s&statusAddr=%3A22070

注意:

  • -pools=""参数的意思是不加入任何中继池,可以保持你的中继服务器为私有的
  • 记得开放防火墙22067端口,若想更换端口,可以使用 “-listen=你的端口” 来更改端口

四、其他客户端

至此,服务端的所有操作均已完成,想要同步其他客户端的文件,请从https://github.com/syncthing/syncthing链接中下载各自客户端的程序并运行,并按照服务器上的syncthing来填写中继服务器与发现服务器地址,手机客户端请直接从谷歌商店下载syncthing

有不懂的地方可以留言,我看到后会解答

大功告成!!文章来源地址https://www.toymoban.com/news/detail-572668.html

到了这里,关于【】Syncthing搭建自己的中继服务和发现服务的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • RustDesk 搭建一个自己的远程桌面中继服务器

            现在很多商业远程软件要么收费,要么有或多或少的问题。因此急需一个可以自定义且方便快捷的远程桌面软件代替他们,rustdesk就是这样一个开源项目         github地址:https://github.com/rustdesk/rustdesk                 可以自行下载编译,或者按照自己的需求修改。

    2024年02月07日
    浏览(34)
  • 树莓派 安装 Syncthing 自建私有云盘 照片备份 备份手机相册

    手机上存着不少照片,自己又时常折腾手机,总有数据丢失的问题,又对市面上的云盘不怎么放心,所以打算在家里利用树莓派搭建一个私有云。一番查找之后,发现了 syncthing。Syncthing 是一个跨平台,开源且免费的基于 P2P 的文件同步解决方案,支持 Windows,Mac,Linux,Andr

    2024年02月14日
    浏览(32)
  • RustDesk自建中转服务器如何自己编译 RustDesk客户端,将企业固定IP/域名写进客户端,客户端安装无需配置直接使用(三)

    Ubuntu20.04.4 LTS Docker Version: 20.10.12 RustDesk1.20 Git-2.39.0-64-bit visual studio 2022 VSCodeUserSetup-x64-1.74.1 RustDesk自建中转服务器如何自己编译 RustDesk客户端,将企业固定IP/域名写进客户端,客户端安装无需配置直接使 最近有粉丝反映,编译最后会提示key不匹配等问题,拉取普通开源版,别

    2024年02月05日
    浏览(126)
  • Consul服务注册发现集群搭建

    Consul 是一种用于服务发现、配置和分布式一致性的开源工具和平台。它由 HashiCorp 公司开发和维护,旨在简化构建和维护分布式系统的任务。 Consul 提供了许多功能,包括: 服务发现 :Consul允许服务注册和发现。当服务启动时,它可以向Consul注册自己的位置和元数据。其他服

    2024年04月08日
    浏览(30)
  • 【SpringCloud】Eureka原理分析、搭建Eureka服务、服务注册、服务发现

    🐌个人主页: 🐌 叶落闲庭 💨我的专栏:💨 c语言 数据结构 javaEE 操作系统 Redis 石可破也,而不可夺坚;丹可磨也,而不可夺赤。 当有两个服务,第一个服务需要远程调用第二个服务,采用的方式是发起一次HTTP请求,在之前的代码中是将服务提供者的ip和端口号硬编码到

    2024年02月07日
    浏览(34)
  • 服务注册发现_搭建单机Eureka注册中心

    创建cloud-eureka-server7001模块 pom添加依赖 写yml文件 主启动类 测试 访问浏览器localhostL:7001 参数: Environment: 环境,默认为test,该参数在实际使用过程中,可以不用更改 Data center: 数据中心,使用的是默认的是 “MyOwn” Current time:当前的系统时间 Uptime:已经运行了多少时间

    2024年02月07日
    浏览(33)
  • 用coredns加etcd,搭建跨平台动态服务发现

    coredns ddns 服务发现 动态 service discovery 2023-0625 第一版 coredns被我喜爱的原因:跨平台,支持win,linux版同时使用。同时支持配置文件和etcd。 我用它来搭建动态服务发现。 coredns下载:内含win,linux版 https://github.com/coredns/coredns/releases 相关下载: https://gitee.com/chuanjiao10/powershe

    2024年02月10日
    浏览(32)
  • 1-Eureka服务注册与发现以及Eureka集群搭建(实操型)

    直接看下面的文章 idea创建maven多模块项目. 简单介绍一下: 父工程: dog-cloud-parent 管理实体项目: dog-po 微服务-服务提供者: dog-provider-8001 微服务-服务消费者: dog-consumer-80 如下: 1.3.1 父工程:dog-cloud-parent pom如下: 1.3.2 管理实体项目:dog-po 如下: 1.3.3 服务提供者:dog-

    2024年02月16日
    浏览(40)
  • 搭建自己个人服务器

    很高兴能够跟大家分享我写的这篇文章! 搭建自己的个人服务器主要分为三步,分别为1、通过腾讯云或者阿里云、华为云等购买云服务器,2、申请域名并解析,3、开发自己程序或者前后端之类的部署在服务器 可以选择购买云服务器或者轻量应用服务器,两者区别是前者相

    2024年02月05日
    浏览(51)
  • 自己搭建mqtt服务器

            前言:网上资料大部分都是使用的云服务,我是采用自己搭建的服务器来进行试验的,接下来将记录过程。 云服务器有很多种网上也有很多教学在这里不进行过多的解释了,我实验的时候采用的阿里云国内的服务器这里以后还会进行介绍。         本实验主要

    2024年02月03日
    浏览(40)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包