Information

河南互联网络信息有限公司

800188.net

简介

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/syncthing@ubuntu.service,@后填写用户名。

下图红框中的路径要修改为你自己对应的,也就是刚才查看的路径。下图绿框的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/syncthing@ubuntu.service

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

  # 启动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
评级: 0.00   票: 0   传出命中: 8   传入命中: 0   收藏 夹: 0  
Scroll to top