You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

rsync报‘connection refused’错误求助:双向同步服务器sn2异常

我来帮你一步步捋清楚这个rsync连接拒绝的问题——双向同步卡壳确实挺闹心的😅

排查rsync "connection refused" 错误的实操步骤

你的场景很明确:sn1(192.168.13.131)的rsync服务正常,但sn2(192.168.13.132)无法被连接,导致双向同步失败。咱们从最基础的点开始排查:

1. 先确认sn2的rsync服务是否在运行

连接拒绝最常见的原因就是服务压根没启动,先把这个排除:

  • 在sn2上执行状态检查命令:systemctl status rsync(用systemd的系统),或者service rsync status(老系统)。
  • 如果显示服务未运行,先启动它:systemctl start rsync,再设置开机自启避免重启后失效:systemctl enable rsync。
  • 要是你的系统用xinetd管理rsync(比如CentOS 6这类老版本),还要检查xinetd服务是否运行,以及rsync在xinetd的配置是否被启用。

2. 检查sn2的防火墙是否拦截了rsync端口

防火墙挡端口是第二高频问题,rsync默认用的是873端口:

  • 可以先临时关闭防火墙测试:systemctl stop firewalld(firewalld工具)或者ufw disable(ufw工具),然后在sn1上再试rsync rsync://192.168.13.132,如果能通了,说明就是防火墙的锅。
  • 永久开放873端口:
    • firewalld:firewall-cmd --add-port=873/tcp --permanent,然后firewall-cmd --reload生效
    • ufw:ufw allow 873/tcp

3. 核对sn2的rsync配置文件

rsync的守护进程配置默认在/etc/rsyncd.conf,得确保这个配置是有效的:

  • 至少要有一个可访问的同步模块,比如:
    [sync_data]
        path = /your/actual/sync/directory
        comment = Bidirectional sync directory
        read only = no  # 双向同步必须设为no,允许写入
        hosts allow = 192.168.13.0/24  # 允许整个网段访问,或者直接写sn1的IP
        hosts deny = *
    
  • 重点注意hosts allow必须包含sn1的IP或所在网段,不然会被直接拒绝。
  • 修改配置后记得重启rsync服务:systemctl restart rsync

4. 测试端口连通性,确认不是网络问题

在sn1上直接测试sn2的873端口是否能通,用telnet或者nc工具:

  • 用telnet:telnet 192.168.13.132 873,如果能看到类似rsync version 3.2.3 protocol version 31的输出,说明端口是通的;如果还是显示Connection refused,那还是服务或防火墙的问题。
  • 用nc更直观:nc -zv 192.168.13.132 873,如果输出显示succeeded,说明端口没问题。

5. 检查rsync的监听地址是否限制了本地访问

有时候rsync会被配置成只监听localhost,导致外部机器无法连接:

  • 在sn2上执行:ss -tulpn | grep rsync,看输出里的监听地址是不是0.0.0.0:873(允许所有IP访问),如果是127.0.0.1:873,那只能本地访问。
  • 如果是systemd管理的rsync,编辑/etc/default/rsync,把RSYNC_OPTS加上--address=0.0.0.0,然后执行systemctl daemon-reload && systemctl restart rsync生效。

6. 排查SELinux(如果你的系统开启了它)

SELinux经常会悄悄阻止rsync的正常运行,尤其是同步目录的权限问题:

  • 先临时关闭SELinux测试:setenforce 0,然后再试连接。如果能通了,就需要配置SELinux规则允许rsync访问同步目录:
    • 临时设置:chcon -R -t rsync_data_t /your/sync/directory
    • 永久设置:semanage fcontext -a -t rsync_data_t "/your/sync/directory(/.*)?",然后restorecon -Rv /your/sync/directory

7. 验证双向同步的命令是否正确

等sn2的rsync服务正常后,还要确保双向同步的命令是对的:

  • 从sn1同步到sn2:rsync -avz /local/sync/dir/ rsync://192.168.13.132/sync_data/
  • 从sn2同步到sn1:rsync -avz /local/sync/dir/ rsync://192.168.13.131/sync_data/
  • 如果需要自动同步,可以用crontab定时执行,或者用inotify-tools实现实时触发同步。

如果某个步骤出现异常,比如服务启动失败,可以查看rsync的日志journalctl -u rsync或者/var/log/rsyncd.log,里面会有更详细的错误信息帮你定位问题。

内容的提问来源于stack exchange,提问作者Apokalos

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.26 11:10:06