ip路由追踪命令(Tracert)

本文介绍Tracert(跟踪路由)工具的基本概念、工作原理及如何使用。Tracert通过发送不同TTL值的ICMP回应数据包来确定从一个主机到网络上其他主机的路由,适用于解决大型网络问题。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

Tracert(跟踪路由)是路由跟踪实用程序,用于确定 IP 数据报访问目标所采取的路径。Tracert 命令用 IP 生存时间 (TTL) 字段和 ICMP 错误消息来确定从一个主机到网 络 上其他主机的路由。

Tracert 工作原理

通过向目标发送不同 IP 生存时间 (TTL) 值的“Internet 控制消息协议 (ICMP)”回应数据包,Tracert 诊断程序确定到目标所采取的路由。要求路径上的每个路由器在转发数据包之前至少将数据包上的 TTL 递减 1。数据包上的 TTL 减为 0 时,路由器应该将“ICMP 已超时”的消息发回源系 统

Tracert 先发送 TTL 为 1 的回应数据包,并在随后的每次发送过程将 TTL 递增 1,直到目标响应或 TTL 达到最大值,从而确定路由。通过检查中间路由器发回的“ICMP 已超时”的消息确定路由。某些路由器不经询问直接丢弃 TTL 过期的数据包,这在 Tracert 实用程序中看不到。

Tracert 命令按顺序打印出返回“ICMP 已超时”消息的路径中的近端路由器接口列表。如果使用 -d 选项,则 Tracert 实用程序不在每个 IP 地址上查询 DNS。

在下例中,数据包必须通过两个路由器(10.0.0.1 和 192.168.0.1)才能到达主机 172.16.0.99。主机的默认网关是 10.0.0.1,192.168.0.0 网络上的路由器的 IP 地址是 192.168.0.1。

C:/>tracert 172.16.0.99 -d

Tracing route to 172.16.0.99 over a maximum of 30 hops

1 2s 3s 2s 10,0.0,1

2 75 ms 83 ms 88 ms 192.168.0.1

3 73 ms 79 ms 93 ms 172.16.0.99

Trace complete.

用 tracert 解决问题

可以使用 tracert 命令确定数据包在网络上的停止位置。下例中,默认网关确定 192.168.10.99 主机没有有效路径。这可能是路由器配置的问题,或者是 192.168.10.0 网络不存在(错误的 IP 地址)。

C:/>tracert 192.168.10.99

Tracing route to 192.168.10.99 over a maximum of 30 hops

1 10.0.0.1 reportsestination net unreachable.

Trace complete.

Tracert 实用程序对于解决大网络问题非常有用,此时可以采取几条路径到达同一个点。

Tracert 命令行选项

Tracert 命令支持多种选项,如下表所示。

tracert [-d] [-h maximum_hops] [-j host-list] [-w timeout] target_name

选项
描述

-d
指定不将 IP 地址解析到主机名称。

-h maximum_hops
指定跃点数以跟踪到称为 target_name 的主机的路由。

-j host-list
指定 Tracert 实用程序数据包所采用路径中的路由器接口列表。

-w timeout
等待 timeout 为每次回复所指定的毫秒数。

target_name
目标主机的名称或 IP 地址。

### tracerttraceroute 的使用方法 #### Windows 平台下的 `tracert` 命令 在 Windows 系统中,用于路由追踪命令是 `tracert`。该命令能够展示数据包从源设备到目标设备之间经过的所有路由器及其对应的延迟时间[^4]。 基本语法如下: ```cmd tracert [-d] [-h maximum_hops] [-j host_list] [-w timeout] target_name ``` - `-d`: 不解析地址到主机名。 - `-h maximum_hops`: 设置最大跳跃数,默认为30次。 - `-j host_list`: 指定松散源路由列表(较少使用)。 - `-w timeout`: 自定义等待每次回复的时间间隔(毫秒),默认为4000ms。 示例: ```cmd C:\> tracert www.google.com ``` 上述命令会尝试找到通往 Google 主机的具体路径并记录每一步所需时间[^5]。 #### Linux/MacOS 平台下的 `traceroute` 命令 对于基于 Unix 或类 Unix 的操作系统如 Linux 和 MacOS,则采用的是名为 `traceroute` 的工具来实现相同功能[^3]。它同样报告了 IP 数据报文抵达最终节点前穿越过的各个网关以及相应耗时情况。 其标准调用形式为: ```bash traceroute [选项]... 目的地... ``` 一些常用的参数包括但不限于以下几个方面: - `-m max_ttl`: 设定最大的TTL值(即允许的最大跳数),缺省情况下也是设定成30步; - `-n`: 只打印IP数值而不查询域名服务DNS转换名称; - `-q probes`: 对每一个TTL发送多个探测请求,默认次数通常是三个; - `-f first_ttl`: 开始时使用的初始生存周期(TTL)字段中的数字而非常规的一; 实例演示: ```bash $ traceroute -m 20 example.org ``` 此条语句限定整个过程不得超过二十级转发操作,并且定位example.org服务器的确切地理位置信息连同沿途经历的关键环节一起呈现出来。 另外值得注意的一个跨平台兼容版本叫做`tracepath`, 它无需root权限即可执行, 功能上类似于传统的traceroute但是更加轻量级. 最后提到PathPing这个综合型诊断利器,在某些场景下可能更为实用因为它不仅提供了类似Traceroute的功能而且还具备持续监测能力从而评估整体链路质量状况如何变化趋势等等额外好处[^2]. ###
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值