Linux 中的 traceroute 命令示例

traceroute 类似于 ping 命令,但提供更详细的输出。 它跟踪从源系统到目标系统的路径。

如果您不知道,当您连接到远程系统时,数据会通过多个中间节点(您的路由器、ISP 的路由器等)传输。

系统管理员和网络专业人员使用 Traceroute 对网络进行故障排除。

在 Linux 中安装 traceroute

大多数现代 Linux 发行版都没有预装 traceroute 实用程序。

如果您使用的是基于 Ubuntu 的发行版,则给定的命令应该可以完成您的工作:

sudo apt install traceroute

同样,如果你在 Fedora,您可以从给定的命令中受益:

sudo yum install traceroute

现在,让我们跳到示例部分。

在 Linux 中使用 traceroute 命令

让我从最基本的开始,我会将主机名附加到 traceroute 命令,它会显示到达目的地所需的路由器列表(带 IP):

traceroute google.com

花了 7个路由器 到达目的地,默认情况下,它 寄了3个包裹 给每一个并返回响应所需的时间。

在 Linux 中有更多使用 tarecroute 命令的方法。 让我们看看例子。

1.配置等待时间

traceroute 中的默认等待时间是 3 秒,这意味着它将等待 5 秒,然后再跳转到下一个。

如果您想更改默认值,您可以将秒数附加到 -w 选项:

为了 example,我将等待时间更改为 1 秒 google.com:

traceroute -w 1 google.com
在 traceroute 命令中配置等待时间

2.更改发送/接收的包裹数量

默认情况下,traceroute 一次发送 3 个包,如果您想更改此行为,则必须使用 -q 选项。

作为参考,我将通过 google 域每跳发送 4 个数据包:

traceroute -q 4 google.com
更改通过 traceroute 中的跃点发送的包数

3.指定最大跳数

traceroute 中默认单次查询的最大跳数是 30,可以扩展到 255。

为此,您可以附加最大希望数 -m 选项:

traceroute -m 4 google.com
指定 traceroute 中的最大跳数

4.指定以什么TTL开始

默认情况下,traceroute 将从第一个 TTL 开始,但您可以使用以下命令更改此行为 -f 选项。

作为参考,我想从第 5 个 TTL 开始在 google 域上进行跟踪路由,因此必须使用给定的命令:]

traceroute -f 5 google.com
指定在 traceroute 中启动的 TTL

5.为跟踪路由添加备用源IP地址

如果您想添加备用源以及通常为跟踪路由添加的内容,则需要将备用 IP 附加到 -s 选项。

为了 example我添加了备用源 IP 192.168.1.7 旁边 google.com:

traceroute -s 192.168.1.7 google.com
为跟踪路由添加备用源 IP 地址

6. 跟踪路由时禁用主机名到 IP 地址的映射

如果出于某种原因要在跟踪路由时禁用主机名映射,可以使用 -n 选项:

traceroute -n google.com
跟踪路由时禁用主机名到 IP 地址的映射

7. 使用 traceroute 通过网关路由包

您可以使用指定网关地址 -g 在要跟踪路由的域旁边的选项。

为了 example, 我已经添加了 192.168.1.7 作为网关地址:

traceroute -g 192.168.1.7 google.com
  使用 traceroute 通过网关路由包

8.更改traceroute中的目的端口

如果您想在跟踪路由时更改源域的目标端口,则必须使用 -p 指定端口。

为了 example,我已将目标端口更改为 29879:

traceroute -p 29879 google.com
更改traceroute中的目的端口

9.设置最大数据包长度

默认情况下,traceroute 将使用 60 字节的数据包长度,您可以通过将数据包大小附加到源 IP 来改变此行为。

为了 example,我在跟踪路由时将最大数据包长度更改为 100 字节:

traceroute google.com 100
在 traceroute 中设置最大数据包长度

10.禁用探测包分片

如果您不想让探测数据包分片,有一种直接的方法可以阻止它。

你只需要使用 -F 并且不会有探测数据包碎片:

traceroute -F google.com
在 traceroute 中禁用探测数据包分片

总结

如果你想知道 traceroute 是如何工作的,你可以参考我解释过的其他指南 跟踪路由的工作.

我希望你会发现这很有帮助,如果你有任何疑问,请在评论中告诉我。

Linux基础培训