目的
在Linux中安装和使用traceroute。
发行版
本指南支持Ubuntu,Debian,Fedora,OpenSUSE和Arch Linux。
要求
具有网络连接的有效Linux安装。
困难
简单
约定
介绍
Traceroute查找网络数据包在计算机和目标之间所经过的路径。该目标可以是网站,服务器或网络上的其他计算机。如果可以向其发送网络数据包,则可以使用traceroute测试路径。这是了解数据如何通过网络流动的有用工具。
Traceroute会做什么?
Traceroute将数据包发送到目标计算机,并记录这些数据包执行过程中的所有步骤。它打印出这些数据包在进入终端窗口时所经过的服务器的IP地址和域名。
您将能够查看您的数据包到达目的地所花费的时间,并能够根据途中的跳数来了解为什么某些网站的加载时间比其他网站更长。
Traceroute也可以用于映射本地网络。如果要进行安全审核,则可以从目标网络中使用traceroute来了解网络的配置方式以及设备上的设备。
它是如何工作的?
Traceroute通过利用网络数据包具有的“生存时间”属性来工作。所有数据包都有一定数量的反弹,在自动丢弃之前,它们可以在计算机之间进行反弹。此功能可防止丢失的数据包无休止地在网络中传递,从而减慢合法流量。
当一个数据包从网络设备移动到另一个设备时,该设备将检查该数据包的生存时间。如果跳出的跳动次数大于1,则会将跳动次数减少1,并将其传递给下一个设备。如果该数字为1,则会丢弃该数据包,因为将生存时间减少一会使其变为零,从而杀死该数据包。如果设备丢弃了数据包,它将发送消息给发件人,告知其由于生存时间已到期而丢弃了数据包。
Traceroute使用这些到期消息来测试计算机与目标之间的路由。它将开始发送一个生存时间为1的数据包。第一个设备将丢弃它,并使用自己的IP地址发送回一条消息。然后,traceroute将发送另一个具有两个生存时间的数据包。第二台设备将发回到期消息。 Traceroute将继续该过程,直到达到目标为止。
安装Traceroute
Traceroute是基本的Linux系统实用程序。几乎所有发行版本库中都可以使用它。使用软件包管理器将其安装在系统上。
Ubuntu /Debian的
$ sudo apt install traceroute
软呢帽
# dnf install traceroute
OpenSUSE
# zypper in traceroute
Arch Linux
# pacman -S traceroute
基本用法
Traceroute很简单。跑过traceroute
命令后跟目的地。该目的地可以是IP地址或域名。
$ traceroute linuxconfig.org
你会看到的traceroute
在终端窗口中实时工作。看到一个数据包实际产生了多少跳总是很有趣的。有时,您只需要几个便能到达目的地。在其他时间,似乎有一个数据包跨过一半的Internet到达那里。
有时候,你会看到traceroute
停止在终端中输出任何实际信息,并开始显示星号字符,如上图所示。一些网络被配置为阻止traceroute。如果您的数据包在其旅途中的任何时候都经过这样的网络,则traceroute将不起作用。
也可以尝试使用IP地址。您会注意到这是完全相同的过程。
也可以在您自己的网络上尝试此操作。您将能够查看是否有任何需要改进的缓慢区域或瓶颈。
有用的标志
你真的不需要任何使用traceroute的标志,但根据您的情况,有一些标志可以提供帮助。首先,您可以轻松地在IP4和IP6之间切换-4
和-6
标志。
$ traceroute -4 linuxconfig.org
默认情况下,traceroute使用icmp(ping)数据包。如果您想测试TCP连接以收集与Web服务器更相关的数据,则可以使用-T
旗。
$ traceroute -T linuxconfig.org
如果您想测试特定的端口,-p
标志可以帮助您。
$ traceroute -p 53 192.168.1.1
您还可以手动控制traceroute的开始和结束时间。您可以使用-f
设置第一次生活的标志以及-m
获得最长的生存时间。下面的示例将从第三跳开始,到第十跳结束。
$ traceroute -f 3 -m 10 linuxconfig.org
总结思想
Traceroute是用于研究和了解网络流量的出色multi-purpose工具。它可以帮助您清晰地了解数据包在本地网络和整个Internet上所占的路径。