在群晖 DSM 7.3 中部署 Syncthing,推荐使用 Container Manager(Docker)运行。这样升级、迁移和重建都更清晰,也方便把配置目录和需要同步的共享文件夹分开管理。
Syncthing 需要读写群晖上的共享文件夹。部署时最容易出问题的地方不是镜像本身,而是运行用户权限和目录映射:容器要用正确的 PUID、PGID 启动,并且网页端填写的同步路径必须是容器内路径。
准备工作
先通过 SSH 登录群晖,查询用于运行 Syncthing 的用户 ID:
|
|
记下返回结果里的 uid 和 gid。常见情况是 uid 在 1026 左右,gid 为 100。后面会把它们分别填到 PUID 和 PGID。
然后在 File Station 中进入 docker 共享文件夹,新建目录:
|
|
这个目录用于保存 Syncthing 的配置文件、数据库和运行状态。后续重建容器时,只要这个目录还在,配置就能保留下来。
下载 Syncthing 镜像
打开群晖的 Container Manager,进入左侧“注册表”,搜索:
|
|
选择官方镜像 syncthing/syncthing,标签使用 latest,下载完成后进入“映像”,选中 syncthing/syncthing 并点击“运行”。
创建容器
容器名称可以直接填写:
|
|
建议勾选“启用自动重新启动”,这样群晖重启后 Syncthing 会自动恢复运行。
配置环境变量
在高级设置里的环境变量区域添加或修改:
|
|
其中 PUID 和 PGID 要替换成你前面通过 id 用户名 查到的真实值。Syncthing 后续读写共享文件夹时,会以这个用户身份访问群晖文件系统。
固定端口
为了后续访问和排错方便,建议手动固定端口映射:
| 容器端口 | 本地端口 | 协议 | 用途 |
|---|---|---|---|
8384 |
8384 |
TCP | Web 管理界面 |
22000 |
22000 |
TCP | 数据同步传输 |
22000 |
22000 |
UDP | QUIC 数据传输 |
21027 |
21027 |
UDP | 局域网发现 |
如果群晖防火墙已开启,也要放行这些端口。只在局域网内使用时,至少要确保 8384 能从你的电脑访问。
配置目录映射
目录映射分两类:一类是 Syncthing 自己的配置目录,另一类是你希望同步的群晖共享文件夹。
配置目录必须这样映射:
| 群晖宿主机路径 | 容器内装载路径 |
|---|---|
/docker/syncthing |
/var/syncthing |
然后继续添加需要同步的数据目录。例如你想同步群晖上的 /volume1/NasData,可以这样映射:
| 群晖宿主机路径 | 容器内装载路径 |
|---|---|
/volume1/NasData |
/NasData |
这里要特别注意:以后在 Syncthing 网页端添加文件夹时,填写的是容器内路径,例如:
|
|
不要填写群晖宿主机路径 /volume1/NasData。Syncthing 运行在容器里,只能看到你映射进去的容器内路径。
如果要同步多个共享文件夹,可以继续添加多条映射,例如:
|
|
启动并访问
确认环境变量、端口和目录映射无误后,点击“完成”启动容器。
然后在浏览器打开:
|
|
进入 Syncthing 管理界面后,第一件事是设置 Web 管理界面的用户名和密码。路径为:
|
|
不要让未设置密码的 Syncthing 管理界面长期暴露在局域网里。
添加同步文件夹
点击“添加文件夹”,在“文件夹路径”中填写前面设置的容器内路径,例如:
|
|
如果权限配置正确,Syncthing 就可以读写这个共享文件夹。之后再添加远端设备,并选择要共享的文件夹,就可以开始同步。
小结
群晖 DSM 7.3 上部署 Syncthing 的关键点有三个:
- 用 Container Manager 运行
syncthing/syncthing; - 用正确的
PUID和PGID解决共享文件夹读写权限; - 在 Syncthing 网页端使用容器内路径,而不是群晖宿主机路径。
只要这三点配置正确,Syncthing 在群晖上会比较稳定,也方便后续扩展更多同步目录。