traceroute命令学习笔记

2024-08-05 14:58:16 浏览数 (1)

traceroute 是一个非常有用的网络诊断工具,用于追踪从源主机到目标主机的路径。这个工具在 Linux 系统中广泛使用,帮助网络管理员和用户了解数据包在网络中的传输情况,从而诊断网络问题。

工作原理

  1. 生存时间(TTL)traceroute 利用 IP 数据包的 TTL 字段来确定数据包经过的每个网络设备。初始 TTL 值通常设置为 1。
  2. 逐步增加 TTLtraceroute 发送一个 TTL 为 1 的数据包,如果该数据包到达第一个路由器,路由器会将其 TTL 减 1,然后丢弃它并返回一个 ICMP 时间超过(TTL exceeded)的消息。
  3. 收集信息traceroute 收集这个 ICMP 消息,并显示第一个路由器的 IP 地址和往返时间(RTT)。
  4. 重复过程:然后 traceroute 增加 TTL 值并重复这个过程,每次增加 1,直到数据包到达目标主机或达到最大 TTL 值。

基本方法

输入命令 traceroute 后跟目标主机的域名或者 IP 地址。例如:

代码语言:javascript复制
traceroute qq.com

输出解释

第一行显示了目标地址和一些其他参数信息,比如尝试探测的最大跳数、探测报文的字节数。

后续的每一行代表一个“跃点”,从本地网络开始,直到目标服务器,其中

  • 第1列:网络路径上跃点的序号。
  • 第2列:通常形式是跃点的主机名后跟着(IP)。
  • 第3列:三次尝试的 RTT(往返时间),显示为最小值、平均值、最大值。
  • 星号 (*):如果某个跃点的网络设备没有响应,或者由于网络策略不发送 ICMP 消息,那么该行将显示星号。

常用选项

  • -m :设置最大 TTL 值,即最大跳数。例如,-m 10 表示最多追踪 10 个跃点。
  • -n:不将 IP 地址解析为主机名,减少 DNS 查找的时间。
  • -w :设置超时时间。
  • -i :使用指定的网络接口送出数据包。
  • -p :指定发送数据包时使用的端口号,对于 ICMP 协议则是指定初始的 ICMP 序号。
  • -q :设置每跳探测数据包的数量,默认值为 3。
  • -I:使用 ICMP ECHO 报文进行探测。
  • -T:使用 TCP SYN 报文进行探测。
  • -z:每发送完一个 TTL 值的数据包后暂停一段时间,默认为 1 秒。

注意事项

  • traceroute 可能需要管理员权限,特别是在使用 ICMP 时。
  • 某些网络可能配置为不响应 traceroute 请求,导致路径中的某些跃点不显示。
  • linux 系统中,我们称之为 traceroute,在 Windows 系统中为 tracert

0 人点赞