首页/数据/备份与容灾速查/rsync 守护进程模式

rsync 守护进程模式

以 rsyncd 服务提供同步端点,通过模块名暴露目录,可配置只读共享、用户认证与来源限制,适合固定的备份通道。

备份与容灾速查数据更新于 2026-10-13

rsync 守护进程模式

让 rsync 以服务方式常驻,通过模块名暴露目录,客户端用 ::模块名 或 rsync:// 地址访问。它省掉了每次连接都走 SSH 的开销,适合固定的备份通道:服务端只开放一个端口、按模块控制读写与来源,客户端一行命令就能同步。代价是 rsyncd 自身认证为明文,公网使用必须叠加隧道或限制来源。

基本信息

适用平台Linux/Unix(rsync 自带守护进程),端口 873/TCP
权限要求服务端以 root 启动才能保留属主与设备文件;模块可按 uid/gid 降权
配置文件/etc/rsyncd.conf,模块用 [名称] 分节定义
认证方式auth users + secrets file(明文口令),或配合 SSH 隧道

典型使用场景

  • 多台客户端向同一备份服务器推送数据,服务端集中管理模块与配额
  • 固定内网通道的每日同步,比逐台配置 SSH 免密更易审计
  • 只读分发:把软件包或镜像目录以 read only 模块提供下载
  • 拉模式备份:备份服务器主动从业务机拉取,业务机只开放 873
  • 跨部门数据交付:按模块授予不同账号的读写范围

服务端 /etc/rsyncd.conf

服务端 /etc/rsyncd.conf
[backup]                              # 模块名,客户端以 ::backup 访问
    path = /backup/data                # 模块对应的真实目录
    read only = no                     # no 表示允许客户端写入
    uid = backup                       # 写入时的属主,避免以 root 落盘
    auth users = backupuser            # 允许的用户名
    secrets file = /etc/rsyncd.secrets # 权限应设为 600
    hosts allow = 10.0.0.0/24          # 仅允许备份网段
    hosts deny = *                     # 其余来源一律拒绝
    max connections = 4                # 并发上限,保护磁盘
    log file = /var/log/rsyncd.log

客户端使用

客户端使用
rsync -av /data/ backupuser@10.0.0.5::backup/            # 双冒号:走守护进程模式
rsync -av /data/ rsync://backupuser@10.0.0.5/backup/     # 等价的 URL 写法
rsync -av --delete /data/ backupuser@10.0.0.5::backup/   # 镜像同步,注意删除语义
rsync --list-only backupuser@10.0.0.5::                  # 列出可用模块
systemctl enable --now rsyncd                            # 启用服务(Debian 系为 rsync)

配置项读法

配置项含义风险点
read only模块是否允许写入设为 no 又未限制来源,等于开放上传口
hosts allow / deny来源网段控制语法写错可能反而放开限制
auth users + secrets账号与口令文件secrets 权限过宽会泄露口令
max connections并发连接上限过高会把磁盘跑满,影响其他业务
rsyncd 的认证是明文传输口令的,跨公网或跨不可信网段时必须走 SSH 隧道(ssh -L 873:127.0.0.1:873)或只在内网开放。真正的加密传输方案是 rsync over SSH,而非守护进程模式。

易错点

  • secrets 文件权限过宽:口令泄露后攻击者可直接写入或读取备份目录
  • hosts allow 语法写错:限制形同虚设,配置后要从非许可网段实测验证
  • 客户端不加 --delete 又想镜像:目标端残留已删除文件,长期占用空间造成副本失真
  • 业务机开放 873 且允许写:备份端被当作跳板,数据可被覆盖

数据来源与参考

  • rsync 手册(rsyncd.conf 与守护进程模式)
​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌