每天一个 Linux 知识:强大的网络诊断工具 traceroute

B站影视 韩国电影 2025-11-15 20:26 1

摘要:traceroute(在某些系统中也称为 tracepath 或 Windows 下的 tracert)是一种用于显示数据包从源主机到目标主机所经过的每一跳(hop)路由器的命令行工具。通过分析路径中的每个节点,用户可以判断网络瓶颈出现在哪个环节,是本地网络问

traceroute(在某些系统中也称为 tracepath 或 Windows 下的 tracert)是一种用于显示数据包从源主机到目标主机所经过的每一跳(hop)路由器的命令行工具。通过分析路径中的每个节点,用户可以判断网络瓶颈出现在哪个环节,是本地网络问题、ISP 路由问题,还是目标服务器本身的问题。

其核心原理基于 IP 协议中的 TTL(Time To Live)字段。每发送一个数据包,traceroute 会逐步增加 TTL 值(从1开始)。当数据包到达某个路由器时,TTL 减1;若 TTL 变为0,该路由器会丢弃数据包,并向源主机返回一个“ICMP 超时”消息。利用这一机制,traceroute 能依次探测出路径上的每一个中间节点。

traceroute 的基本语法如下:

traceroute [选项] 目标主机

例如,要追踪到百度服务器的路径,可执行:

traceroute www.baidu.com

每一行代表一跳,包含:

跳数(Hop number)路由器的主机名(若可解析)和 IP 地址三次探测的往返时间(单位:毫秒)

默认情况下,traceroute 使用 UDP 数据包(端口33434起),但也可通过选项切换为 ICMP 或 TCP 模式。

掌握以下常用选项可显著提升使用效率:

-n:以数字形式显示 IP 地址,不进行 DNS 反向解析,加快执行速度。-I:使用 ICMP 协议(类似 Windows 的 tracert),适用于某些防火墙屏蔽 UDP 的环境。-T:使用 TCP SYN 包进行探测,常用于绕过仅允许 TCP 流量的防火墙。-m max_ttl:设置最大跳数(默认30),适用于目标较近时缩短探测时间。-q nqueries:设置每跳发送的探测包数量(默认3次)。-w timeout:设置每次等待响应的超时时间(秒)。

例如,使用 ICMP 模式快速追踪到 Google 的路径:

traceroute -n -I -m 20 www.google.com

来源:wljslmz一点号

相关推荐