首页 > 其他分享 >一文搞定:Syncthing多平台文件同步工具安装全攻略

一文搞定:Syncthing多平台文件同步工具安装全攻略

时间:2024-08-02 21:28:36浏览次数:13  
标签:文件 搞定 同步 Windows 全攻略 ubuntu syncthing Syncthing

简介

Syncthing是一款开源的文件同步工具,可以通过本地网络或互联网实现多台设备之间的文件同步。与其他同步工具不同,Syncthing强调隐私和安全,确保用户的数据始终处于用户的控制之下。

功能与特点

  1. 开源软件

    • Syncthing是完全开源的,源代码托管在GitHub上,任何人都可以查看、审查和贡献代码。这种透明性增强了用户对软件安全性的信任。
  2. 去中心化

    • Syncthing采用P2P(点对点)架构,没有中央服务器,所有数据传输直接在设备之间进行。这不仅提高了数据传输速度,还消除了对第三方服务器的依赖。
  3. 跨平台支持

    • Syncthing支持多种操作系统,包括Windows、macOS、Linux、BSD、Solaris、Android等,能够满足不同用户的需求。
  4. 安全性

    • 数据在传输过程中使用TLS加密,确保通信的安全性。此外,每个节点都有唯一的设备ID,通过设备ID进行认证和连接,防止未经授权的设备访问。
  5. 实时同步

    • 文件修改后会立即触发同步操作,实现实时更新。Syncthing能够检测文件的变化,并迅速同步到其他设备上。
  6. 版本控制

    • Syncthing支持文件版本控制,可以保留多个文件版本,方便用户在需要时恢复到之前的版本。
  7. 配置灵活

    • Syncthing提供了丰富的配置选项,用户可以根据需要设置同步目录、同步频率、带宽限制等参数,满足不同的使用场景。
  8. 简单易用

    • 通过一个友好的Web GUI(图形用户界面),用户可以轻松管理和监控同步状态,进行配置修改。

优点

  1. 隐私保护

    • 因为不依赖于任何中央服务器,用户的数据不会存储在第三方服务器上,完全在用户的掌控之中,极大地保护了隐私。
  2. 高效的带宽利用

    • Syncthing在同步过程中只传输更改的部分(增量同步),而不是整个文件,从而提高了带宽利用率,节省了传输时间和资源。
  3. 安全性高

    • 使用TLS加密传输数据,设备之间的通信经过认证,防止中间人攻击和未经授权的访问。
  4. 无缝集成

    • Syncthing可以在多种操作系统上运行,并且支持多设备同步,用户可以轻松地在家用电脑、工作电脑、手机等多个设备之间同步文件。
  5. 社区支持

    • 作为开源项目,Syncthing拥有活跃的社区支持,用户可以从社区获得帮助和建议,及时解决使用过程中遇到的问题。
  6. 定制化

    • 用户可以根据自己的需求进行高度定制,包括选择需要同步的文件夹、设置不同的同步策略和频率、限制带宽使用等。
  7. 可靠性

    • Syncthing的设计使其在网络断开后能够自动恢复同步操作,并且支持自动解决同步冲突,确保数据的一致性和可靠性。

安装教程

注:博主安装过该工具,下面的安装教程,可能会出现一点点区别,不过按照以下操作进行搭建是可以成功的。

官方下载地址:https://syncthing.net/downloads/
选择对应的版本进行下载。

本文采用两个同步平台为Windows和Ubuntu。可以通过链接:https://wwt.lanzoue.com/b0fomam7g下载本文所对应的安装包。下载密码:hx90

两台电脑能实现文件同步的前提是两台电脑的网络能够相互访问。如果一台电脑在内网中,一台在有公网IP的服务器上。可以用有公网IP的服务器搭建一个frp内网穿透工具,通过内网穿透后,就可以实现两台电脑进行网络通信了。

Windows安装

解压安装包,然后双击syncthing.exe打开。

出现这个界面后,可以看见web界面访问地址。初次安装应该会直接在浏览器中打开该地址,然后有一个提示对话框,匿名报告相关的,可以选择否。

能出现该界面就说明安装成功了。先不用管界面是否完全一样,下面会介绍如何进行配置。

Ubuntu安装

将Linux版的文件上传到服务器,这里使用xshell配合xftp进行操作。
在xshell中连接成功后,可以点上面图标。

接下来就可以将文件拖拽到Ubuntu中了。

接下来解压文件tar -zxf syncthing-linux-amd64-v1.27.9.tar.gz

这里可以修改文件夹的名称。用mv syncthing-linux-amd64-v1.27.9 syncthing就可以。博主前面安装过了,这点就不修改了。
进入syncthing-linux-amd64-v1.27.9文件夹。使用./syncthing serve就可以启动。

这时如果是图形化的Ubuntu,就可以在Ubuntu浏览器中打开http://127.0.0.1:8384/。博主采用的是腾讯云的vps,直接用ip访问不了。这里需要进行一步操作。

配置远程ip访问

Ctrl + C停掉服务。
查看官方文档后,使用命令./syncthing serve --gui-address=0.0.0.0:8384配置。

这样就可以远程通过ip访问了,不过你的服务器防火墙需要放行端口。

配置同步文件夹

这里需要用到工具的ID,先去服务端查看,启动服务的时候就会显示,现在可以通过web界面进行查看。客户端同理。

刚才复制的是服务端的ID,那么现在就打开客户端的web管理界面。

如果只是局域网操作,这里直接保存即可。
如果想公网访问,就可以内网穿透工具。在服务器搭建内网穿透工具,可以参考这篇文章:https://blog.csdn.net/weixin_42951763/article/details/140420245
只需要将链接中Windows客户端的配置修改即可,这里给出一个参考。

在启动的时候可以看见tcp使用的默认端口。

配置Ubuntu服务端。打开服务端的web界面。

在高级设置中,配置一下地址。

这里再解释一下这个地址。
Windows中的IP不是公网IP,所以Ubuntu服务端不能直接访问到Windows这个客户端。因此才有了frp内网穿透,把Windows映射到公网中。通过映射后的公网IP加上端口,就可以访问到Windows这个内网中的客户端了。

接下来就可以创建共享的文件夹了。
先在Windows这边创建。

文件夹共享给Ubuntu。

文件夹版本控制。官方文档的文件版本控制介绍

到这点Windows的就配置好了。
这时去到服务端Ubuntu的web界面。

可以看见出现了一个新文件夹,这时点击添加即可。如果没有出现,可能的原因是服务端这边还没有与Windows进行连接。再次检查一下远程设备是否已经同步完成。

这里选择共享给Windows,这样就可以把Ubuntu变化后的文件也同步到Windows里面。

这样就实现了简单的双向同步文件。

Syncthing开机自启

Windows

利用bat文件来实现。
在Syncthing的文件根目录中新建一个bat文件,放在这里是方便管理,也可以放在其他地方。

bat文件内容如下:

@echo off

if "%1"=="h" goto begin

start mshta vbscript:createobject("wscript.shell").run("""%~nx0"" h",0)(window.close)&&exit

:begin

cd /d D:\syncthing && syncthing.exe serve --no-browser --no-restart --logflags=0

只需要修改下图红框中的路径为自己的路径即可。

然后保存退出。在bat文件右键创建快捷方式。

使用win + R打开运行对话框,输入:shell:startup回车。将刚才创建的快捷方式移动到这个目录里面。

Ubuntu

查看syncthing的目录,然后记录一下这个目录。

使用命令:sudo vim /etc/systemd/system/[email protected],@后填写用户名。

下图红框中的路径要修改为你自己对应的,也就是刚才查看的路径。下图绿框的syncthing是表示文件名。

文件内容如下:

[Unit]
Description=Syncthing - Open Source Continuous File Synchronization for %I
Documentation=man:syncthing(1)
After=network.target
StartLimitIntervalSec=60
StartLimitBurst=4

[Service]
User=%i
ExecStart=/home/ubuntu/syncthing/syncthing serve --no-browser --no-restart --logflags=0 --gui-address=0.0.0.0:8384
Restart=on-failure
RestartSec=1
SuccessExitStatus=3 4
RestartForceExitStatus=3 4

# Hardening
ProtectSystem=full
PrivateTmp=true
SystemCallArchitectures=native
MemoryDenyWriteExecute=true
NoNewPrivileges=true

# Elevated permissions to sync ownership (disabled by default),
# see https://docs.syncthing.net/advanced/folder-sync-ownership
#AmbientCapabilities=CAP_CHOWN CAP_FOWNER

[Install]
WantedBy=multi-user.target

提升文件的权限。

sudo chmod +x /etc/systemd/system/[email protected]

接下来可以使用这些命令来操作了。

# 启动syncthing@ubuntu
sudo systemctl start syncthing@ubuntu
# 开机自动启动syncthing@ubuntu
sudo systemctl enable syncthing@ubuntu
# 重启syncthing@ubuntu
sudo systemctl restart syncthing@ubuntu
# 停止syncthing@ubuntu
sudo systemctl stop syncthing@ubuntu
# 查看syncthing@ubuntu状态
sudo systemctl status syncthing@ubuntu

标签:文件,搞定,同步,Windows,全攻略,ubuntu,syncthing,Syncthing
From: https://www.cnblogs.com/HaiJaine/p/18339629

相关文章

  • 轻松搞定 Nginx 在 CentOS 和 Ubuntu 上的安装与配置
    注:这是对我以前博客进行优化后再次发布的,博客中的截图为以前的。原博客已删除。如何安装nginxnginx是一款开源、高性能的Web和反向代理服务器,支持HTTP、HTTPS、SMTP、POP3和IMAP协议。由于其轻量级、资源占用少和强大的并发能力,nginx广泛用于多种场景。本文将介绍如何在CentOS和......
  • 解锁Synchronized的奥秘:从原理到场景,再到锁升级全攻略!
    本期说一下Synchronized的相关面试题。Synchronized的作用或者说一般用在什么场景?原子性:确保线程互斥的访问同步代码可见性:保证共享变量的修改能够及时可见。有序性:有效解决指令重排问题。说一下Synchronized的原理?答:每个java对象都有一个与之相关联的监视器(monit......
  • 从入门到高手:场外期权的当代投资全攻略
    在这个快速变化的金融市场中,投资者们正在寻找新的投资工具来增强自己的投资组合。场外期权,作为一种灵活且功能强大的衍生品,已经成为当代投资者的新宠。期权圈将带你从基础概念出发,一步步深入了解场外期权,并探索如何让你从入门到高手。一、场外期权基础定义:场外期权,简称OTC(Ov......
  • IT运维必备神器!PsShutdown,定时关机重启一键搞定!
    嘿,各位技术小能手们,小江湖今天要给大家安利一个宝贝——PsShutdown!这可不是一般的关机小工具哦;当你坐在电脑前,手指轻轻敲几下键盘,就能实现定时任务,无论是关机、重启,还是注销用户,甚至是锁屏,都尽在掌握之中;是不是已经心痒痒,迫不及待想要一探究竟了?别急,咱们先不聊那些冷冰冰的功能......
  • 亲测推荐!PixPin便捷高效,让你的截图工作轻松搞定,还在等什么?
    前言如果你经常使用电脑,是不是也经常遇到这样的烦恼:需要频繁地截图、标注、编辑图片,可是手里的截图工具却总是那么不给力?要么功能单一,要么操作复杂,让人头疼不已;今天咱们的小江湖就要给大家带来一款绝对让你眼前一亮的截图神器——PixPin!听名字是不是就感觉有点不一样?没错,它可......
  • 工单管理系统全攻略:找到你的完美匹配
    国内外主流的10款项目工单管理系统对比:PingCode、Worktile、浪潮云工单管理系统、华为企业智能工单系统、金蝶云·苍穹、紫光软件管理系统、Jira、Asana、ServiceNow、Smartsheet。在管理日益复杂的个人项目时,找到一款能够真正符合需求的管理软件,常常是许多人面临的难题。市面......
  • 三行代码高搞定nestjs静态图片映射方案
    方案一@nestjs/serve-static库映射上代码npmi@nestjs/serve-staticimport{ServeStaticModule}from'@nestjs/serve-static';import{join}from'path';conststaticPath=join(__dirname,'..','/public/');@Module({......
  • 大文件CSV拆分分割工具教程:一步步教你轻松搞定
    你是否曾经遇到过需要处理大文件CSV,但因为文件过大而导致操作困难的情况?别担心,在这篇文章中,我将为你介绍几种高效的CSV文件拆分方法,帮助你轻松应对大文件CSV的挑战。无论你是自媒体博主还是数据分析师,这些技巧都能让你事半功倍。一键表格合并助手首先,我要推荐一款由“勤学道......
  • 小红书笔记评论采集全攻略:三种高效方法教你批量导出
    摘要:本文将深入探讨如何利用Python高效采集小红书平台上的笔记评论,通过三种实战策略,手把手教你实现批量数据导出。无论是市场分析、竞品监测还是用户反馈收集,这些技巧都将为你解锁新效率。一、引言:小红书数据金矿与采集挑战在社交电商领域,小红书凭借其独特的UGC内容模式,积累......
  • 我们的前端开发逆天了!1 小时搞定了新网站,还跟我说 “不要钱”
    大家好,我是程序员鱼皮。前段时间我们上线了一个新软件剪切助手,并且针对该项目做了一个官网:很多同学表示官网很好看,还好奇是怎么做的,其实这个网站的背后还有个有趣的小故事。。。鱼皮:我们要做个官网,能下载应用就行,一周时间怎么样?我们的前端开发-多喝热水同学:一周?太小瞧我了......