Synology rsync 兼容客户端备份不工作?原因与解决全流程
在使用rsync 兼容客户端(如 Linux 自带 rsync、Windows cwRsync、macOS 终端 rsync)与 Synology NAS 进行网络备份时,很多用户会遇到 “备份任务无法启动” 或 “中途中断” 的问题 —— 比如客户端执行 rsync 命令后提示 “连接超时”“权限被拒”,或备份进度卡在 0% 后报错 “无法读取远程目录”。rsync 作为轻量、高效的增量备份工具,是跨平台数据同步的常用选择,而 Synology NAS 虽原生支持 rsync 协议,但配置不当或客户端适配问题会导致备份失效。本文基于 Synology 官方技术文档,先拆解 “rsync 备份不工作” 的典型症状,再精准定位核心原因,提供 “服务启用→端口验证→认证配置→客户端调试” 的分步解决方案,帮你彻底解决 rsync 兼容客户端与 Synology 的备份难题。
一、rsync 兼容客户端备份不工作的 4 类典型症状
在排查问题前,需先明确 “rsync 备份失败” 的具体表现,避免与 “网络断连”“NAS 离线” 等基础问题混淆。若你的 rsync 兼容客户端出现以下场景,即可判定为本文针对的 “rsync 协议交互故障”:
1. 客户端连接 NAS 时提示 “连接超时”
- 场景 2:Windows cwRsync 客户端运行批处理脚本,弹出 “Connection refused - connect (10061)” 错误,无法与 Synology NAS 建立连接;
2. 认证阶段提示 “权限被拒”
- 场景:客户端成功连接 NAS 后,输入 rsync 认证密码(或使用 SSH 密钥),终端提示 “rsync: auth failed on module BackupModule”(模块认证失败),或 “Permission denied, please try again”(密码错误);
- 排查:确认密码正确且客户端账户在 NAS 中有备份权限,仍无法通过认证,排除 “账户密码错误” 基础问题。
3. 备份过程中频繁中断,进度无法推进
- 场景:客户端与 NAS 建立连接并开始备份,前 10% 进度正常(如传输 1GB 数据),后续突然中断,终端显示 “rsync error: error in file IO (code 11) at receiver.c (753) [receiver=3.2.7]”;
- 细节:中断后重新执行命令,仍在相同进度点失败,且 NAS 共享文件夹中仅残留部分备份文件,排除 “临时网络波动” 问题。
4. 客户端无法识别 NAS 的 rsync 模块
- 场景:执行 rsync --list-only admin@192.168.1.100:: 命令(列出 NAS 的 rsync 模块),终端提示 “rsync: could not list modules from remote host: No such file or directory”,无法获取 NAS 配置的备份模块列表;
- 验证:在 NAS DSM 中确认已创建 rsync 模块(如 “BackupModule”),但客户端无法识别,排除 “模块未创建” 问题。
二、rsync 兼容客户端备份不工作的 5 大核心原因
根据 Synology 官方文档的诊断结论,“rsync 备份失败” 本质是 “客户端与 NAS 的 rsync 协议交互存在断点”,具体可拆解为 5 类核心原因(表格整理逻辑与症状对应,清晰易懂):
核心原因 | 技术原理 | 对应典型症状 | 关键说明 |
1. Synology NAS 的 rsync 服务未启用 | Synology NAS 默认禁用 rsync 服务,需手动在 “文件服务” 中开启,否则无法监听 rsync 请求(默认端口 873) | 症状 1(连接超时)、症状 4(无法识别模块) | rsync 服务是 NAS 接收客户端备份请求的基础,未启用则客户端无任何连接入口 |
2. rsync 端口冲突或被防火墙拦截 | rsync 默认使用 873 端口(TCP),若该端口被 NAS 其他服务占用(如自定义服务),或被 NAS / 客户端防火墙拦截,会导致连接失败 | 症状 1(连接超时、拒绝连接) | 873 端口是 rsync 协议的 “通信通道”,端口不通则客户端与 NAS 无法建立基础连接 |
3. rsync 模块配置错误(NAS 端) | NAS 需配置 rsync 模块(指定备份路径、权限、认证方式),若模块路径不存在、权限不足或名称错误,客户端无法访问 | 症状 4(无法识别模块)、症状 2(权限被拒) | 模块是 NAS 向客户端开放的 “备份入口”,配置错误会导致客户端无法定位备份目标 |
4. 客户端与 NAS 的认证方式不匹配 | Synology rsync 支持 “密码认证”“SSH 密钥认证”“匿名访问” 3 种方式,若客户端认证方式与 NAS 配置不一致(如 NAS 需密钥,客户端用密码),会导致认证失败 | 症状 2(权限被拒) | 认证是 rsync 备份的 “安全校验环节”,方式不匹配会直接阻断后续备份操作 |
5. 客户端 rsync 版本与 NAS 不兼容 | Synology NAS 支持 rsync 3.0 及以上版本,若客户端使用过旧版本(如 rsync 2.6),会因协议特性差异导致交互失败 | 症状 3(备份中断)、症状 4(模块识别失败) | 旧版本客户端不支持新版 rsync 的 “增量备份校验机制”“大文件传输优化”,易触发 IO 错误 |
三、分场景解决:rsync 兼容客户端备份问题的 6 步详细操作
针对上述原因,需按 “NAS 端配置→网络与端口验证→客户端适配” 的顺序操作,每一步均附带 Synology 官方推荐的操作路径与命令示例,确保不同系统客户端(Linux/Windows/macOS)均能适配:
步骤 1:在 Synology NAS 中启用并配置 rsync 服务(核心基础)
rsync 服务未启用是最常见原因,需在 NAS DSM 中完成基础配置,步骤如下:
- 启用 rsync 服务
- 登录 Synology DSM 管理界面→进入「控制面板」→「文件服务」→切换到「rsync」标签页;
- 勾选 “启用 rsync 服务”(核心开关),若需使用 SSH 加密的 rsync(通过 22 端口,更安全),同时勾选 “启用通过 SSH 的 rsync”(可选,适合公网备份);
- 点击「应用」保存,此时 NAS 开始监听 rsync 默认端口 873(非 SSH 模式)或 22 端口(SSH 模式)。
- 创建 rsync 模块(客户端访问入口)
- 在「rsync」标签页中,点击「rsync 模块设置」→「新增」,进入模块配置窗口:
- 模块名称:自定义(如 “BackupModule”,客户端命令需与该名称完全一致,区分大小写);
- 模块路径:选择 NAS 中用于接收备份的共享文件夹(如 “/volume1/Backup”,需确保该文件夹存在);
- 权限:根据需求选择 “只读”(客户端仅能从 NAS 拉取数据)或 “读写”(客户端能向 NAS 推送数据,备份需选 “读写”);
- 用户认证:需输入 NAS 本地账户(如 admin)密码(推荐,基础安全);
- SSH 密钥:需在 NAS 中添加客户端的 SSH 公钥(适合频繁备份,免密码登录);
- 点击「确定」完成模块创建,返回「rsync 模块设置」可看到新增模块(确保状态为 “启用”)。
步骤 2:验证 rsync 端口通畅性(排除端口拦截)
端口被拦截是 “连接超时” 的核心原因,需分别验证 NAS 端端口监听状态与客户端端口访问状态:
- 在 NAS 中验证 rsync 端口监听
- 启用 SSH 功能(「控制面板→终端机和 SNMP→启动 SSH」),通过 PuTTY/Xshell 登录 NAS(账户为管理员);
- 执行以下命令,检查 873 端口(非 SSH 模式)监听状态:
- 若输出 “tcp 0 0 0.0.0.0:873 0.0.0.0:* LISTEN”,说明 873 端口正常监听;若未输出,需重新启用 rsync 服务并检查是否有端口冲突(如其他服务占用 873)。
- 在客户端验证端口访问
telnet NAS_IP 873 # 非SSH模式,验证873端口;SSH模式验证22端口:telnet NAS_IP 22
- 若显示 “Connected to NAS_IP”,说明端口通畅;若显示 “Connection refused”,需排查防火墙;
- Windows 客户端:打开 “命令提示符”,执行相同 telnet 命令(若提示 “telnet 不是内部命令”,需在「控制面板→程序→启用或关闭 Windows 功能」中勾选 “Telnet 客户端”)。
步骤 3:排查 NAS 与客户端的防火墙设置(放行 rsync 端口)
防火墙拦截是端口不通的主要原因,需分别配置 NAS 与客户端的防火墙规则:
- NAS 防火墙配置(放行 rsync 端口)
- 进入 DSM「控制面板→安全→防火墙」→若 “防火墙配置文件” 为 “启用”,点击「编辑规则」;
- 端口:目标端口 873(非 SSH 模式)或 22(SSH 模式),协议选择 “TCP”;
- 点击「确定」并「应用」,确保规则优先级高于 “拒绝” 规则。
- 客户端防火墙配置(放行 rsync 进程)
- Linux/macOS:执行 sudo ufw allow out 873/tcp(非 SSH 模式)或 sudo ufw allow out 22/tcp(SSH 模式),放行客户端的 rsync 出站请求;
- Windows:进入「设置→隐私和安全→Windows 安全中心→防火墙和网络保护」→「允许应用通过防火墙」→点击「更改设置」→找到 “rsync”(或 cwRsync 进程),勾选 “专用” 和 “公用”,点击「确定」。
步骤 4:适配客户端与 NAS 的认证方式(解决权限被拒)
认证方式不匹配是 “权限被拒” 的核心原因,需根据 NAS 配置选择对应客户端认证方式(以常用的 “用户认证” 和 “SSH 密钥认证” 为例):
方式 1:用户认证(适合简单内网备份)
- Linux/macOS 客户端:执行 rsync 命令时,在模块名称后指定 NAS 账户,示例(备份本地/home/data到 NAS 的 “BackupModule” 模块):
rsync -avz --password-file=/etc/rsyncd.passwd /home/data/ NAS账户@NAS_IP::BackupModule/
- 说明:--password-file指定密码文件(需提前创建,内容为 NAS 账户密码,权限设为 600:chmod 600 /etc/rsyncd.passwd),避免每次输入密码;
- Windows cwRsync 客户端:在批处理脚本中使用以下命令(注意路径格式为 cygdrive 格式,如/cygdrive/d/backup对应本地 D 盘 backup 文件夹):
rsync -avz --password-file=/cygdrive/c/rsync/rsyncd.passwd /cygdrive/d/backup/ NAS账户@NAS_IP::BackupModule/
方式 2:SSH 密钥认证(适合免密码频繁备份)
- 在客户端生成 SSH 密钥:
- Linux/macOS:执行 ssh-keygen -t rsa,按回车默认路径(~/.ssh/id_rsa),无需设置密码(或按需设置密钥密码);
- Windows cwRsync:打开 “cwRsync Terminal”,执行相同命令,密钥生成在/cygdrive/c/Users/用户名/.ssh/目录;
- 将客户端公钥上传到 NAS:
- 登录 NAS DSM→「控制面板→用户账号→选中目标账户→编辑→SSH 密钥」→点击「添加」,将客户端公钥(~/.ssh/id_rsa.pub 或 Windows 对应路径的文件内容)粘贴到文本框,点击「确定」;
- 客户端执行 SSH 模式 rsync 命令(端口为 22):
rsync -avz -e ssh /home/data/ NAS账户@NAS_IP:/volume1/Backup/ # 直接指定NAS的备份路径,无需模块
步骤 5:验证客户端 rsync 版本兼容性(解决备份中断)
客户端版本过旧会导致协议不兼容,需检查并升级客户端版本:
- 检查客户端 rsync 版本
- Linux/macOS:执行 rsync --version,查看版本号(需≥3.0.0,推荐 3.2.0+);
- Windows cwRsync:打开终端执行 rsync --version,确保为 cwRsync 6.0+(对应 rsync 3.2.7+);
- 升级旧版本客户端
- Linux:sudo apt update && sudo apt install rsync(Debian/Ubuntu)或 sudo dnf update rsync(CentOS/RHEL);
- macOS:brew install rsync(需先安装 Homebrew)。
步骤 6:测试 rsync 备份任务(验证配置有效性)
完成上述配置后,需执行测试命令验证备份是否正常:
- 执行简单列表命令(验证模块识别)
# 非SSH模式:列出NAS的rsync模块rsync --list-only NAS账户@NAS_IP::# 若成功,会显示创建的模块(如“BackupModule”);SSH模式无需模块,直接列出NAS路径:ssh NAS账户@NAS_IP ls /volume1/Backup
- 执行增量备份测试(验证数据传输)
# 非SSH模式示例:备份本地test.txt到NAS模块echo "test data" > /home/test.txtrsync -avz /home/test.txt NAS账户@NAS_IP::BackupModule/# SSH模式示例:rsync -avz -e ssh /home/test.txt NAS账户@NAS_IP:/volume1/Backup/
- 验证备份结果
- 登录 NAS DSM→打开「File Station」→进入备份路径(如/volume1/Backup),确认 “test.txt” 已存在且内容正确,说明备份成功。
四、常见疑问解答(FAQ):解决 rsync 备份的延伸问题
Q1:Windows cwRsync 客户端提示 “cygpath: command not found”,怎么办?
答:这是 cwRsync 的路径环境变量配置问题,解决方案:
- 找到 cwRsync 的安装路径(如C:Program FilescwRsyncbin);
- 右键「此电脑→属性→高级系统设置→环境变量→系统变量→Path」,点击「编辑」,添加 cwRsync 的 bin 路径;
- 关闭所有已打开的 cwRsync 终端,重新启动后执行命令,即可解决 “cygpath 未找到” 问题。
Q2:NAS 配置 rsync 模块后,客户端仍无法识别,提示 “模块不存在”,为什么?
答:核心是 “模块名称大小写不匹配” 或 “模块路径不存在”,解决方案:
- 确认客户端命令中的模块名称与 NAS 配置完全一致(如 NAS 为 “BackupModule”,客户端不能写 “backupmodule”,rsync 区分大小写);
- 在 NAS「File Station」中,检查 rsync 模块配置的 “模块路径”(如/volume1/Backup)是否存在,若不存在,需先创建该共享文件夹,再重新配置模块。
Q3:rsync 增量备份时,客户端提示 “文件已存在但未更新”,实际文件已修改,怎么办?
答:这是 rsync 的 “增量备份校验机制” 未触发,解决方案:
- 执行 rsync 命令时添加--checksum参数(基于文件校验和而非时间戳判断是否更新),示例:
rsync -avz --checksum /home/data/ NAS账户@NAS_IP::BackupModule/
- 若文件修改时间在 1 秒内(如脚本批量生成的文件),添加--modify-window=1参数(允许 1 秒内的时间戳差异),确保增量备份正常触发。
Q4:公网环境下用 rsync 备份,担心 873 端口不安全,如何加密传输?
答:推荐使用 “SSH 模式的 rsync”(通过 22 端口加密传输),操作要点:
- 在 NAS「rsync」标签页中,勾选 “启用通过 SSH 的 rsync”;
- 客户端执行命令时,添加-e ssh参数(指定 SSH 传输),示例:
rsync -avz -e ssh /home/data/ NAS账户@NAS公网IP:/volume1/Backup/
- 为增强安全,可在 NAS「控制面板→终端机和 SNMP」中,将 SSH 端口从 22 改为自定义端口(如 2222),客户端命令对应调整:
rsync -avz -e "ssh -p 2222" /home/data/ NAS账户@NAS公网IP:/volume1/Backup/
五、总结:保障 rsync 备份正常的 4 个核心要点
- 服务与模块是基础:确保 NAS 的 rsync 服务已启用,模块配置正确(名称、路径、权限无错误),这是客户端访问的前提;
- 端口与防火墙要通畅:rsync 默认 873 端口(非 SSH)或 22 端口(SSH)需放行,NAS 与客户端防火墙均需配置规则,避免拦截;
- 认证方式需匹配:客户端认证方式(密码 / 密钥)与 NAS 配置一致,避免因权限校验失败阻断备份;
- 版本兼容是关键:客户端 rsync 版本需≥3.0.0,避免因协议差异导致备份中断,老旧客户端及时升级。
通过本文的分步操作,你可高效解决 rsync 兼容客户端与 Synology NAS 的备份问题,满足 Linux/Windows/macOS 跨平台的数据同步需求。若操作后仍有疑问,可参考 Synology 官方文档的 “rsync 服务故障排除” 章节,或联系技术支持提供客户端命令日志、NAS 模块配置截图,获取针对性帮助。