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

2.更改发送/接收的包裹数量
默认情况下,traceroute 一次发送 3 个包,如果您想更改此行为,则必须使用 -q
选项。
作为参考,我将通过 google 域每跳发送 4 个数据包:
traceroute -q 4 google.com

3.指定最大跳数
traceroute 中默认单次查询的最大跳数是 30,可以扩展到 255。
为此,您可以附加最大希望数 -m
选项:
traceroute -m 4 google.com

4.指定以什么TTL开始
默认情况下,traceroute 将从第一个 TTL 开始,但您可以使用以下命令更改此行为 -f
选项。
作为参考,我想从第 5 个 TTL 开始在 google 域上进行跟踪路由,因此必须使用给定的命令:]
traceroute -f 5 google.com

5.为跟踪路由添加备用源IP地址
如果您想添加备用源以及通常为跟踪路由添加的内容,则需要将备用 IP 附加到 -s
选项。
为了 example我添加了备用源 IP 192.168.1.7
旁边 google.com
:
traceroute -s 192.168.1.7 google.com

6. 跟踪路由时禁用主机名到 IP 地址的映射
如果出于某种原因要在跟踪路由时禁用主机名映射,可以使用 -n
选项:
traceroute -n google.com

7. 使用 traceroute 通过网关路由包
您可以使用指定网关地址 -g
在要跟踪路由的域旁边的选项。
为了 example, 我已经添加了 192.168.1.7
作为网关地址:
traceroute -g 192.168.1.7 google.com

8.更改traceroute中的目的端口
如果您想在跟踪路由时更改源域的目标端口,则必须使用 -p
指定端口。
为了 example,我已将目标端口更改为 29879
:
traceroute -p 29879 google.com

9.设置最大数据包长度
默认情况下,traceroute 将使用 60 字节的数据包长度,您可以通过将数据包大小附加到源 IP 来改变此行为。
为了 example,我在跟踪路由时将最大数据包长度更改为 100 字节:
traceroute google.com 100

10.禁用探测包分片
如果您不想让探测数据包分片,有一种直接的方法可以阻止它。
你只需要使用 -F
并且不会有探测数据包碎片:
traceroute -F google.com

总结
如果你想知道 traceroute 是如何工作的,你可以参考我解释过的其他指南 跟踪路由的工作.
我希望你会发现这很有帮助,如果你有任何疑问,请在评论中告诉我。