Skip to main content

Rsyncd 在 Rocky Linux 上的安装与使用指南

Rsyncd 是 rsync 的守护进程模式,允许将 rsync 作为服务运行,实现持续的文件同步服务。以下是在 Rocky Linux 8/9 上安装和配置 rsyncd 的完整指南。

一、安装 rsyncd

1. 安装 rsync 软件包

sudo dnf install rsync

2. 检查版本确认安装成功

rsync --version

二、配置 rsyncd 服务

1. 创建主配置文件

sudo vi /etc/rsyncd.conf

2. 基本配置示例

# 全局配置
uid = nobody
gid = nobody
use chroot = yes
max connections = 4
pid file = /var/run/rsyncd.pid
lock file = /var/run/rsync.lock
log file = /var/log/rsyncd.log
timeout = 300

# 模块配置
[backup]
    path = /data/backup
    comment = Backup Directory
    read only = no
    list = yes
    auth users = rsyncuser
    secrets file = /etc/rsyncd.secrets
    hosts allow = 192.168.1.0/24

3. 创建认证文件

sudo vi /etc/rsyncd.secrets

内容格式:

用户名:密码

例如:

rsyncuser:mypassword123

设置文件权限:

sudo chmod 600 /etc/rsyncd.secrets
sudo chown root:root /etc/rsyncd.secrets

4. 创建共享目录

sudo mkdir -p /data/backup
sudo chown nobody:nobody /data/backup

三、启动和管理 rsyncd 服务

1. 启用并启动服务

sudo systemctl enable rsyncd
sudo systemctl start rsyncd

2. 检查服务状态

sudo systemctl status rsyncd

3. 防火墙配置

# 开放873端口
sudo firewall-cmd --add-port=873/tcp --permanent
sudo firewall-cmd --reload

4. SELinux 配置(如启用)

sudo setsebool -P rsync_full_access=1

四、客户端连接使用

1. 从客户端同步到服务器(推送)

rsync -avz /local/path/ rsyncuser@server::backup

2. 从服务器同步到客户端(拉取)

rsync -avz rsyncuser@server::backup /local/path/

3. 使用密码文件(避免交互输入)

创建客户端密码文件 ~/rsync.pass

mypassword123

设置权限:

chmod 600 ~/rsync.pass

使用密码文件同步:

rsync -avz --password-file=~/rsync.pass /local/path/ rsyncuser@server::backup

五、高级配置选项

1. 模块配置参数

参数 说明
path 模块对应的文件系统路径
comment 模块描述信息
read only 是否只读 (yes/no)
list 是否允许列出模块内容 (yes/no)
auth users 允许访问的用户名(逗号分隔)
secrets file 认证文件路径
hosts allow 允许访问的客户端IP
hosts deny 拒绝访问的客户端IP
exclude 排除的文件/目录
include 包含的文件/目录

2. 日志轮转配置

创建 /etc/logrotate.d/rsyncd

/var/log/rsyncd.log {
    missingok
    notifempty
    sharedscripts
    delaycompress
    postrotate
        /bin/kill -HUP `cat /var/run/rsyncd.pid 2>/dev/null` 2>/dev/null || true
    endscript
}

六、安全最佳实践

  1. 使用非默认端口

    port = 8873
    

    并相应调整防火墙规则

  2. 限制访问IP

    hosts allow = 192.168.1.100, 10.0.0.0/24
    
  3. 使用SSH隧道(更安全):

    rsync -avz -e "ssh -p 22" /local/path/ user@server:/remote/path/
    
  4. 定期更换密码

  5. 监控日志文件

    sudo tail -f /var/log/rsyncd.log
    

七、故障排除

  1. 连接被拒绝

    • 检查服务是否运行:systemctl status rsyncd
    • 检查防火墙设置
    • 验证端口是否监听:ss -tulnp | grep rsync
  2. 认证失败

    • 检查 /etc/rsyncd.secrets 文件权限
    • 确认用户名密码正确
    • 检查SELinux状态
  3. 权限问题

    • 确认共享目录权限
    • 检查uid/gid设置

通过以上配置,您可以在Rocky Linux上建立稳定安全的rsync文件同步服务。根据实际需求调整配置参数,并定期检查日志和维护系统安全。