“connection refused”表明tcp连接被明确拒绝,根本原因是rsync服务端未监听873端口,常见于rsync daemon未启动、绑定地址限制(如仅127.0.0.1)、防火墙拦截或安全组未放行873端口。

rsync 客户端报 “Connection refused”(连接被拒绝),说明客户端根本没能和 rsync 服务端建立 TCP 连接,问题出在通信链路最底层——不是权限、认证或路径的问题,而是服务没起来、端口不通或防火墙拦住了。
检查 rsync 服务端是否真正运行
rsync daemon 默认监听 873 端口。服务未启动是最常见原因。
- 在服务端执行 ps aux | grep rsync,确认是否有 rsync --daemon 进程
- 若无,手动启动:rsync --daemon --config=/etc/rsyncd.conf
- 验证端口监听状态:ss -tlnp | grep :873 或 netstat -tlnp | grep :873,应看到 rsync 进程绑定在 0.0.0.0:873 或 ::1:873
- 注意:systemd 环境下可能需用 systemctl start rsyncd(取决于发行版和服务单元名)
确认目标主机和端口可达
“Connection refused” 明确表示 TCP SYN 包发出去后收到 RST 响应,即目标 IP 的 873 端口明确拒绝连接,而非超时或丢包。
Zynq‑7000 / Zynq UltraScale+ 硬件调试技能。适用于 Xilinx Zynq(Cortex‑A9/A53 + FPGA)Linux 环境,调试 I2C、I2S、UART、GPIO 等外设。包括设备树配置、内核驱动、用户空间调试工具、交叉编译和常见问题排查,支持 PetaLinux 开发。
- 从客户端执行 telnet 172.16.1.41 873 或 nc -zv 172.16.1.41 873;若显示 “Connection refused”,说明服务未监听该地址/端口
- 检查服务端 /etc/rsyncd.conf 中的 address 和 port 配置:若指定了 address = 127.0.0.1,则只监听本地回环,外部无法访问
- 确保服务端配置了 bind_addr(如有)或未限制绑定到私有网卡
排查防火墙与网络策略拦截
即使服务已启动,也可能被中间设备阻断连接请求。
- 服务端检查 iptables/nftables 是否放行 873 端口:iptables -L -n | grep 873;若无规则,临时清空测试:iptables -F
- 云服务器(如阿里云、AWS)需检查安全组规则,确保入方向允许 TCP 873 端口来自客户端 IP 段
- 企业内网中可能存在网络 ACL、交换机端口隔离或代理设备拦截非标准端口,可尝试换用其他端口(如 8730)并同步修改配置和客户端命令
验证客户端命令与服务端模块配置匹配
虽然 “Connection refused” 本身不直接由模块名引发,但错误命令可能误导排查方向。
- 确认客户端使用的是 daemon 模式语法:rsync -avz /src/ user@host::module_name,不是 SSH 模式(如 user@host:/path)
- 服务端 /etc/rsyncd.conf 中对应 module_name 的模块必须存在,且 read only、list 等基础配置合法,否则服务可能启动失败而不报错
- 修改配置后务必重启 rsync daemon,仅 reload 不生效










