Syncthing 是一款优秀的多端跨平台同步软件,它无需服务器,无需公网IP, 只需要能够上网,就能完成多端数据文件同步。本文介绍在Linux下,通过Docker 安装Syncthing的最佳实践。

1、系统环境
操作系统:Debian13/CentOS9 , 管理维护环境:宝塔面板
2、两个关键目录(可根据需要修改):
Syncthing 数据同步目录:/www/wwwroot/syncthing_data
Syncthing 配置文件目录:/www/wwwroot/syncthing_config
修改这两个目录的权限:
chown -R root:root /www/wwwroot/syncthing_data
chown -R root:root /www/wwwroot/syncthing_config
chmod -R 755 /www/wwwroot/syncthing_data
chmod -R 755 /www/wwwroot/syncthing_config
3、防火墙端口(在宝塔面板 – 安全(以及你的云服务器厂商后台)开放以下端口)
- 8384 (TCP): Web 管理界面(必开)
- 22000 (TCP/UDP): 数据传输端口(必开)
- 21027 (UDP): 本地发现端口(选开,用于局域网发现)
4、域名访问Web管理界面(可选)
宝塔面板新建一个站点,设置 – 反向代理 – 添加反向代理,目标 URL 填写 http://127.0.0.1:8384。
5、Docker Run
docker run -d \
--name syncthing \
--hostname=debian-syncthing \
--network host \
-v /www/wwwroot/syncthing_config:/var/syncthing/config \
-v /www/wwwroot/syncthing_data:/var/syncthing \
-e PUID=0 \
-e PGID=0 \
--restart unless-stopped \
syncthing/syncthing:latest
参数解析:
–network host : Syncthing 使用 UDP 广播和多播进行本地发现。在默认的 Bridge 模式下,这些包很难穿透 Docker 网桥
PUID=0 & PGID=0 : 在宝塔环境下,为了避免同步后的文件出现“权限拒绝”或无法修改的问题,建议直接指定为 root 用户(ID 为 0)。如果你有特定的 Web 用户需求,可以改为 1000 或 www 用户的 ID
-v : 挂载卷,单独存放,方便迁移和备份
6、修改Web管理界面地址和端口
默认情况下,Docker 版 Syncthing 的 Web 界面可能只监听 127.0.0.1。如果启动后无法通过外网 IP 访问 8384,请进入容器修改配置文件:
修改宿主机上的 config/config.xml,找到 <address>127.0.0.1:8384</address> , 改为 <address>0.0.0.0:8384</address> 。重启容器:docker restart syncthing
7、同步目录
如果同步的目录,不在/www/wwwroot/syncthing_data 下,由于是Docker 运行的Syncthing,最佳做法是增加一个数据挂载。
例如:这个目录/www/wwwroot/website需要同步,停止并删除现有容器,重新运行Docker Run。
docker run -d \
--name syncthing \
--network host \
-v /www/wwwroot/syncthing_config:/var/syncthing/config \
-v /www/wwwroot/syncthing_data:/var/syncthing \
-v /www/wwwroot/website:/var/website \
-e PUID=0 -e PGID=0 \
--restart unless-stopped \
syncthing/syncthing:latest
Syncthing系列学习
评论列表(2条)
[…] Linux下Docker 安装配置Syncthing的最佳实践 […]
[…] Linux下Docker 安装配置Syncthing的最佳实践 Syncthing文件同步服务的跨平台迁移 Syncthing报错,failed to set up inotify handler. Please increase inotify limits […]