0

0

Linux:使用Syncthing在服务器之间同步文件

看不見的法師

看不見的法師

发布时间:2025-06-19 17:14:19

|

652人浏览过

|

来源于php中文网

原创

syncthing 比 nfs 或 samba 更易于设置和使用,是在需要保持机器之间数据持续同步的情况下,您的不二之选。

您是否考虑过在 Linux 机器之间保持文件和/或文件夹同步?虽然可以使用 Samba 或 NFS 来实现,但这些解决方案并非专为同步设计。通过 Syncthing,您不仅可以设置加密同步选项,还能在计算机、移动设备和服务器之间进行同步。最重要的是,Syncthing 比其他两个选项更易于设置和使用。当您需要保持机器之间的数据处于持续同步状态时,这就是您要走的路。

我将逐步引导您完成在 AlmaLinux 和 Ubuntu Linux 上安装 Syncthing 的过程,以便您可以看到在两者之间同步文件是多么简单。

您需要什么?您只需要运行 AlmaLinux 和 Ubuntu Linux 实例以及一个具有 sudo 权限的用户。当然,您可以使用两个 AlmaLinux 实例、两个 Ubuntu 实例或两个完全不同的发行版。

准备好这些东西后,让我们开始安装 Syncthing。

安装 Syncthing在 AlmaLinux 上安装 Syncthing 需要下载一个文件,解压缩它,然后将一个文件移动到新创建的目录中。以下是具体步骤:

登录到您的 AlmaLinux 机器。 使用以下命令下载最新版本的 Syncthing: curl -s https://api.github.com/repos/syncthing/syncthing/releases/latest | grep browser_download_url | grep linux-amd64 | cut -d '"' -f 4 | wget -qi - 使用以下命令解压缩文件: tar xvzf syncthing*tar.gz 使用以下命令移动所需文件: sudo mv syncthing-linux*/syncthing /usr/bin 使用以下命令验证安装: syncthing --version Ubuntu 的安装更为简单。只需按照以下步骤操作:

打开终端窗口。 发出命令: sudo apt-get install syncthing -y 等待安装完成。 创建 Systemd 文件要在启用 systemd 的发行版上将 Syncthing 作为服务运行,您必须使用以下命令创建一个 systemd 文件:

sudo nano /etc/systemd/system/syncthing@.service

注意 @ 符号?它在那里,因此您可以以用户身份启动 Syncthing。 在该文件中,粘贴以下内容:

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

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

Hardening

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

[Install] WantedBy=multi-user.target

保存并关闭文件。 使用以下命令重新加载 systemd 守护程序:

sudo systemctl daemon-reload

假设您想以用户“jack”身份运行 Syncthing。启动和启用该服务的命令是:

sudo systemctl enable --now syncthing@jack

在 AlmaLinux 和 Ubuntu 上执行相同的操作。

允许 Syncthing 通过防火墙由于我们使用的是两个不同的发行版,因此您需要使用两种不同的防火墙工具。在 AlmaLinux 上,我们将使用以下命令打开防火墙端口:

sudo firewall-cmd --zone=public --add-service=syncthing --permanent
sudo firewall-cmd --zone=public --add-service=syncthing-gui --permanent
sudo firewall-cmd --reload

对于 Ubuntu,可以使用以下命令打开防火墙:

sudo ufw allow syncthing
sudo ufw allow syncthing-gui

配置 Syncthing使用以下命令打开 Syncthing 配置文件:

佳可商务购物程序 2004
佳可商务购物程序 2004

在原版的基础上做了一下修正评论没有提交正文的问题特价商品的调用连接问题去掉了一个后门补了SQL注入补了一个过滤漏洞浮动价不能删除的问题不能够搜索问题收藏时放入购物车时出错点放入购物车弹出2个窗口修正主题添加问题商家注册页导航连接问题销售排行不能显示更多问题热点商品不能显示更多问题增加了服务器探测 增加了空间使用查看 增加了在线文件编辑增加了后台管理里两处全选功能更新说明:后台的部分功能已经改过前台

下载
sudo nano ~/.local/state/syncthing/config.xml

在该文件中,找到以下部分: 将 tls="false" 更改为 tls="true" 并确保地址部分配置为托管机器的 IP 地址。完成后,保存并关闭文件。

使用以下命令重新启动 Syncthing 服务:

sudo systemctl restart syncthing@jack

访问 Syncthing Web UI打开 Web 浏览器并将其指向 https://www.php.cn/link/63737972b84c4b64087649e2b45eba01(其中 SERVER 是托管机器的 IP 地址)。在主页面上,您将收到警告,指出您需要设置远程访问密码。单击“设置”(图 1)来执行此操作。在“设置”弹出窗口中,单击“GUI”选项卡,然后设置用户名和密码。

Linux:使用Syncthing在服务器之间同步文件图 1:Syncthing 设置按钮(右下角)。

当你完成时点击保存。这将把你带到登录页面,你需要输入你刚刚设置的用户名和密码。

连接机器现在,您已经在两台机器上启动并运行了 Syncthing,现在是时候连接它们了。在一台机器上,进入 Syncthing 仪表盘,点击“操作”,然后点击“显示 ID”。你会看到一个二维码和一长串随机字符串。复制该字符串,然后移动到另一台机器。在第二台机器上,在“远程设备”部分,点击“添加设备”。在“设备 ID”部分,粘贴第一台机器的 ID,给设备起一个名字,然后点击“保存”。

进入“共享”选项卡,在“未共享文件夹”部分,勾选“默认文件夹”选项,然后勾选“自动接受”选项(图 2)。

Linux:使用Syncthing在服务器之间同步文件图 2:向 Syncthing 添加第二个节点。

点击“保存”,然后刷新仪表盘。连接的机器现在应该被列为“最新”。

确保您对两台机器都执行了这个过程。

Syncthing 的默认文件夹是 ~/Sync。你在其中一台机器上添加到该文件夹的任何文件或文件夹都将自动与另一台机器同步。你可以通过在一台机器上发出以下命令来测试:

touch ~/Sync/testing

如果你检查第二台机器,你会发现 testing 文件已经同步。

这就是在 Syncthing 的帮助下同步机器的全部内容。

相关专题

更多
curl_exec
curl_exec

curl_exec函数是PHP cURL函数列表中的一种,它的功能是执行一个cURL会话。给大家总结了一下php curl_exec函数的一些用法实例,这个函数应该在初始化一个cURL会话并且全部的选项都被设置后被调用。他的返回值成功时返回TRUE, 或者在失败时返回FALSE。

431

2023.06.14

linux常见下载安装工具
linux常见下载安装工具

linux常见下载安装工具有APT、YUM、DNF、Snapcraft、Flatpak、AppImage、Wget、Curl等。想了解更多linux常见下载安装工具相关内容,可以阅读本专题下面的文章。

175

2023.10.30

js 字符串转数组
js 字符串转数组

js字符串转数组的方法:1、使用“split()”方法;2、使用“Array.from()”方法;3、使用for循环遍历;4、使用“Array.split()”方法。本专题为大家提供js字符串转数组的相关的文章、下载、课程内容,供大家免费下载体验。

258

2023.08.03

js截取字符串的方法
js截取字符串的方法

js截取字符串的方法有substring()方法、substr()方法、slice()方法、split()方法和slice()方法。本专题为大家提供字符串相关的文章、下载、课程内容,供大家免费下载体验。

209

2023.09.04

java基础知识汇总
java基础知识汇总

java基础知识有Java的历史和特点、Java的开发环境、Java的基本数据类型、变量和常量、运算符和表达式、控制语句、数组和字符串等等知识点。想要知道更多关于java基础知识的朋友,请阅读本专题下面的的有关文章,欢迎大家来php中文网学习。

1468

2023.10.24

字符串介绍
字符串介绍

字符串是一种数据类型,它可以是任何文本,包括字母、数字、符号等。字符串可以由不同的字符组成,例如空格、标点符号、数字等。在编程中,字符串通常用引号括起来,如单引号、双引号或反引号。想了解更多字符串的相关内容,可以阅读本专题下面的文章。

620

2023.11.24

java读取文件转成字符串的方法
java读取文件转成字符串的方法

Java8引入了新的文件I/O API,使用java.nio.file.Files类读取文件内容更加方便。对于较旧版本的Java,可以使用java.io.FileReader和java.io.BufferedReader来读取文件。在这些方法中,你需要将文件路径替换为你的实际文件路径,并且可能需要处理可能的IOException异常。想了解更多java的相关内容,可以阅读本专题下面的文章。

550

2024.03.22

php中定义字符串的方式
php中定义字符串的方式

php中定义字符串的方式:单引号;双引号;heredoc语法等等。想了解更多字符串的相关内容,可以阅读本专题下面的文章。

546

2024.04.29

Java JVM 原理与性能调优实战
Java JVM 原理与性能调优实战

本专题系统讲解 Java 虚拟机(JVM)的核心工作原理与性能调优方法,包括 JVM 内存结构、对象创建与回收流程、垃圾回收器(Serial、CMS、G1、ZGC)对比分析、常见内存泄漏与性能瓶颈排查,以及 JVM 参数调优与监控工具(jstat、jmap、jvisualvm)的实战使用。通过真实案例,帮助学习者掌握 Java 应用在生产环境中的性能分析与优化能力。

19

2026.01.20

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
Linux网络安全之防火墙技术汇总
Linux网络安全之防火墙技术汇总

共31课时 | 3万人学习

PostgreSQL 教程
PostgreSQL 教程

共48课时 | 7.5万人学习

Git 教程
Git 教程

共21课时 | 2.8万人学习

关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号