登录
首页 >  文章 >  linux

Linux如何检测网络延迟?ping命令测丢包率

时间:2026-03-15 15:19:30 218浏览 收藏

在Linux系统中,精准评估网络连接质量是运维和故障排查的关键,本文系统介绍了ping、fping和mtr三大核心命令的实战用法:从基础ping检测单目标延迟与丢包率,到fping批量扫描多主机实现高效可达性筛查,再到mtr深入路径级分析,定位路由中具体异常跳点——覆盖日常监控、瞬时波动记录、自动化脚本集成及深度链路诊断全场景,助你快速揪出网络卡顿、丢包背后的真正元凶。

linux如何检测网络延迟_Linux使用ping命令测试丢包率【网络】

如果您需要评估Linux系统与目标主机之间的网络连接质量,可以通过内置的ping命令来检测网络延迟并统计丢包率。以下是执行该任务的具体操作方法:

一、使用基础ping命令检测延迟与丢包

ping命令通过向目标主机发送ICMP Echo Request报文,并等待其返回Echo Reply,从而计算往返时间(RTT)并统计未响应的请求比例。默认情况下,ping会持续发送数据包,需手动终止;指定次数后自动结束可更便于结果分析。

1、打开终端,输入以下命令以向目标主机(例如www.baidu.com)发送4个数据包:
ping -c 4 www.baidu.com

2、观察输出中的"time="字段,该值即为单次请求的往返延迟(单位毫秒)。

3、在输出末尾查找类似"4 packets transmitted, 4 received, 0% packet loss"的统计行,其中百分比即为丢包率。

二、使用ping命令持续监控并记录高延迟事件

当需要长时间观测网络波动时,可结合时间戳与重定向功能将结果保存至文件,便于后续排查瞬时延迟突增或周期性丢包现象。

1、执行带时间戳的ping命令,每秒发送一次包,共发送60次:
ping -c 60 -i 1 www.baidu.com | while read line; do echo "$(date '+%Y-%m-%d %H:%M:%S') - $line"; done > ping_log.txt

2、检查生成的ping_log.txt文件,定位包含"time="的行,筛选出延迟超过200ms的记录。

3、统计含"Request timeout"或"no answer"的行数,除以总发送包数,得到实际丢包率。

三、使用fping批量测试多个主机的延迟与可达性

fping是专为脚本化和批量探测设计的ping替代工具,支持并发探测多个目标,并直接输出简洁的延迟与丢包状态,适合网络运维中快速筛查问题节点。

1、若系统未安装fping,先执行安装命令:
sudo apt install fping(Debian/Ubuntu)或 sudo yum install fping(CentOS/RHEL)

2、创建包含目标IP或域名的文本文件hostlist.txt,每行一个地址。

3、运行批量探测命令:
fping -f hostlist.txt -C -q | awk '{print $1, $NF}' > fping_result.txt

4、查看fping_result.txt,每行末尾数值为对应主机最后一次响应的延迟(毫秒),-1表示完全不可达,即100%丢包。

四、使用mtr命令融合traceroute与ping功能进行路径级延迟分析

mtr(My TraceRoute)将路由跟踪与持续ping结合,在单个界面中实时显示每一跳的延迟、丢包率及抖动,有助于识别网络路径中具体哪一节点引发高延迟或丢包。

1、安装mtr工具:
sudo apt install mtr-tiny(Debian/Ubuntu)或 sudo yum install mtr(CentOS/RHEL)

2、启动交互式mtr探测:
mtr --report www.baidu.com

3、等待约10秒后按Ctrl+C终止,mtr将输出汇总报告,重点关注"Loss%"列中大于5%的中间节点。

4、对Loss%异常的跳数,单独使用ping -c 20 验证是否为稳定丢包,排除瞬时拥塞干扰。

到这里,我们也就讲完了《Linux如何检测网络延迟?ping命令测丢包率》的内容了。个人认为,基础知识的学习和巩固,是为了更好的将其运用到项目中,欢迎关注golang学习网公众号,带你了解更多关于的知识点!

资料下载
相关阅读
更多>
最新阅读
更多>
课程推荐
更多>