如何在 VPS.Town 服务器中安装 Syncthing

温馨提示

本文由用户 k08255-lxm 撰写,并已加入 VPS.Town 优秀原创文章激励计划,本站享有完整版权,未经允许不得转载。

本文已通过 VPS.Town 社区文章投稿及奖励规则 (试行稿) 审核,并获得 -- 奖励。

📖 本文目录

什么是 Syncthing?

Syncthing 是一个开源、免费、跨平台的点对点 (P2P) 文件同步工具。与传统的云存储服务(如 Dropbox 或 Google Drive)不同,Syncthing 的数据传输是去中心化的,直接在您控制的设备之间进行,不经过任何中央服务器。这为您提供了更高的数据隐私性和控制权。

在 VPS.Town 服务器上使用 Syncthing 可以带来诸多便利:

  • 服务器文件备份: 将服务器上的重要配置文件、网站数据等实时同步到您的本地电脑或其他服务器。
  • 多服务器文件分发: 如果您管理多个 VPS.Town 实例,可以使用 Syncthing 轻松地将文件或更新分发到所有实例。
  • 构建个人同步云: 结合 VPS.Town 服务器的稳定在线特性,您可以将其作为同步网络中的一个可靠节点。

本教程将指导您在基于 Debian 12 的 VPS.Town 服务器上安装和基本配置 Syncthing。

为什么选择 VPS.Town?

🔄 VPS.Town 备份解决方案
  1. 最多可提供高达 8TB 大容量存储 的选项,随时随地备份大量数据;
  2. 同时提供 SSD & HDD 混合方案,读写速度更快、同步速度更稳定;
  3. 完善的售后保障,支持随时增加硬盘、灵活升级配置,还支持 7 天内有理由退款;
  4. 1TB 存储大盘鸡续费仅需 260/年或 28.5/月,硬盘一次性买断最低仅需 ¥80/TiB
  5. 服务器位于香港,距离大陆近,对于移动用户更加友好

无 AFF 购买链接:点我一键直达

准备工作

运行环境说明

本教程明确针对 VPS.Town 的 Debian 12 (Bookworm) 服务器实例 操作。

Syncthing 的配置步骤在其他 Linux 发行版上基本一致,但软件包安装和防火墙配置命令可能不同。

在开始之前,请确保您满足以下条件:

  • 至少拥有一台运行 Debian 12 的服务器实例。
  • 您需要同步的另一台设备(可以是本地电脑 Windows/macOS/Linux,或另一台服务器)。
  • 具备基本的 Linux 命令行操作知识。
  • 拥有服务器的 root 权限或 sudo 权限。

在 VPS.Town 服务器 (Debian 12) 上安装 Syncthing

我们将使用 Syncthing 官方推荐的 APT 仓库进行安装,以确保获取最新版本。该方法在 Debian 12 上运行良好。

  1. 安装依赖 (如果需要): 确保 curlgpg 已安装。通常 Debian 12 默认包含,但执行一下无妨。

    sudo apt update
    sudo apt install curl gpg -y
    
  2. 添加 Syncthing 的 PGP 密钥:

    sudo curl -s -o /usr/share/keyrings/syncthing-archive-keyring.gpg https://syncthing.net/release-key.gpg
    

    这条命令会下载 Syncthing 的发布密钥并保存到指定位置,用于验证软件包的真实性。

  3. 添加 Syncthing 的 APT 仓库: 推荐使用 stable (稳定版) 频道。

    echo "deb [signed-by=/usr/share/keyrings/syncthing-archive-keyring.gpg] https://apt.syncthing.net/ syncthing stable" | sudo tee /etc/apt/sources.list.d/syncthing.list
    

    这条命令将 Syncthing 的稳定版仓库地址写入 APT 的源列表文件中。

  4. 更新软件包列表并安装 Syncthing:

    sudo apt update
    sudo apt install syncthing -y
    

    首先更新本地的软件包索引,然后执行安装命令。

  5. 验证安装:

    syncthing --version
    

    如果看到 Syncthing 的版本号输出,则表示安装成功,输出应该类似于这样:

    syncthing v1.29.5 "Gold Grasshopper" (go1.24.2 linux-amd64) debian@github.syncthing.net 2025-04-12 12:55:24 UTC [noupgrade]

首次配置与访问 Web UI

Syncthing 提供了一个基于 Web 的图形用户界面 (GUI) 来进行管理。默认情况下,它只监听本地回环地址 (127.0.0.1) 的 8384 端口,需要修改配置才能从外部访问。

  1. 首次运行 Syncthing (生成配置): 在服务器上执行一次 syncthing 命令(最好是非 root 的普通用户),它会生成默认的配置文件,然后按 Ctrl+C 停止它。

    syncthing
    
    #下面是我执行以后输出的最后几行
    # [35WMX] 2025/04/13 21:15:25 INFO: Creating new HTTPS certificate
    #[35WMX] 2025/04/13 21:15:25 INFO: Ready to synchronize "Default Folder" (default) (sendreceive)
    #[35WMX] 2025/04/13 21:15:25 INFO: Completed initial scan of sendreceive folder "Default Folder" (default)
    #[35WMX] 2025/04/13 21:15:25 INFO: GUI and API listening on 127.0.0.1:8384
    #[35WMX] 2025/04/13 21:15:25 INFO: Access the GUI via the following URL: http://127.0.0.1:8384/
    #[35WMX] 2025/04/13 21:15:25 INFO: My name is "HKG-A2-AF0CIDDAFCR68WMC"
    #[35WMX] 2025/04/13 21:15:25 WARNING: Syncthing should not run as a privileged or system user. Please consider using a normal user account.
    
  2. 确认并编辑配置文件: Syncthing 的配置文件通常位于 /用户名/.local/state/syncthing/config.xml。您可以通过以下命令确认具体路径:

    syncthing --paths
    

    记下 "Configuration" 对应的路径。下面以常见的 /root/.local/state/syncthing/config.xml 为例进行编辑(如果您的路径不同,请替换命令中的路径):

    nano ~/.config/syncthing/config.xml
    
  3. 允许远程访问 Web UI (重要!): 找到 <gui> 标签下的 <address> 行,将其内容从 127.0.0.1:8384 修改为 0.0.0.0:8384

    nano ~/.config/syncthing/config.xml
    <gui enabled="true" tls="false" debugging="false">
        <address>0.0.0.0:8384</address> <!-- 修改这里 -->
        <!-- user 和 password 稍后在 Web UI 中设置 -->
        <user></user>
        <password></password>
        <apikey>...</apikey>
        <theme>default</theme>
    </gui>
    

    Ctrl+X,然后按 Y 保存,最后按 Enter 确认。

    也可以使用一键命令来进行修改(需替换自己的路径)

    bash $
    sed -i 's|<address>127.0.0.1:8384</address>|<address>0.0.0.0:8384</address>|g' /root/.local/state/syncthing/config.xml
    
⚠️ 安全风险提示

将 Web UI 直接监听在 0.0.0.0 (所有网络接口) 会将其暴露于公网,存在安全风险。强烈建议 采取以下至少一种安全措施:

  • 配置防火墙: 仅允许特定可信 IP 地址访问 8384 端口。
  • 使用 SSH 隧道: (推荐用于临时或个人访问) 这是更安全的方式,无需修改监听地址或开放防火墙。
  • 设置反向代理: (推荐用于长期或多人访问) 使用 Nginx 或 Caddy 等设置反向代理,并配置 HTTPS 加密和访问控制。
  1. 启动 Syncthing 服务 (Systemd): 为了让 Syncthing 在后台持续运行并开机自启,我们使用 systemd。将 <user> 替换为您运行 Syncthing 的用户名(必须是您生成配置文件的那个用户)。

    sudo systemctl enable syncthing@<user>.service
    sudo systemctl start syncthing@<user>.service
    

    例如,如果您的用户名是 vpstownuser

    sudo systemctl enable syncthing@vpstownuser.service
    sudo systemctl start syncthing@vpstownuser.service
    

    检查服务状态:

    systemctl status syncthing@<user>.service
    

    如果服务正常运行,您应该看到 Active (running) 的状态。

  2. 访问 Web UI 并进行初始设置:

    • 如果配置了公网访问: 在浏览器中访问 http://<你的服务器 IP>:8384
    • 如果使用 SSH 隧道 : 在您的 本地电脑 上打开终端,运行以下命令(将 <user> 替换为您服务器的用户名,<你的 VPS.Town 服务器 IP> 替换为实际 IP):
      ssh -L 8384:localhost:8384 <user>@<你的 VPS.Town 服务器 IP>
      
      保持这个 SSH 连接处于活动状态,然后在您的 本地电脑 浏览器中访问 http://localhost:8384。这种方式更安全,无需暴露端口或修改监听地址。

    首次访问 Web UI 时,Syncthing 会提示您设置界面访问的用户名和密码。请务必设置一个强密码!

    页面介绍配图

    点击提示框里面的 "Settings" (设置),在 "GUI" 选项卡中设置 "GUI Authentication User" (用户名) 和 "GUI Authentication Password" (密码),然后点击 "Save" (保存)。

    浏览器会要求您使用新凭据重新登录。

    设置页面配图

    至此,安装完成

使用

下次填坑,可以参考其官方文档或移步搜索引擎。

总结

通过以上步骤,您已成功在您的 Debian 12 VPS.Town 服务器上安装并配置了 Syncthing,并与您的本地电脑建立了一个安全、自动的文件同步通道。

Syncthing 功能强大,还支持文件版本控制、忽略规则、单向同步等高级功能,您可以进一步探索其官方文档 来满足更复杂的需求。

现在,您可以利用 Syncthing 轻松地备份服务器数据、在多设备间保持文件一致,享受去中心化同步带来的便利和安全性。