星辉互联

您的当前位置:网站首页 » 帮助中心» 建站帮助

ping 丢包或不通时本地检测方法

来源:星辉互联类型:帮助文件 更新:2016-12-23 点击:4214

当客户端访问目标服务器出现 ping 丢包或 ping 不通时,可以通过 tracert 或 mtr 等工具进行链路测试来判断问题来源。本文先介绍了进行链路测试的相关工具,然后对测试结果分析及测试步骤进行了说明。


traceroute 命令行工具

traceroute 是几乎所有 Linux 发行版本预装的网络测试工具,用于跟踪 Internet 协议(IP)数据包传送到目标地址时经过的路径。

traceroute 先发送具有小的最大存活时间值(Max_TTL)的 UDP 探测数据包,然后侦听从网关开始的整个链路上的 ICMP TIME_EXCEEDED 响应。探测从TTL=1 开始,TTL 值逐步增加,直至接收到ICMP PORT_UNREACHABLE 消息。ICMP PORT_UNREACHABLE 消息用于标识目标主机已经被定位,或命令已经达到允许跟踪的最大 TTL 值。

traceroute 默认发送 UDP 数据包进行链路探测。可以通过 -I 参数来指定发送 ICMP 数据包用于探测。

用法说明:

traceroute [-I] [ -m Max_ttl ] [ -n ] [ -p Port ] [ -q Nqueries ] [ -r ] [ -s SRC_Addr ] [  -t TypeOfService ] [ -f flow ] [ -v ] [  -w WaitTime ] Host [ PacketSize ]

示例输出:

[root@centos ~]# traceroute -I 223.5.5.5 traceroute to 223.5.5.5 (223.5.5.5), 30 hops max, 60 byte packets  1  * * *  2  192.168.17.20 (192.168.17.20)  3.965 ms  4.252 ms  4.531 ms  3  111.1.20.41 (111.1.20.41)  6.109 ms  6.574 ms  6.996 ms  4  111.1.34.197 (111.1.34.197)  2.407 ms  2.451 ms  2.533 ms  5  211.138.114.25 (211.138.114.25)  1.321 ms  1.285 ms  1.304 ms  6  211.138.114.70 (211.138.114.70)  2.417 ms 211.138.114.66 (211.138.114.66)  1.857 ms 211.138.114.70 (211.138.114.70)  2.002 ms  7  42.120.244.194 (42.120.244.194)  2.570 ms  2.536 ms 42.120.244.186 (42.120.244.186)  1.585 ms  8  42.120.244.246 (42.120.244.246)  2.706 ms  2.666 ms  2.437 ms  9  * * * 10  public1.alidns.com (223.5.5.5)  2.817 ms  2.676 ms  2.401 ms

常见可选参数说明:

  • -d 使用Socket层级的排错功能。

  • -f 设置第一个检测数据包的存活数值TTL的大小。

  • -F 设置不要分段标识。

  • -g 设置来源路由网关,最多可设置8个。

  • -i 使用指定的网卡送出数据包。用于主机有多个网卡时。

  • -I 使用ICMP数据包替代 UDP 数据包进行探测。

  • -m 设置检测数据包的最大存活数值TTL的大小。

  • -n 直接使用IP地址而非主机名称(禁用 DNS 反查)。

  • -p 设置UDP传输协议的通信端口。

  • -r 忽略普通的Routing Table,直接将数据包送到远端主机上。

  • -s 设置本地主机送出数据包的IP地址。

  • -t 设置检测数据包的TOS数值。

  • -v 详细显示指令的执行过程。

  • -w 设置等待远端主机回包时间。

  • -x 开启或关闭数据包的正确性检验。


TRACERT (Trace Route) 是 Windows 自带的网络诊断命令行实用程序,用于跟踪 Internet 协议 (IP) 数据包传送到目标地址时经过的路径。 

TRACERT 通过向目标地址发送 ICMP 数据包来确定到目标地址的路由。在这些数据包中,TRACERT 使用了不同的 IP“生存期”(TTL) 值。由于要求沿途的路由器在转发数据包前至少必须将 TTL 减少 1,因此 TTL 实际上相当于一个跃点计数器 (hop counter)。当某个数据包的 TTL 达到零 (0) 时,相应节点就会向源计算机发送一个 ICMP“超时”的消息。 

TRACERT 第一次发送 TTL 为 1 的数据包,并在每次后续传输时将 TTL 增加 1,直到目标地址响应或达到 TTL 的最大值。中间路由器发送回来的 ICMP“超时”消息中包含了相应节点的信息。

用法说明:

tracert [-d] [-h maximum_hops] [-j host-list] [-w timeout] [-R] [-S srcaddr] [-4] [-6] target_name

示例输出:

C:\> tracert -d 223.5.5.5 通过最多 30 个跃点跟踪到 223.5.5.5 的路由   1     *        *        *     请求超时。   2     9 ms     3 ms    12 ms  192.168.17.20   3     4 ms     9 ms     2 ms  111.1.20.41   4     9 ms     2 ms     1 ms  111.1.34.197   5    11 ms     *        *     211.140.0.57   6     3 ms     2 ms     2 ms  211.138.114.62   7     2 ms     2 ms     1 ms  42.120.244.190   8    32 ms     4 ms     3 ms  42.120.244.238   9     *        *        *     请求超时。  10     3 ms     2 ms     2 ms  223.5.5.5 跟踪完成。

常见可选参数说明:

  • -d:指定不将地址解析为主机名(禁用 DNS 反解)。

  • -h:maximum_hops,指定搜索目标地址时的最大跃点数。

  • -j: host-list,指定沿主机列表的松散源路由。

  • -w:timeout,由每个回复的 timeout 指定的等待毫秒数。

  • -R:跟踪往返行程路径(仅适用于 IPv6)。

  • -S:srcaddr,要使用的源地址(仅适用于 IPv6)。

  • -4:强制使用 IPv4。

  • -6:强制使用 IPv6。

  • target_host:目标主机域名或 IP 地址。


WinMTR 是 mtr 工具在 Windows 环境下的图形化实现,但进行了功能简化,只支持 mtr部分参数的调整设置。WinMTR 默认发送ICMP 数据包进行探测,无法切换。

WinMTR 可以从其官方网站下载获取。

和 mtr 一样,相比 tracert,WinMTR 能避免节点波动对测试结果的影响,所以测试结果更正确。所以,在 WinMTR 可用的情况下,建议优先使用WinMTR 进行链路测试。

用法说明:

WinMTR 无需安装,直接解压运行即可。操作方法非常简单,说明如下:

  1. 如下图所示,运行程序后,在 Host 字段输入目标服务器域名或 IP(注意前面不要包含空格)。

     

  2. 点击 Start 开始测试(开始测试后,相应按钮变成了 Stop)。

  3. 运行一段时间后,点击 Stop 停止测试。

  4. 其它选项说明:

    • Copy Text to clipboard:将测试结果以文本格式复制到粘贴板。

    • Copy HTML to clipboard:将测试结果以 HTML 格式复制到粘贴板。

    • Export TEXT:将测试结果以文本格式导出到指定文件。

    • Export HTML:将测试结果以 HTML 格式导出到指定文件。

    • Options:可选参数,包括:

    • Interval(sec):每次探测的间隔(过期)时间。默认为 1 秒。

    • Ping size(bytes): ping 探测所使用的数据包大小,默认为 64 字节。、

    • Max hosts in LRU list: LRU 列表支持的最大主机数,默认值为 128。

    • Resolve names:通过反查 IP 以域名显示相关节点。

返回结果说明:

默认配置下,返回结果中各数据列的说明:

  • 第一列(Hostname):节点 IP 或域名。

  • 第二列(Nr):节点编号。

  • 第三列(Loss%):节点丢包率。

  • 第四列(Sent):已发送的数据包数量。

  • 第五列(Recv):已成功接收的数据包数量。

  • 第六、七、八、九列(Best 、Avg、Worst、Last):分别是到相应节点延迟的最小值、平均值、最大值和最后一次值。

  • 第八列(StDev):标准偏差。越大说明相应节点越不稳定。




上一篇文章:没有了!下一篇文章:微信网站有什么作用?

我们很乐意帮助您!请联系在线客服或致电我们。7×24小时客服热线: 0833-2438125