Linux 中怎么使用 Rsync 排查数据传输丢包故障

酷婷姑娘_3545

酷婷姑娘_3545

2026-10-22

707人浏览

原创

rsync不能排查丢包,但可作为现象触发器辅助诊断:一、通过传输卡顿、重试、连接重置等异常反推网络问题;二、结合ping、ss、/proc/net/snmp、nc等工具交叉验证真实丢包;三、排除权限、ssh配置、超时等非网络因素干扰。

linux 中怎么使用 rsync 排查数据传输丢包故障

Rsync 本身不是网络丢包排查工具,它不捕获、不统计、也不暴露底层网络丢包。它是一个文件同步工具,运行在应用层(基于 SSH 或 rsync daemon),依赖下层 TCP/IP 栈传输数据。所以严格来说:你不能用 rsync “排查丢包”,但你可以用它作为现象触发器和辅助验证手段,结合其他系统级工具定位丢包是否影响到实际业务传输。

下面分三类说明如何合理利用 rsync 辅助诊断:

一、用 rsync 行为异常反推网络传输问题

当 rsync 出现以下典型表现时,可能暗示链路存在丢包或不稳定:

  • 传输中途卡住几秒后重传(rsync: connection unexpectedly closed、error in rsync protocol data stream)
  • 反复重试相同 chunk(尤其在 -P 显示进度时出现“retrying”或进度条反复回退)
  • rsync: read error: Connection reset by peer 或 Broken pipe 频发
  • 启用 --partial --progress 后,大文件传输总在固定偏移处失败(如每次都在 128MB 附近断开)

这些不是 rsync 的 bug,而是 TCP 层因丢包/乱序/超时触发重传或连接终止后的外在表现。

二、配合底层工具做交叉验证

仅看 rsync 报错没用,关键要快速确认是「真丢包」还是「假故障」:

Obsidian (Linux)
Obsidian (Linux)

操作 Obsidian 库(纯 Markdown 笔记),并通过 notesmd-cli 实现自动化。

下载
  • ✅ 先确认基础连通性与端口可达:

    ping -c 3 target_ip  
    nc -zv target_ip 22  # 确保 SSH 端口通(rsync over SSH 默认走 22)
  • ✅ 检查传输过程中是否有 TCP 重传激增(真实丢包证据):
    在 rsync 运行时,另起终端执行:

    ss -i | grep :22  # 查看当前 SSH 连接的 retrans、rto、rtt 值  
    # 或更直接:  
    cat /proc/net/snmp | grep -A1 Tcp | tail -1 | awk '{print $12}'  # 查看 TcpRetransSegs 总数是否突增
  • ✅ 对比纯 TCP 传输行为(排除 rsync 自身逻辑干扰):
    用 dd if=/dev/zero bs=1M count=100 | nc target_ip 9999 模拟大流量发送,服务端 nc -l 9999 > /dev/null,观察是否同样中断或速率骤降。若 nc 也失败,基本锁定网络层问题。

三、规避 rsync 误判:区分丢包与配置/权限问题

很多“像丢包”的失败其实与网络无关:

  • 目标目录无写权限 → rsync 报 Permission denied (13),不是丢包
  • SSH 密钥过期或 agent 未加载 → No authentication methods available,连接根本建不起来
  • rsync 服务端未运行(daemon 模式)且未走 SSH → 直接 Connection refused
  • 使用 -e "ssh -o ConnectTimeout=5" 却遇高延迟链路 → 超时被误认为丢包

建议始终加 -v --stats 运行一次,看最后输出的 sent / received 字节数、bytes/sec 和 total size 是否匹配,再判断是传输中断还是校验失败。

不复杂但容易忽略。

相关文章

PHP速学视频免费教程(入门到精通)
PHP速学视频免费教程(入门到精通)

PHP怎么学习?PHP怎么入门?PHP在哪学?PHP怎么学才快?不用担心,这里为大家提供了PHP速学教程(入门到精通),有需要的小伙伴保存下载就能学习啦!

下载

相关标签:

linux

本站声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn

相关专题

更多
磁盘配额是什么
磁盘配额是什么

磁盘配额是计算机中指定磁盘的储存限制,就是管理员可以为用户所能使用的磁盘空间进行配额限制,每一用户只能使用最大配额范围内的磁盘空间。php中文网为大家提供各种磁盘配额相关的内容,教程,供大家免费下载安装。

2023.06.21

4150

4

如何安装LINUX
如何安装LINUX

本站专题提供如何安装LINUX的相关教程文章,还有相关的下载、课程,大家可以免费体验。

2023.06.29

3513

10

linux find
linux find

find是linux命令,它将档案系统内符合 expression 的档案列出来。可以指要档案的名称、类别、时间、大小、权限等不同资讯的组合,只有完全相符的才会被列出来。find根据下列规则判断 path 和 expression,在命令列上第一个 - ( ) , ! 之前的部分为 path,之后的是 expression。还有指DOS 命令 find,Excel 函数 find等。本站专题提供linux find相关教程文章,还有相关

2023.06.30

2733

5

linux修改文件名
linux修改文件名

本专题为大家提供linux修改文件名相关的文章,这些文章可以帮助用户快速轻松地完成文件名的修改工作,大家可以免费体验。

2023.07.05

6670

7

linux系统安装教程
linux系统安装教程

linux系统是一种可以免费使用,自由传播,多用户、多任务、多线程、多CPU的操作系统。本专题提供linux系统安装教程相关的文章,大家可以免费体验。

2023.07.06

6322

7

linux查看文件夹大小
linux查看文件夹大小

Linux是一种自由和开放源码的类Unix操作系统,存在着许多不同的Linux版本,但它们都使用了Linux内核。Linux可安装在各种计算机硬件设备中,比如手机、平板电脑、路由器、视频游戏控制台、台式计算机、大型机和超级计算机。linux怎么查看文件夹大小呢?php中文网给大家带来了相关的教程以及文章,欢迎大家前来学习阅读。

2023.07.20

3653

8

linux查看ip命令
linux查看ip命令

本专题为大家提供linux查看ip命令相关文章内容,感兴趣的朋友可以免费下载体验试试。

2023.07.20

3145

4

linux查看cpu使用率
linux查看cpu使用率

在linux的系统维护中,可能需要经常查看cpu使用率,分析系统整体的运行情况。本专题为大家带来了linux查看cpu使用率的相关文章,感兴趣的朋友千万不要错过了。

2023.07.25

3379

6

linux查找文件命令
linux查找文件命令

Linux是一种自由和开放源码的类Unix操作系统,存在着许多不同的Linux版本,但它们都使用了Linux内核。Linux可安装在各种计算机硬件设备中,比如手机、平板电脑、路由器、视频游戏控制台、台式计算机、大型机和超级计算机。php中文网给大家带来了相关的教程以及文章,欢迎大家前来学习阅读。

2023.07.31

297

3

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
Python uv官方安装与入门文档
Python uv官方安装与入门文档

共0课时 | 0人学习

Buffalo框架快速入门指南
Buffalo框架快速入门指南

共0课时 | 0人学习

Valgrind支持平台说明
Valgrind支持平台说明

共0课时 | 0人学习