如何使用Traceroute和MTR诊断网络问题

介绍

管理服务器的一个重要部分是监控网络连接。

有几个工具,使用简单,但有价值的知道。 在本指南中,我们将讨论如何使用一个工具,称为traceroute诊断,其中网络问题可能会发生。

我们也将看到一个工具,叫做mtr结合了很多ping和traceroute的功能整合到一个界面。

如何使用Traceroute

Traceroute是一个显示远程服务器路径的简单工具。 这可以是从您尝试访问的网站到本地网络上的打印机的任何内容。

traceroute程序默认安装在每个Linux发行版上,因此您不需要安装它。

为了称呼它,我们只需要提供一个我们想探索的网站或IP地址:

traceroute google.com
traceroute to google.com (173.194.38.137), 30 hops max, 60 byte packets
 1  192.241.160.253 (192.241.160.253)  0.564 ms  0.539 ms  0.525 ms
 2  192.241.164.241 (192.241.164.241)  0.487 ms  0.435 ms  0.461 ms
 3  xe-3-0-6.ar2.nyc3.us.nlayer.net (69.31.95.133)  1.801 ms  1.802 ms  1.762 ms
 4  144.223.28.73 (144.223.28.73)  0.583 ms  0.562 ms  0.550 ms
 5  144.232.1.21 (144.232.1.21)  1.044 ms  1.048 ms  1.036 ms
 6  74.125.49.212 (74.125.49.212)  0.494 ms  0.688 ms  0.643 ms
 7  209.85.248.180 (209.85.248.180)  0.650 ms 209.85.248.178 (209.85.248.178)  0.621 ms  0.625 ms
 8  72.14.236.208 (72.14.236.208)  0.618 ms 72.14.236.206 (72.14.236.206)  0.898 ms 72.14.236.208 (72.14.236.208)  0.872 ms
 9  72.14.239.93 (72.14.239.93)  7.478 ms  7.989 ms  7.466 ms
10  72.14.232.73 (72.14.232.73)  20.002 ms  19.969 ms  19.975 ms
11  209.85.248.228 (209.85.248.228)  30.490 ms 72.14.238.106 (72.14.238.106)  34.463 ms 209.85.248.228 (209.85.248.228)  30.707 ms
12  216.239.46.54 (216.239.46.54)  42.502 ms  42.507 ms  42.487 ms
13  216.239.46.159 (216.239.46.159)  76.578 ms  74.585 ms  74.617 ms
14  209.85.250.126 (209.85.250.126)  80.625 ms  80.584 ms  78.514 ms
15  72.14.238.131 (72.14.238.131)  80.287 ms  80.560 ms  78.842 ms
16  209.85.250.228 (209.85.250.228)  171.997 ms  173.668 ms  170.068 ms
17  66.249.94.93 (66.249.94.93)  238.133 ms  235.851 ms  235.479 ms
18  72.14.233.79 (72.14.233.79)  233.639 ms  239.147 ms  233.707 ms
19  sin04s01-in-f9.1e100.net (173.194.38.137)  236.241 ms  235.608 ms  236.843 ms

如何读取Traceroute的输出

第一行告诉我们traceroute正在运行的条件:

traceroute to google.com (173.194.38.137), 30 hops max, 60 byte packets

它给出指定的主机,DNS为该域返回的IP地址,要检查的最大跳数以及要使用的数据包大小。

的最大跳数可以与被调节-m标志。 如果您尝试路由到的主机超过30跳,您可能需要在此指定一个较大的值。 可以设置的最大值为255。

traceroute -m 255 obiwan.scrye.net

您可以通过在主机名后面提供整数来调整发送到每个跃点的数据包的大小:

traceroute google.com 70
traceroute to google.com (173.194.38.128), 30 hops max, 70 byte packets
 1  192.241.160.254 (192.241.160.254)  0.364 ms  0.330 ms  0.319 ms
 2  192.241.164.237 (192.241.164.237)  0.284 ms  0.343 ms  0.321 ms
 

在第一行之后,每个后续行代表一个“跳”或中间主机,您的流量必须通过该主机才能到达由您指定的主机表示的计算机。

每行具有以下格式:

hop_number   host_name   (IP_address)  packet_round_trip_times

以下是您可能会看到的一个跃点的示例:

3  nyk-b6-link.telia.net (62.115.35.101)  0.311 ms  0.302 ms  0.293 ms

这里是每个字段的含义:

  • hop_number:的分离度数的顺序计数的主机是从您的计算机。 来自具有较高号码的主机的流量必须经过更多的计算机才能路由。

  • HOST_NAME:此字段包含对主机的IP地址反向DNS查询的结果,如果有的话。 如果没有从反向DNS查询返回信息,则给出IP地址本身。

  • IP地址 :这个字段包含此网络跃点的IP地址。

  • trip_times:该行的剩余部分给出了往返时间为包到主机,然后再返回。 默认情况下,三个数据包发送到每个主机,每个尝试都附加到行的结尾。

    • 如果你想改变的是针对每个主机测试数据包的数量,您可以指定与一些-q选项,如下所示:

      traceroute -q1 google.com
      

如果您想放弃了反向DNS查找,加快跟踪时,可以通过-n标志:

traceroute -n google.com
traceroute to google.com (74.125.235.7), 30 hops max, 60 byte packets
 1  192.241.160.253  0.626 ms  0.598 ms  0.588 ms
 2  192.241.164.241  2.821 ms  2.743 ms  2.819 ms
 3  69.31.95.133  1.470 ms  1.473 ms  1.525 ms

如果您的traceroute溶解到一些星号(*),则到主机的路由有问题。

    15  209.85.248.220 (209.85.248.220)  121.809 ms 72.14.239.12 (72.14.239.12)  76.941 ms 209.85.248.220 (209.85.248.220)  78.946 ms
16  72.14.239.247 (72.14.239.247)  101.001 ms  92.478 ms  92.448 ms
17  * * 209.85.250.124 (209.85.250.124)  175.083 ms
18  * * *
19  * * *

路由问题是什么意思?

如果您的跟踪路由尝试停止在特定的跳点或节点,并且找不到到主机的路由,您有一个问题。

虽然路由无法返回的跳可能是网络问题的位置,但并不总是易于诊断。

由于每个ping表示往返分组的事实,以及分组经常在任一方向上使用不同路径的情况,其可以指示在完全不同的,可能更近的路由中的问题。

也可能是这种情况,问题是直接在你看到的最后一跳后的跳。 很难诊断问题的确切位置,除非可以从该特定跳跃中获取返回traceroute。 这通常不可能在您自己的网络之外。

如何使用MTR

动态替代的traceroute程序是mtr 结合ping和traceroute的功能,mtr允许您不断轮询远程服务器,并查看延迟和性能随时间的变化。

与traceroute不同,大多数系统上默认情况下不安装mtr。 您可以通过键入以下命令获取它。

Ubuntu / Debian:

sudo apt-get install mtr

CentOS / Fedora:

yum install mtr

拱:

pacman -S mtr

安装后,您可以通过键入以下命令来调用它:

mtr google.com
                       My traceroute  [v0.80]
traceroute (0.0.0.0)                        Tue Oct 22 20:39:42 2013
Resolver: Received error response 2. (server failure)er of fields   q
uit                         Packets               Pings
 Host                     Loss%   Snt   Last   Avg  Best  Wrst StDev
 1. 192.241.160.253        0.0%   371    0.4   0.6   0.1  14.3   1.0
 2. 192.241.164.241        0.0%   371    7.4   2.5   0.1  37.5   4.8
 3. xe-3-0-6.ar2.nyc3.us.  2.7%   371    3.6   2.6   1.1   5.5   1.1
 4. sl-gw50-nyc-.sprintli  0.0%   371    0.7   5.0   0.1  82.3  13.1

虽然输出可能看起来类似,但是与traceroute相比的大优点是输出不断更新。 这允许您累积趋势和平均值,还可以查看网络性能随时间的变化。

如果您运行traceroute,有可能发送到每个跳的数据包偶然发生旅行没有事故,即使在路由遭受间歇性包丢失的情况下。 mtr实用程序允许您通过在更宽的时间范围内收集数据来监视此情况。

它也可以与运行MTR --report选项,这将返回发送10个数据包,以每一跳的结果。

mtr --report google.com
HOST: traceroute                  Loss%   Snt   Last   Avg  Best  Wrst StDev
  1.|-- 192.241.160.254            0.0%    10    1.5   0.9   0.4   1.5   0.4
  2.|-- 192.241.164.237            0.0%    10    0.6   0.9   0.4   2.7   0.7
  3.|-- nyk-b6-link.telia.net      0.0%    10    0.5   0.5   0.2   0.7   0.2
  4.|-- nyk-bb2-link.telia.net     0.0%    10   67.5  18.5   0.8  87.3  31.8

当您不一定要实时测量,但是想要比traceroute提供的数据范围更大时,这可能很有用。

结论

使用traceroute和mtr,您可以了解到通往特定域或地址的哪些服务器会导致问题。 在对内部网络进行故障排除时以及在遇到网络问题时尝试提供信息以支持成员或ISP时,此功能非常有用。

作者:Justin Ellingwood
赞(52) 打赏
未经允许不得转载:优客志 » 系统运维
分享到:

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

微信扫一扫打赏