网络丢包,网络延迟?这款神器帮你搞定所有!

嘿,说到 mtr 工具,它真的很老了。
我在论坛混了很多年,这个东西几乎成了我诊断网络问题的得力助手。

公平地说,mtr的全称是MyTraceroute。
它就像 ping 和 Traceroute 的组合。
可以实时显示数据包的传输路径,以及各节点的时延和丢包率。
这个功能实在是太棒了。

我记得有一次,朋友家的网络突然崩溃了。
我用mtr测试了一下,发现中间一个节点有问题,丢包率高达3 0%。
如果没有地铁,我真的不知道从哪里开始。

这个东西的安装也很简单。
Windows 用户可以下载 BestTrace 或 WinMTR。
对于 Linux 用户,只需在 Debian/Ubuntu 系统上使用 sudo apt install mtr 即可。
对于 RedHat/CentOS 系统,您还可以使用 sudo yum install mtr。
苹果用户可以在AppStore中搜索BestNetTools。
Android 用户应该使用 TracePing。

它也很容易使用。
例如,如果您想测试QQ服务器,只需输入mtr qq.com即可。
然后你看,输出设置中,IP地址是数据包经过的节点,Loss%是丢包率,Snt是发送的数据包数量,Last/Avg/Best/Wrst分别是最后一个数据包延迟、平均延迟、最小延迟和最大延迟,StDev是方差,体现稳定性。

常用参数,例如要生成静态报告,则添加-r参数,如mtr -r qq.com。
如果要自定义发送数据包的数量,请添加-c参数,例如mtr -c1 00 qq.com。
如果要指定数据包大小,则添加-s参数,如mtr -s1 00 qq.com。
如果要禁用主机名解析,请添加-n参数,例如mtr -n qq.com。

分析结果,丢包问题,如果某个节点丢包%增加,可能是该节点限制了ICMP,或者是网络故障或拥塞。
此时,如果您对前几跳有任何问题,请联系您当地的 ISP。
如果最后一跳有问题,请联系服务提供商。
网络延迟问题。
如果某个节点的Avg/Wrst明显增大,可能是由于物理距离过长、路由器配置错误或线路拥塞等原因。
此时您可以检查 StDev 值。
如果方差较大,则应注意稳定性,优先选择最近的节点进行连接。

临时路由问题,大部分会在2 4 小时内自动恢复,您可以联系您的ISP加快处理。
由于物理距离或高峰时间,可以优化网络架构,例如使用 CDN 或附近的服务器。
提供 MTR 报告和时间戳还可以帮助 ISP 定位中断情况。

总之,mtr是一个使用起来非常方便的工具。
它对于解决网络问题非常有用。
在我们这个行业,我们需要知道如何使用各种工具来提高效率。

Linux如何检测网络丢包情况

哎呀,我们来谈谈如何在Linux系统上检测网络丢包。
这个问题需要一步步排查,首先检查本地网络是否有问题,然后检查中间链路是否有问题,最后是目标主机是否有问题。
现在让我解释一下如何做。

首先,您需要使用 ping 检查基本丢包率。
其背后的想法是发送 ICMP 请求数据包,然后查看响应。
任务很简单。
只需在命令行中输入 ping-c1 0www.example.com 即可。
这里-c1 0表示发送1 0个数据包后停止。
可以看到输出中有一个Packet Loss字段,即丢包率。
例如发送1 0个报文,收到9 个报文,则丢包率为1 0%。
如果要长时间观察,就不要加-c参数,让它一直运行,然后按Ctrl+C中断,看长期趋势。

结果分析发现丢包率较高导致网络不稳定,但ping无法判断具体问题。
它可以是本地、中间链路或目标主机。

接下来我们使用mtr来查找丢包节点。
它结合了 ping 和 Traceroute 的功能,可以显示每跳的丢包率和延迟。
这特别适合发现中间环节的问题。
您需要先安装它。
例如,在 Debian/Ubuntu 上,您可以输入 sudo apt install mtr。
在 CentOS/RHEL 上,sudo yum install mtr。
然后运行命令 mtr-c2 0www.example.com。
这里-c2 0表示检测目标2 0次。
检查输出中的 Loss% 列。
如果某个节点的丢包率持续较高(例如超过1 0%),则该节点可能存在问题。

但是,某些节点可能禁用了 ICMP,并且丢包率较高,这可能不会真正影响您的业务。
这个时候就必须使用另外的工具比如tcping来检查。

然后您需要使用 tcping 来检测 TCP 端口上的连接。
某些服务(例如 Web 和数据库)使用 TCP 协议。
此时,您应该检查特定端口的连接,因为您的防火墙可能会阻止 ICMP 数据包。
tcping安装方法与mtr类似。
然后输入 tcpingwww.example.com8 0。
这意味着它检测目标主机上的端口 8 0 (HTTP) 连接。
通过查看返回的延迟数和失败数,可以判断是否存在丢包或连接超时的情况。

最后,您应该检查本地网络接口上的数据包丢失情况。
由于本地网卡、驱动程序或系统负载过重,可能会发生数据包丢失。
您可以使用 ifconfig 或 ip -slink 检查网卡统计信息,注意 RX(接收)和 TX(发送)部分中的 drop 和 error 字段。
如果删除的值继续增加,你的网卡缓冲区可能已满,驱动程序问题,或者网络拥塞。
您还可以使用 ethtool 检查您的网卡协商速度和双工模式。

一般情况下,我们首先使用ping检查丢包率,然后使用mtr查找丢包率,然后使用tcping检查端口连通性,最后检查本地网络。
重要的是要防止误判,并通过调查各个部分逐步缩小问题的范围。
这是关键。
不同的工具适合不同的场景,应该结合使用。
有些问题可能会间歇性地发生,因此持续监控也很重要。
这些方法可以帮助您高效查找Linux系统网络丢包的原因。

如何检测Linux网络丢包率 ping统计信息分析技巧

重点关注 ping 的丢包率、RTT 和 mdev。
如果丢包超过1 %,请注意。
当与 mtr 或 Traceroute 结合使用进行故障排除时,防火墙和 ICMP 优先级可能会导致误算,因此请避免依赖单一工具。