可使用traceroute、traceroute6、mtr、tcptraceroute和tracepath五种工具诊断网络延迟与路由路径:traceroute用于IPv4,traceroute6或traceroute -6用于IPv6,mtr提供实时动态追踪,tcptraceroute绕过UDP过滤,tracepath无需root权限且内置MTU发现。

如果您在Linux系统中需要诊断网络延迟并确定数据包从源主机到目标主机所经过的路径,则可以使用traceroute工具来追踪路由路径。以下是实现此目的的多种方法:
一、使用traceroute命令追踪IPv4路由路径
traceroute通过发送具有递增TTL(Time To Live)值的数据包,利用中间路由器返回的ICMP“超时”消息,逐跳识别路径上的每一台设备。该命令默认基于UDP探测,适用于大多数IPv4网络环境。
1、打开终端,输入以下命令并回车:traceroute example.com
2、若需指定探测包数量,添加-c参数:traceroute -c 3 example.com
3、如需以IP地址形式显示结果(避免DNS解析延迟),添加-n参数:traceroute -n example.com
二、使用traceroute命令追踪IPv6路由路径
当目标主机仅支持IPv6或网络链路为纯IPv6环境时,需使用专门的IPv6版本traceroute命令,确保协议匹配与正确响应解析。
1、确认系统已安装支持IPv6的traceroute(通常为traceroute6或traceroute -6):
2、执行IPv6追踪:traceroute6 example.com
3、或使用统一命令加协议标识:traceroute -6 example.com
三、使用mtr实时动态追踪路由路径
mtr是traceroute和ping的结合体,持续发送探测包并实时更新每跳的丢包率、延迟波动与响应状态,适合长时间观测链路稳定性。
1、安装mtr(如未预装):sudo apt install mtr(Debian/Ubuntu)或sudo yum install mtr(CentOS/RHEL)
2、启动交互式mtr界面:mtr example.com
3、在运行界面中按s键切换排序方式,按r键刷新统计,按q退出
四、使用tcptraceroute绕过UDP过滤策略
某些网络出口防火墙会拦截UDP探测包,导致traceroute无法获取完整路径。tcptraceroute改用TCP SYN包进行探测,可穿透多数基于UDP限制的安全策略。
1、安装tcptraceroute:sudo apt install tcptraceroute(Debian/Ubuntu)
2、对标准HTTP端口发起TCP追踪:sudo tcptraceroute example.com 80
3、如需指定源端口以适配特定ACL规则:sudo tcptraceroute -p 54321 example.com 443
五、使用tracepath替代无root权限场景
tracepath无需root权限即可运行,内置于iproute2套件,使用UDP探测且自动处理路径MTU发现,适合受限权限用户快速诊断基础路由问题。
1、直接执行追踪:tracepath example.com
2、指定最大跳数限制输出长度:tracepath -m 20 example.com
3、禁用反向DNS解析提升响应速度:tracepath -n example.com











