RELATEED CONSULTING
相关咨询
选择下列产品马上在线沟通
服务时间:9:00-21:00
你可能遇到了下面的问题
关闭右侧工具栏

技术支持

ping 丢包或不通时本地检测方法
  • 作者:星辉互联
  • 发表时间:2016-12-23
  • 阅读量: 1982
 

当客户端访问目标服务器出现 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 反解)。

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

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

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

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

  • -Ssrcaddr,要使用的源地址(仅适用于 IPv6)

  • -4:强制使用 IPv4

  • -6:强制使用 IPv6

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


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

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

 mtr 一样,相比 tracertWinMTR 能避免节点波动对测试结果的影响,所以测试结果更正确。所以,在 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:可选参数,包括:

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

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

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

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

返回结果说明:

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

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

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

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

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

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

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

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




下一篇文章:没有了!

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