)
1. 命令简介tracepath 是一个用于追踪并显示数据包从本地主机到达指定目的主机所经过的路由路径的网络诊断工具。它通过发送 UDP 数据包并监听 ICMP 响应来探测路径上的每一跳路由器或网关并报告相关的网络信息如往返时间RTT、路径 MTUPMTU变化以及非对称路由等。与 traceroute 相比tracepath 通常无需 root 权限即可运行并且设计上更侧重于发现路径 MTU。2. 语法格式plaintexttracepath [选项]... 目的主机 [端口]基本格式说明目的主机必需参数。可以是目标主机的 IP 地址如 8.8.8.8或域名如 www.example.com。端口可选参数。指定用于发送探测包的 UDP 目标端口号。默认端口通常为 33434并会随每次探测递增。[选项]...可选的命令行标志用于修改命令行为。3. 常用选项及说明表格选项说明-n不尝试将 IP 地址反向解析为主机名。直接显示 IP 地址可以加快输出速度。-b同时打印路径中节点的主机名和 IP 地址。-l 长度设置初始探测包的长度单位字节。默认值通常为 65535用于路径 MTU 发现。通过发送大包并监听 “数据包过大” 的 ICMP 消息来探测路径 MTU。-m 跳数设置追踪的最大跳数TTL 最大值。默认值为 30。当达到此跳数仍未到达目标时追踪停止。-p 端口设置使用的起始 UDP 端口号。后续探测的端口号会在此基础上递增。4. 示例用法基本用法追踪到目标域名的路径命令plaintexttracepath www.google.com输出将显示到达 www.google.com 所经过的每一跳的 IP 地址或主机名、延迟以及路径 MTU 信息。禁用反向 DNS 解析以加快速度命令plaintexttracepath -n 8.8.8.8使用 -n 选项输出中将只显示 IP 地址跳过耗时的 DNS 反向查询。同时显示主机名和 IP 地址命令plaintexttracepath -b github.com使用 -b 选项在输出中同时显示每一跳的主机名和对应的 IP 地址。设置初始包长度和最大跳数命令plaintexttracepath -l 1500 -m 20 example.com设置初始探测包长度为 1500 字节并将最大追踪跳数限制为 20。指定目标端口命令plaintexttracepath -p 33500 target.server.com 33500指定起始 UDP 端口为 33500 进行追踪。命令末尾的 33500 是目标端口参数。解析输出示例执行 tracepath www.example.com 后典型输出如下plaintext1: 192.168.1.1 (192.168.1.1) 1.234ms pmtu 1500 1: 192.168.1.1 (192.168.1.1) 0.987ms 2: 10.10.0.1 (10.10.0.1) 5.678ms 3: 203.0.113.45 (203.0.113.45) 15.432ms asymm 4 4: 198.51.100.22 (198.51.100.22) 22.345ms 5: 93.184.216.34 (93.184.216.34) 31.567ms reached Resume: pmtu 1500 hops 5 back 4输出解读第 1 列跳数。pmtu 1500在该跳发现的路径 MTU 为 1500 字节。括号内为 IP 地址若未用 -n 且解析成功前面会显示主机名。时间值为该跳的往返延迟。asymm N表示从该节点返回的路径到你的主机与发送路径不同N 指示了其认为的你的主机所在的跳数。reached表示已到达目标主机。最后一行 Resume总结了路径 MTU、总跳数和从目标回溯的跳数。5. 注意事项权限tracepath 通常不需要 root 权限即可运行因为它使用常见的 UDP 和 ICMP 协议。这与一些需要 RAW 套接字权限的 traceroute 实现不同。防火墙与过滤路径上的路由器或目标主机可能会过滤 ICMP “超时” 或 “目标不可达” 消息或者过滤指定的 UDP 端口。这可能导致 tracepath 显示为 no reply无回复无法完整显示路径。非对称路由网络路径可能不对称去程和回程路径不同。tracepath 输出的 asymm 指示了这种可能性但实际回程路径仍需从目标端进行追踪才能确定。与 traceroute 的区别tracepath 内建了路径 MTU 发现机制并且默认使用 UDP 协议。而 traceroute 命令功能更丰富支持 TCP、ICMP 等多种协议选项也更复杂但部分功能可能需要特权。输出解读pmtu 值的变化通常减小指示了路径上某处链路支持的最大传输单元较小。reached 状态表示成功抵达目标但并不意味着目标应用程序如 Web 服务器在指定端口上是可达或开放的。获取更多Linux学习资料请关注“阿成学长工具包”对话框中输入2647获取