问题描述
本地访问云服务器,或者在云服务器上访问其他网络资源时,发现网络卡顿。使用 ping
命令,发现网络存在丢包或时延较高的情况。
问题分析
丢包或时延较高可能是骨干链路拥塞、链路节点故障、服务器负载高、系统设置问题等原因引起。在排除云服务器自身原因后,您可以使用 MTR 进行进一步诊断。 MTR 是一款网络诊断工具,其工具诊断出的报告可以帮助您确认网络问题的症结所在。
解决方案
本文档以 Linux 和 Windows 云服务器为例,介绍如何使用 MTR 以及如何对 MTR 的报告结果进行分析。
说明
如果本地或云服务器禁用 Ping,则 MTR 将无结果。
请根据运行 MTR 的主机操作系统的不同,查看 MTR 的介绍和使用方法。
MTR:Linux 平台上诊断网络状态的工具,继承了 Ping、traceroute、nslookup 的功能,默认使用 ICMP 包测试两个节点之间的网络连接情况。
安装 MTR
目前现有的 Linux 发行版本都预装了 MTR,如果您的 Linux 云服务器没有安装 MTR,则可以执行以下命令进行安装:
CentOS 操作系统:
yum install mtr
Ubuntu 操作系统:
sudo apt-get install mtr
MTR 相关参数说明
-h/–help:显示帮助菜单。
-v/–version:显示 MTR 版本信息。
-r/–report:结果以报告形式输出。
-p/–split:与 –report 相对,分别列出每次跟踪的结果。
-c/–report-cycles:设置每秒发送的数据包数量,默认是10。
-s/–psize:设置数据包的大小。
-n/–no-dns:不对 IP 地址做域名解析。
-a/–address:用户设置发送数据包的 IP 地址,主要用户单一主机多个 IP 地址的场景。
-4:IPv4
-6:IPv6
使用示例
以本机到 IP 为119.28.98.39的服务器为例。 执行以下命令,以报告形式输出 MTR 的诊断报告。
mtr 119.28.98.39 --report
返回类似如下信息:

主要输出的信息如下:
HOST:节点的 IP 地址或域名。
Loss%:丢包率。
Snt:每秒发送的数据包的数量。
Last:最近一次的响应时间。
Avg:平均响应时间。
Best:最短的响应时间。
Wrst:最长的响应时间。
StDev:标准偏差,偏差值越高,说明各个数据包在该节点的响应时间相差越大。
报告结果分析及处理
说明
由于网络状况的非对称性,遇到本地到服务器的网络问题时,建议您收集双向的 MTR 数据(从本地到云服务器以及云服务器到本地)。
根据报告结果,查看目的服务器 IP 是否丢包。
如果目的地没有丢包,则表示网络正常。
如果目的地发生丢包,则执行 步骤2。
往上查看报告结果,定位第一次丢包的节点。
如果丢包发生在目的服务器,则可能是目的服务器的网络配置不当引起,请检查目的服务器的防火墙配置。
如果丢包开始于前三跳,一般为本地运营商网络问题,建议检查访问其他网址是否存在相同情况。如果存在相同情况,请反馈给您的运营商进行处理。如果有频繁丢包的情况,确实为网络不稳定的场景,则请 提交工单 进行咨询,并附上测试截图,以便工程师进行定位