NAS 与服务器同步问题——SMB 权限、Docker 部署、磁盘空间
Synology DSM 常见问题
GoodSync 套件启动失败
- DSM → 套件中心 → GoodSync → 停止 → 重新启动
- 检查 GoodSync 的依赖:DSM 版本必须 ≥ 7.0
- 检查 DSM 的防火墙:控制面板 → 安全 → 防火墙 → 确保 GoodSync 端口放行
- 检查磁盘空间:GoodSync Server 需要至少几百 MB 空间
GoodSync Server 登录失败
GoodSync Server 的 Web 管理界面(端口 11000)登录时:
- 用户名密码对不上:GoodSync Server 的登录凭据与 DSM 管理员账户无关——这是 GoodSync Connect 的账户(UserId + 密码)
- 忘记 Connect 密码:去 GoodSync 官网重置
- GoodSync Server 未启动:DSM → 套件中心 → GoodSync → 确认状态是「运行中」
Synology SMB 共享通过 Connect 访问太慢
NAS 上 GoodSync Server 处理 SMB 共享的方式:
- GoodSync Server 先在本地(NAS 端)读取 SMB 共享目录内容
- 再通过 Connect 协议传输到客户端
- 这个「本地读取 → 网络传输」的双重过程比直接 GoodSync Connect 到共享目录慢
优化:
- 尽量把 GoodSync 的同步路径设为 NAS 的本地目录(
/volume1/Backup/),不要设为 SMB 远程目录 - 如果必须通过 SMB 访问远程共享,考虑改用 NAS 上的 SCP/SFTP 服务
Synology 快照 + GoodSync 版本历史
DSM 的快照功能与 GoodSync 版本历史可以叠加:
- DSM 快照:即时创建、不占用额外空间、自动按计划运行
- GoodSync 版本历史:在 GoodSync 的
_gsdata_/_history/目录中
两层快照互不干扰。建议:
- DSM 快照做「定时自动快照」(每小时或每天)
- GoodSync 版本历史做「同步时即时保存」
- 需要恢复时,DSM 快照适合大范围回滚,GoodSync 版本历史适合恢复单个文件
QNAP 常见问题
GoodSync QPKG 安装失败
- 确认 QTS 版本 ≥ 5.0
- 确认下载的 QPKG 与 QNAP CPU 架构匹配(x86_64 vs aarch64)
- 检查磁盘空间和系统分区空间
- 手动安装 QPKG:App Center → 右上角 → 手动安装
QuFirewall 拦截 GoodSync
QNAP 的 QuFirewall 默认拦截 GoodSync 的某些端口:
- QTS → 控制面板 → 安全 → QuFirewall → 应用程序
- 找到 GoodSync → 设置为「允许」
- 如果 GoodSync 不在应用列表:手动添加端口规则(允许 TCP 443 + 动态 GSTP 端口)
Docker 部署 GoodSync 的问题
容器无法访问 NAS 目录
Docker 容器需要正确挂载 NAS 目录:
# Docker Compose 示例
services:
goodsync:
image: goodsync:latest
volumes:
- /volume1/Backup:/backup:rw # NAS 目录挂载到容器
- goodsync-config:/root/.goodsync # 配置持久化
ports:
- "11000:11000"
restart: unless-stopped
关键:确保挂载路径正确,容器内要有读写权限。
容器网络模式
GoodSync Connect 需要容器能出站访问 GoodSync 服务器(mediator + forwarder)。推荐网络模式:
- bridge(默认):通常够用,出站可达
- host:需要容器直接使用宿主机网络
- 如果用 bridge 但连不上 Connect → 切到 host 模式测试
容器内 Timezone
容器内的时区默认是 UTC,可能导致时间戳比较问题:
environment:
- TZ=Asia/Shanghai
容器崩溃后数据丢失
GoodSync 的作业配置和 _gsdata_ 状态文件都在 /root/.goodsync(容器内路径)。如果没有挂载这个目录到 Docker Volume,容器删除后数据会丢失。
务必挂载:
volumes:
- goodsync-config:/root/.goodsync
Linux Server 上 GoodSync 问题
systemd 启动失败
# 查看详细错误
journalctl -u goodsync -n 50 --no-pager
# 常见原因和修复:
# 1. 运行账户不存在
sudo useradd -r -s /usr/sbin/nologin goodsync
# 2. 数据目录权限不对
sudo chown -R goodsync:goodsync /var/lib/goodsync
# 3. systemd 单元文件格式错误
sudo systemd-analyze verify /etc/systemd/system/goodsync.service
SELinux 阻止 GoodSync
# 临时关闭 SELinux 测试
sudo setenforce 0
# 如果测试正常 → 创建 SELinux 策略
# GoodSync 官方有部分发行版的预构建策略包
gsync 命令找不到
GoodSync 安装脚本默认把 gsync 放在 /usr/local/bin/gsync。如果找不到:
# 检查安装位置
which gsync
find / -name gsync -type f 2>/dev/null
# 手动添加 PATH
export PATH=$PATH:/usr/local/bin
NAS 磁盘空间管理
GoodSync 版本历史清理
GoodSync 的版本历史目录(_gsdata_/_history/)会持续增长。设置自动清理:
- 作业 Options → General → Version History
- 设置保留策略(如保留最近 30 天 / 最多 10 个版本)
- 超过策略的旧版本会被自动删除
NAS 自身的存储配额
Synology/QNAP/WD NAS 都支持用户/共享文件夹的存储配额。确保 GoodSync 运行账户的配额不会意外耗尽:
- Synology:存储空间管理器 → 设置 → 配额 → 设置 GoodSync 账户的配额(或设为无限)
- QNAP:控制面板 → 权限 → 配额
- WD My Cloud:仪表盘 → 用户 → 设置配额
GoodSync 跨平台版本差异
| 功能 | Windows | macOS | Linux | NAS |
|---|---|---|---|---|
| GUI | 完整 | 完整 | 有限 | 无(Web 管理界面) |
| 作业管理 | 完整 | 完整 | 通过 gsync CLI | 通过 gsync CLI |
| Block-level | 完整 | 完整 | 完整 | 完整 |
| Copy Locked Files | VSS 支持 | 部分支持 | 部分支持 | 取决于 NAS 系统 |
| 服务模式 | Windows 服务 | Launchd | systemd | 各 NAS 管理器 |
| 便携版 | GoodSync2Go | GoodSync2Go | 无 | 无 |
版本同步建议:跨平台作业两端的 GoodSync 版本号尽量相同(主版本号相同至少),不同版本间的协议兼容性最好。