traceroute
命令是一个强大的网络诊断工具,它主要用于追踪从源主机到目标主机的数据包所经过的路径。这个命令可以帮助管理员了解数据包在网络中是如何流动的,并且可以用来检测网络故障点。
基本语法
traceroute [选项] [目标主机名或IP地址]
常用选项:
-d
:使用Socket层级的排错功能。-f <存活数值>
:设置第一个检测数据包的 TTL 大小。-F
:设置勿离断位。-g <网关>
:指定来源路由网关,最多可设8个。-i <网络界面>
:使用特定的网络接口发送数据包。-I
:使用 ICMP 回应请求代替默认的 UDP 数据信息。-m <存活数值>
:设定检测数据包的最大 TTL。-n
:直接显示 IP 地址而不是主机名。-p <通信端口>
:设定 UDP 传输协议的通信端口。-r
:忽略普通路由表,直接将数据包送到远端主机上。-s <来源地址>
:设定本地主机发送数据包的 IP 地址。-t <服务类型>
:设定 TOS 数值。-v
:详细显示指令执行过程。-w <超时秒数>
:设定等待远程主机回应的时间。-x
:开启或关闭数据包正确性检验。
工作原理
traceroute
通过发送一系列带有递增 TTL(Time To Live)值的数据包来确定到达目的地的路径。每个中间路由器接收到数据包后会将 TTL 减一,如果 TTL 达到零,则该路由器会丢弃数据包并向源地址返回一个 ICMP “超时” 报文。这样,traceroute
可以逐步增加 TTL 来记录下沿途每个路由器的信息,直到最终到达目标主机或达到最大跳数限制。当数据包成功抵达目标主机时,由于目的端口通常是不可达的(例如,选择了一个高于30000的UDP端口号),因此目标主机会返回一个“端口不可达”的ICMP报文给源主机,以此表明已经到达了目的地。
输出解释
当使用 traceroute
命令并指定一个 IP 地址作为目标时&