命令简介

traceroute 命令用于追踪数据包从源主机到目标主机的路由路径。它通过发送一系列数据包并计算每个中间节点的响应时间,从而显示数据包经过的路由器及往返时间。这对于诊断网络故障、优化网络性能和了解网络拓扑结构非常有帮助。

命令格式

1
traceroute [选项] 目标主机

参数说明

参数 说明 备注
-I 使用 ICMP 回显请求包进行追踪 默认使用 UDP 数据包
-T 使用 TCP SYN 数据包进行追踪 对防火墙和路由器更友好
-n 显示 IP 地址而不执行反向域名解析 加快执行速度
-m 设置最大存活时间(TTL)的值 默认为30跃点
-p 设置基于的源端口号 默认为33434
-q 设置每个节点的查询数量 默认为3次
-w 设置等待每个节点响应的超时时间(秒) 默认为5秒

命令实例

基本用法

1.基本使用

1
traceroute www.example.com

这将追踪数据包从当前主机到 www.example.com 的路由路径。

2.使用 ICMP 回显请求包进行追踪

1
traceroute -I 192.168.1.1

这将使用 ICMP 回显请求包追踪数据包到达 IP 地址 192.168.1.1 的路由路径。

3.设置最大存活时间(TTL)值

1
traceroute -m 20 www.example.com

这将追踪数据包从当前主机到 www.example.com 的路由路径,但最大只显示20个节点。

4.设置查询数量和超时时间

1
traceroute -q 5 -w 3 www.example.com

这将追踪数据包从当前主机到 www.example.com 的路由路径,每个节点查询5次,等待每个节点响应的超时时间为3秒。

扩展用法

1.持续追踪路由路径

1
watch -n 5 'traceroute www.example.com'

这将每隔5秒执行一次 traceroute 命令,持续追踪数据包从当前主机到 www.example.com 的路由路径,可以实时监控路由变化。

2.将结果保存到文件

1
traceroute www.example.com > traceroute.log

这将追踪数据包从当前主机到 www.example.com 的路由路径,并将结果保存到 traceroute.log 文件中。

高级用法

1.使用 TCP SYN 数据包进行追踪

1
traceroute -T www.example.com

这将使用 TCP SYN 数据包追踪数据包从当前主机到 www.example.com 的路由路径。相比使用 UDP 数据包,使用 TCP SYN 数据包对防火墙和路由器更友好,因为它们通常不会过滤 TCP SYN 数据包。

2.指定源地址进行追踪

1
traceroute -f 192.168.1.100 www.example.com

这将使用源 IP 地址 192.168.1.100 追踪数据包从当前主机到 www.example.com 的路由路径。这对于诊断网络问题和模拟不同源地址的情况非常有用。

3.使用 ICMP 回显请求包和端口号进行追踪

1
traceroute -I -p 80 www.example.com

这将使用 ICMP 回显请求包和目标端口号 80 (HTTP 端口)追踪数据包从当前主机到 www.example.com 的路由路径。这可以帮助检测防火墙是否正确配置了端口规则。

以上是关于 traceroute 命令的详细文档,包括命令简介、语法格式、参数使用说明、演示实例以及扩展和高级使用方法。traceroute 命令是网络故障排查和性能优化的重要工具之一,掌握它的使用方法对于网络管理员和运维工程师非常有帮助。