traceroute 一般为系统管理员或者网络管理员用于对网络进行故障排除。
在 Linux 中安装 traceroute
在大多数 Linux 发行版中,traceroute 都没有被预安装,所以需要我们手动安装。
如果你用的是 Ubuntu,可以使用如下命令安装:
sudo apt install traceroute
如果你用的是 Fedora,可以使用如下命令:
sudo yum install traceroute
下面,我们介绍几个使用 traceroute 的例子。
使用 traceroute 命令
我们先来介绍一个最基本的例子,使用 traceroute 命令跟踪一个主机名,它将显示到达目的地所需的路由器列表(带IP):
traceroute google.com
如上图所示,它需要7个路由器才能到达目的地,默认情况下,它向每个路由器发送3个包,并返回响应所需的时间。
下面我们来看看其他几个例子。
1,配置等待时间
traceroute 中的默认等待时间为3秒,要修改这个时间,可以使用 -w 选项。比如,我们将等待时间改为 1 秒:
traceroute -w 1 google.com
2,更改收发包的数量
默认情况下,traceroute 为一个跃点(hop)发送3个包,如果想更改此行为,可使用 -q 选项。
比如,我们我们将其改为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地址
使用-s 选项添加备用 IP 地址:
traceroute -s 192.168.1.7 google.com
6,跟踪时禁用主机名映射到IP地址
如果出于某种原因希望在跟踪时禁用主机名映射,可以使用 -n 选项:
traceroute -n google.com
7,通过网关路由包
可以在要跟踪路由的域时,使用 -g 选项指定网关地址。
比如,我们添加 192.168.1.7 作为网关地址:
traceroute -g 192.168.1.7 google.com
8,更改目标端口
可以使用 -p 来指定要跟踪的目标端口:
traceroute -p 29879 google.com
9,设置最大数据包长度
默认情况下,traceroute 跟踪的数据包长度为 60 字节(bytes),可以在目标地址后跟一个数字(即包大小)来修改:
traceroute google.com 100
10,禁用探测数据包碎片(probe packet fragmentation)
如果你不想允许探测数据包碎片化,有一种简单的方法来实现这个目的,使用 -F 选项:
traceroute -F google.com