必须完成rsync服务端配置、认证机制设定、防火墙放行及客户端同步命令编写四个核心环节:服务端安装rsync并配置/etc/rsyncd.conf(use chroot = no)、创建600权限密码文件与同步目录、启用rsyncd服务、firewalld开放873端口,客户端通过--password-file或交互式输入密码执行rsync同步。

您需要在银河麒麟操作系统中让本地文件夹与远程服务器或另一台麒麟主机保持内容一致,必须完成rsync服务端配置、认证机制设定、防火墙放行及客户端同步命令编写四个核心环节,缺一不可。
服务端安装与基础配置
首先确认系统已安装rsync:执行rsync --version,若提示命令未找到,则运行sudo yum install rsync -y(服务器版)或sudo apt install rsync -y(桌面版)。
创建主配置文件/etc/rsyncd.conf,写入以下内容:
uid = root
gid = root
use chroot = no
max connections = 5
pid file = /var/run/rsyncd.pid
lock file = /var/run/rsync.lock
log file = /var/log/rsyncd.log
[mydata]
path = /data/sync
comment = User data sync module
read only = no
list = yes
auth users = syncuser
secrets file = /etc/rsyncd.secrets
hosts allow = 192.168.1.0/24
注意:【use chroot = no】是关键项,设为yes会导致路径解析异常,尤其在挂载点或软链接目录下同步失败;若需更高安全性,应配合SELinux策略而非强制chroot。
认证用户与权限设置
方法一:生成密码文件
执行echo "syncuser:MyPass123" | sudo tee /etc/rsyncd.secrets,随后立即执行sudo chmod 600 /etc/rsyncd.secrets——【权限必须为600,否则rsync拒绝启动】。
方法二:创建同步目录并授权
运行sudo mkdir -p /data/sync,再执行sudo chown -R syncuser:syncuser /data/sync。这一步不能跳过,否则即使认证通过,rsync也会因无写入权限而静默退出。
启动服务并开放防火墙
第一步:启用systemd服务管理
sudo systemctl enable rsyncd && sudo systemctl start rsyncd
第二步:检查服务状态
sudo systemctl status rsyncd,确认输出中显示Active: active (running)且无红色error字样。
第三步:放行firewalld端口
银河麒麟V10默认使用firewalld,执行sudo firewall-cmd --add-port=873/tcp --permanent && sudo firewall-cmd --reload。不要依赖--add-service=rsync,该预设服务在部分SP2镜像中未定义,直接开873端口更可靠。
客户端同步命令实操
方法一:密码文件方式(推荐用于脚本)
在客户端机器上创建/home/kylin/.rsync_pass,内容仅一行MyPass123,并执行chmod 600 /home/kylin/.rsync_pass。
执行同步:rsync -avz --delete --password-file=/home/kylin/.rsync_pass /home/kylin/Documents/ syncuser@192.168.1.100::mydata。
方法二:交互式输入密码(适合首次调试)
运行rsync -avz --delete /home/kylin/Pictures/ syncuser@192.168.1.100::mydata,终端将提示输入密码,键入MyPass123后回车即可开始传输。
注意:若提示@ERROR: auth failed on module mydata,请立即检查服务端/etc/rsyncd.secrets权限是否为600、用户名是否大小写一致、模块名是否拼写正确——这三个点任一出错都会导致认证失败且无进一步提示。

















