Linux 中 Traceroute 命令的 16 个实用示例

您所在的位置:网站首页 追踪网站命令 Linux 中 Traceroute 命令的 16 个实用示例

Linux 中 Traceroute 命令的 16 个实用示例

2024-07-13 15:40| 来源: 网络整理| 查看: 265

Linux 中 Traceroute 命令的 16 个实用示例

互联网是一个巨大的网络系统,充满数据库、服务器、路由器和其他网络结构。当您输入网址并点击网络浏览器上的 Enter 按钮时,它会通过您的互联网连接路由到网络上的主机地址。在目的地中间,当您的数据包从计算机开始旅程并到达目的地服务器时,它会在网络内进行大量传输。许多 Linux、Windows 和 Mac 工具允许您跟踪互联网数据包的每一步。 Traceroute 命令是最常用的工具之一,您可以在 Linux 上使用它来跟踪每个步骤、实时状态、连接强度、延迟以及有关互联网数据包的更多信息。

Linux 上的 Ping 与 Traceroute 命令

毫无疑问,Ping 是最常用且最简单的网络命令,用于显示目标地址是否有效。 Ping 和traceroute 命令之间的区别是Ping 仅通过发送数据包并分析信号来检测服务器或地址是否已启动。

而traceroute命令可以进行更多的网络故障排除并确定到达目标地址的网络路径。 Traceroute 命令还可以预测加载网页的时间量、检测 Web 地址上的路由器、主机名、DNS 服务器名称等等。

当我们在网络系统上运行Ping命令时,该命令会自动向目的站点发送四个数据包;如果其中之一到达该站点,则该命令确定该站点可连接,并确定建立连接所需的秒数。

以下是 Linux 的 Ping 命令的命令格式:

ping ping

Traceroute 命令告诉我们有关目的地的更多信息以及到达该站点需要多少毫秒。与 Ping 命令不同,traceroute 命令告诉我们每个设备的 Ip 地址,并计算来自每个路由器的数据的往返时间,而不是测量唯一的最终目的地。它还计算路径上的总跳数。

以下是 Linux 下的 Traceroute 命令的命令格式:

traceroute Linux 上的 Traceroute 与 Mtr 和 Tracert 之间的区别

我相信您已经听说过用于跟踪网络模型中的数据的traceroute命令、mtr命令和tracert命令。在Linux和Mac中,我们可以使用traceroute命令,其中windows版本的traceroute命令是tracert命令。基本上,traceroute 和tracert 是相同的命令。

现在,我们将看到traceroute命令和mtr命令之间的区别。 MTR的完整形式是Matt的TraceRoute,它是traceroute命令的修改命令。在跟踪路由中,数据包在通过 IP 网络传输到特定主机时会被跟踪。

traceroute 命令示例:

$ traceroute 1.1.1.1 traceroute to 1.1.1.1 (1.1.1.1), 30 hops max, 60 byte packets 1  192.168.1.1 (192.168.1.1)  0.265 ms  0.248 ms  0.239 ms 2  * * * 3  X-X-X-X.X.X.pl (X.X.X.X)  21.871 ms  22.061 ms  25.072 ms (more data here) 10  one.one.one.one (1.1.1.1)  24.072 ms  22.439 ms  21.497 ms

MTR 是一个结合了traceroute 和ping 功能的单一网络诊断工具。 MTR 打印一些跟踪路由输出以及 Ping 结果。

MTR 命令示例:

$ mtr 1.1.1.1 -c 5 --report Start: 2019-08-09T15:13:28+0200 HOST: blackhole                   Loss%   Snt   Last   Avg  Best  Wrst StDev   1.|-- 192.168.1.1                0.0%     5    0.2   0.1   0.1   0.2   0.0   2.|-- X-X-X-X.X.X                0.0%     5    9.7   9.0   8.4   9.7   0.5   3.|-- X-X-X-X.X.X                0.0%     5    9.6   8.6   6.2   9.8   1.5   (more data here)   10.|-- one.one.one.one            0.0%     5   12.8  13.4  10.7  18.9   3.3Traceroute 命令如何在 Linux 上工作?

从我们的系统到主机地址的数据包通过路由器、接入点和网络接口传输。为了确定数据包的实际路径,traceroute 命令使用 IP 标头、互联网控制消息协议 (ICMP) 以及网络系统上的 TTL 或生存时间工具。

当您的系统上使用非常小的 LAN 连接时,跟踪互联网数据包可能会更容易一些。当进入广域网时,需要traceroute命令读取数据头来测量长度、源和目的地以及协议。

Traceroute 命令使用 TCP 协议建立连接。 8 位 TTL 值还为我们提供了 TTL 计数器编号,用于确定数据包通过路由器与目的地相遇的总数。当 TTL 值为 1 时,数据包会出现超时错误。 ICMP 会从源发送一条消息到数据包的目的地,以确保超时。

Linux 上的 Traceroute 语法

在这里,我们将了解Linux中traceroute命令的基本语法。了解语法肯定会帮助您理解我们将在下面列出的 Traceroute 命令的所有示例。

命令格式如下:

traceroute [options]  host_Address [pathlength]-f, –first-hop=NUM:设置第一跳和下一跳之间的距离。-g, –gateways=GATES:在开放路由中,显示网关列表。-I, –ICMP:指定 ICMP ECHO 作为探测。-m, –max-hop=NUM:设置跳数;默认值为 64。-M, –type=METHOD:使用 ICMP 或 UDP 进行跟踪路由;默认方法是 UDP。-p, –port=PORT:定义网络端口;默认值为 33434。-q, –tries=NUM:每跳将转发 NUM 个探测数据包。–resolve-hostnames:您可以使用此语法来修复主机名。-t, –tos=NUM:TOS 或服务类型在 NUM 中定义-w, –wait=NUM:定义等待时间(以秒为单位)。-? –help:打印Linux 上traceroute 命令的帮助和手册指南。–usage:以简短的文字显示用法。-V, –version:在 Linux 上打印 Traceroute 命令的当前版本。在Linux中安装Traceroute命令

Linux 发行版中traceroute 命令的安装过程很简单。在 Windows 和 Mac 系统中,traceroute 工具是预安装的。在Linux中,您需要先安装它。这里我列出了 Ubuntu/Debian、RedHat、Fedora 和 Arch Linux 系统的安装命令。

在 Arch Linux 上安装traceroute 命令。

sudo pacman -Sy traceroute

在 Ubuntu/Debian Linux 上获取 traceroute 命令。

sudo apt-get install traceroute

在Fedora和Red Hat Linux系统上安装traceroute工具。

# yum install traceroute -y

安装完成后,您可以检查traceroute版本以确保该工具已成功安装在您的Linux计算机上。

$ traceroute --version

Linux 中的 Traceroute 命令示例

现在我们将看到一些您应该学习的 Traceroute 命令的有用且实用的实际示例。 Traceroute 命令可以在桌面和服务器上的所有主要 Linux 发行版上顺利运行。

1.运行 Traceroute 以获取概览

下面提到的traceroute命令向我们显示IP地址、整个路径中的总跳数、建立连接的总持续时间以及加壳器的大小。

traceroute ubuntupit.com

2.隐藏设备名称

如果您想在 Traceroute 命令的输出中隐藏网络设备的名称,请在命令上添加 -n 符号。

traceroute -n  ubuntupit.com3.设置Traceroute超时值

尽管traceroute命令有默认超时值,您也可以自己手动设置超时值。下面提到的traceroute命令展示了如何在Linux中将超时值设置为7秒。

traceroute -w 7.0 ubuntupit.com

4.设置测试数量

要在 Linux 上设置一次执行 traceroute 命令的测试数量或每跳查询数量,可以使用以下命令。

traceroute -q 1 ubuntupit.com

5.设置初始TTL值

在 traceroute 命令上使用 -f 标志语法将允许您在 Linux 上设置 TTL 值或生存时间工具值。

traceroute -f 11 ubuntupit.com6.将结果存储在文本文件中

您可以在 Linux 上通过以下提供的命令将 traceroute 命令的结果导出到文本文件中。

traceroute google.com > results.txt

7.使用 IPv6 跟踪路由

如果您的互联网连接有 IPv6 设置,您可以使用下面提到的 traceroute 命令来跟踪连接。

traceroute -6 ipv6.google.com8.使用 Ipv4 跟踪路由

同样,您也可以在Linux上通过下面提到的traceroute命令定义IPv4连接。

traceroute 4 google.com 9.指定要使用的接口 (NIC)

如果您的 Linux 系统有多个网络接口卡 (NIC),您可以指定其中一张 NIC 来使用带有 -i 标志并提及 NIC 名称的 Traceroute 命令。

traceroute -i enp8s0 google.com

如果您需要知道您的网卡名称,可以执行ifconfig命令。

$ ifconfig10.设置响应等待时间

要更改 Traceroute 命令的默认响应等待时间,可以在 Linux 上的 Traceroute 命令上使用 -w 标志。这个小调整将使您的数据包传输更多距离以到达目标地址。

traceroute -w 1 google.com11.禁用 IP 地址和主机名映射

要在 Linux 上禁用 IP 地址并隐藏主机映射,请在 traceroute 命令上使用 n 符号。这将允许用户不打印主机 IP 地址和主机名。

traceroute n google.com 12。设置最大跳数

默认情况下,traceroute 命令的平均跳数为 30。您可以通过在命令上添加带 -m 标志的跳值来更改 Traceroute 命令的跳值。

traceroute -m 7 google.com 

13.不要对数据包进行碎片

如果您不想在 Linux 系统上对数据包进行分段,请在您的 Traceroute 命令中使用 -F 标志。

$ traceroute -F google.com14.将数据包路由通过门

如果您想通过所需的网关路由traceroute 命令,您可以使用-g 符号以及该命令将您的网关添加到Linux 命令中。

$ traceroute -g 192.168.1.6 google.com15。设置要使用的目标端口

默认情况下,traceroute 命令使用网络端口 33434。如果需要更改网络端口,可以在 Linux 上使用 traceroute 命令上的 -p 标志。

$ traceroute  -p 20292 google.com

16.获取帮助

如果您需要更多关于traceroute命令的帮助和手册,请在shell上执行以下命令。这些手册肯定会帮助您开始使用该工具。

traceroute --help  man traceroute 

使用 Traceroute 命令时可能遇到的问题

如果您是新手,在 Linux 中使用 traceroute 命令时可能会遇到一些问题。在这里,我们列出了来自 Linux 社区的不同用户在使用 Traceroute 命令时最常遇到的一些问题。

1. Linux 上的 Traceroute 命令中的 -n 标志存在问题

之前,我们已经看到可以在 Linux 中使用 n 标志和 traceroute 命令来隐藏设备名称。如果您在 shell 上使用 n 标志时遇到任何问题,并且它为您提供了无效选项,则必须确保系统上安装了正确的跟踪路由工具。您还可以尝试执行下面提到的命令以在系统上进行替代安装。

这是示例输出。

$ sudo traceroute -n . Not working $ traceroute: invalid option -- 'n'

用于在 Linux 计算机上修复跟踪路由工具的命令。

$ update-alternatives --display traceroute $ apt-get install traceroute $ update-alternatives --configure traceroute2.无法验证软件包:Traceroute 命令问题

如果traceroute工具无法在您的Linux系统中进行身份验证,请确保您是sudo用户并且具有在系统上运行此命令的适当权限。确保正确安装此工具后,您现在可以使用下面提到的 sudo update 命令更新软件包存储库。

sudo apt-get install traceroute sudo apt-get update

然后您可以执行所需的traceroute命令,希望您的问题能够得到解决。

3.新版本的 Traceroute 可能存在问题

在某些情况下,在某些较旧的设备中,最新版本的traceroute命令可能会显示一些问题。例如,如果您想要使用 -A 标志运行 traceroute 命令来定义命令的路径,您可能会遇到问题。

错误输出示例:

~$ traceroute -A 8.8.8.8 traceroute -m 30 -q 1 -w 3 -A 8.8.8.8 traceroute: invalid option -- 'A' Try 'traceroute --help' or 'traceroute --usage' for more information.  -A     Perform AS path lookups in routing registries and print  results           directly after the corresponding addresses.   

这个问题通常会在存储库更新后自动解决。如果您仍然遇到此问题,请重新启动设备,正确执行命令,并确保您的命令没有任何输入错误。

~$ traceroute -A 8.8.8.8 traceroute to 8.8.8.8 (8.8.8.8), 30 hops max, 60 byte packets4. Linux 中的 Traceroute 安装错误

如果您在 Linux 计算机上安装 traceroute 命令时遇到任何问题,请确保您分配的安装路径可用于软件包安装。您还必须确保您拥有安装该工具的超级用户权限。在大多数情况下,用户不断尝试在锁定的目录中安装 Traceroute 命令并收到权限被拒绝错误。

Could not open lock file /var/lib/dpkg/lock - open (13: Permission denied) E: Unable  to lock the administration  directory (/var/lib/dpkg/), are you root?

您可以执行下面提到的任何命令集来解决此问题。不要忘记修复丢失的存储库并在 Linux 上安装 traceroute 命令。

sudo apt-get install --fix-missing   sudo apt-get update && sudo apt-get install traceroute 

获取Universe存储库并安装traceroute命令。

sudo add-apt-repository universe sudo apt-get update sudo apt-get install inetutils-traceroute5. Linux 中 Traceroute 的 IP 地址去掉括号()

有时,您可能会在第一个括号内或终端 shell 的圆括号内获得输出 IP 地址。

这是一个示例输出:

traceroute -m2 8.8.8.8 |grep .net |awk '{print $3}' (207.225.112.2)

要从输出中删除括号,请执行下面提到的命令。

$ traceroute -m 2 8.8.8.8 | awk '/net/{gsub(/\(|\)/,"");print $3}'             Or $ traceroute -m 2 8.8.8.8 | awk '/.net/{print $3}'  |  tr -d '()' 207.225.112.2最后一句话

使用traceroute工具进行网络故障排除可以使您的任务更轻松、更高效。新手用户可能需要几天的时间才能开始使用这个命令,但是一旦你习惯了这个工具,你就会发现你是多么喜欢在 Linux 上使用它。

在整篇文章中,我们描述了有关 Linux 中的 traceroute 命令的很多内容。我尝试尽可能简单地说明traceroute 命令。我希望这篇文章对您有用;如果是,请与您的朋友和 Linux 社区分享这篇文章。您也可以在评论区写下您对本文的看法。



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3