搬瓦工搭建 Syncthing 去中心化文件同步工具完整教程
Syncthing 是一款开源的去中心化文件同步工具,无需依赖第三方云服务,所有数据直接在你的设备之间传输并使用 TLS 加密。将 Syncthing 部署在搬瓦工 VPS 上,可以让 VPS 充当一个永远在线的同步节点,确保所有设备的文件都能随时保持一致。本文将详细介绍使用 Docker 部署 Syncthing 的全过程。
一、准备工作
1.1 系统要求
- 操作系统:Ubuntu 20.04+(推荐 Ubuntu 22.04)。
- 内存:512MB 即可流畅运行。
- 磁盘空间:程序约 30MB,同步文件按需准备。
- Docker:需提前安装,参考 Docker 安装教程。
1.2 创建目录
mkdir -p /opt/syncthing/config
mkdir -p /opt/syncthing/data
二、Docker Compose 部署
2.1 创建配置文件
cd /opt/syncthing
cat > docker-compose.yml <<'EOF'
version: '3.8'
services:
syncthing:
image: syncthing/syncthing:latest
container_name: syncthing
restart: unless-stopped
hostname: my-syncthing
environment:
- PUID=1000
- PGID=1000
- TZ=Asia/Shanghai
ports:
- "8384:8384"
- "22000:22000/tcp"
- "22000:22000/udp"
- "21027:21027/udp"
volumes:
- ./config:/var/syncthing/config
- ./data:/var/syncthing/data
EOF
端口说明:
- 8384:Web 管理界面。
- 22000:文件同步传输端口(TCP + UDP)。
- 21027:本地发现协议端口(UDP)。
2.2 启动服务
docker compose up -d
2.3 配置防火墙
ufw allow 8384/tcp
ufw allow 22000/tcp
ufw allow 22000/udp
ufw allow 21027/udp
ufw reload
2.4 访问 Web 界面
浏览器访问 http://你的服务器IP:8384 即可进入 Syncthing 管理界面。首次访问时,系统会提示你设置管理界面的用户名和密码,强烈建议立即设置以防止未授权访问。
三、连接设备
3.1 获取设备 ID
在 Web 界面中点击右上角「操作」→「显示 ID」,会显示当前 Syncthing 实例的设备 ID(一个长串字符)。这个 ID 是连接其他设备的唯一标识。
3.2 在其他设备上安装 Syncthing
Syncthing 支持以下平台:
- Windows:官网下载 SyncTrayzor 或 Syncthing 独立版。
- macOS:通过 Homebrew 安装
brew install syncthing。 - Linux:使用包管理器或 Docker 安装。
- Android:Google Play 或 F-Droid 下载 Syncthing 客户端。
- iOS:Mobius Sync(第三方付费客户端)。
3.3 添加远程设备
在服务器的 Web 界面中点击「添加远程设备」,输入另一台设备的 ID。另一台设备也需要同样的操作,添加服务器的设备 ID。双方确认后,设备即可建立连接。
四、配置文件夹同步
4.1 添加共享文件夹
在 Web 界面中点击「添加文件夹」:
- 文件夹标签:给这个同步文件夹起一个名字。
- 文件夹路径:设置为
/var/syncthing/data/你的文件夹名。 - 共享设备:勾选需要同步的远程设备。
4.2 同步类型
Syncthing 支持多种文件夹类型:
- 发送和接收:双向同步,推荐用于多设备协作。
- 仅发送:只向其他设备推送文件,本地修改不会被远程覆盖。
- 仅接收:只接收其他设备的文件,适合用作备份节点。
4.3 忽略特定文件
在同步文件夹中创建 .stignore 文件,可以排除不需要同步的内容:
// 忽略临时文件
*.tmp
*.swp
~*
// 忽略操作系统文件
.DS_Store
Thumbs.db
desktop.ini
// 忽略特定目录
/node_modules
/.git
五、高级配置
5.1 文件版本控制
Syncthing 支持多种文件版本控制策略,在文件夹设置的「文件版本控制」中配置:
- 回收站式:删除和修改的文件保留指定天数。
- 简单:保留最近的指定份数版本。
- 阶梯式:根据时间阶梯保留不同数量的版本。
- 外部:调用外部脚本处理版本管理。
5.2 带宽限制
在「操作」→「设置」→「连接」中可以设置上传和下载的带宽限制,避免同步占用过多网络带宽。
5.3 NAT 穿透与中继
Syncthing 内置 NAT 穿透能力。当两台设备无法直接连接时,会通过公共中继服务器传输数据。将 Syncthing 部署在搬瓦工 VPS(公网 IP)上,可以作为中转节点帮助其他设备更高效地同步。
六、安全设置
6.1 设置 GUI 密码
在「操作」→「设置」→「图形用户界面」中设置用户名和密码,防止未授权访问管理界面。
6.2 限制管理界面访问
建议将管理界面仅监听本地,通过 SSH 隧道访问:
ports:
- "127.0.0.1:8384:8384"
- "22000:22000/tcp"
- "22000:22000/udp"
- "21027:21027/udp"
通过 SSH 隧道访问:
ssh -L 8384:localhost:8384 root@你的服务器IP
七、维护与更新
7.1 更新 Syncthing
cd /opt/syncthing
docker compose pull
docker compose up -d
7.2 查看同步状态
在 Web 界面可以实时查看各文件夹的同步进度、连接速度和设备状态。也可以通过 REST API 获取状态信息:
curl -H "X-API-Key: YOUR_API_KEY" http://localhost:8384/rest/system/status
7.3 备份配置
tar -czf syncthing-config-backup.tar.gz -C /opt/syncthing config/
总结
Syncthing 是一款安全可靠的去中心化文件同步工具,在搬瓦工 VPS 上部署后可以作为永远在线的同步中继节点,确保多台设备之间的文件始终保持一致。它不依赖任何第三方云服务,所有数据传输都经过端到端加密,非常适合注重隐私的用户。如果你需要更完整的网盘功能,可以参考 Nextcloud 或 Seafile 教程。选购搬瓦工 VPS 请参考 全部方案,购买时使用优惠码 NODESEEK2026 可享受 6.77% 的循环折扣。如遇问题,可前往 搬瓦工官网 提交工单。