linux路由追踪命令大全

1. traceroute

功能:追踪数据包从本机到目标主机的路径,显示每一跳(Hop)的延迟和节点信息。
原理:通过发送 UDP 数据包(默认端口 33434)并逐步增加 TTL(Time To Live)值,检测路径中的每一跳路由。

安装(部分系统默认未安装):

  • Debian/Ubuntu:bash复制代码sudo apt install traceroute
  • CentOS/RHEL:bash复制代码sudo yum install traceroute

常用参数

参数说明
-n不解析 IP 地址的域名(直接显示 IP,加快输出速度)
-I使用 ICMP 协议替代 UDP(某些网络可能过滤 UDP)
-T使用 TCP SYN 探测(默认端口 80,适合穿透防火墙)
-m设置最大跳数(默认 30),例如 -m 20
-q每跳发送的探测包数量(默认 3),例如 -q 1
-p指定目标端口(需配合 -T 或 -U 使用)

示例

bash复制代码traceroute google.com
traceroute -nI 8.8.8.8
traceroute -T -p 443 192.168.1.1

2. tracepath

功能:类似 traceroute,但无需 root 权限,默认使用 ICMP 协议
特点:自动检测路径最大传输单元(MTU),适合快速诊断。

安装

通常预装在大多数 Linux 发行版中,属于 iputils 包。

常用参数

参数说明
-n不解析域名
-b同时显示 IP 和域名
-l设置初始数据包长度(用于 MTU 检测)

示例

bash复制代码tracepath google.com
tracepath -n 8.8.8.8

3. mtr(My Traceroute)

功能:结合 ping 和 traceroute,实时显示每一跳的延迟和丢包率,适合持续监控网络质量。

安装

  • Debian/Ubuntu:bash复制代码sudo apt install mtr
  • CentOS/RHEL:bash复制代码sudo yum install mtr

常用参数

参数说明
-r生成报告模式(非实时)
-c指定发送的探测包数量(例如 -c 50
-n不解析域名
-p指定目标端口(类似 traceroute -T

示例

bash复制代码mtr google.com          # 实时交互模式
mtr -r -c 10 8.8.8.8   # 生成 10 次探测的报告

工具对比

工具协议需 ROOT 权限特点
tracerouteUDP/ICMP/TCP部分参数需要功能最灵活
tracepathICMP不需要轻量、自动检测 MTU
mtrICMP/TCP不需要实时统计延迟和丢包

使用场景

  1. 快速排查网络延迟 → 使用 mtr 实时观察丢包节点。
  2. 绕过防火墙限制 → traceroute -T -p 443 使用 TCP 协议模拟 HTTPS 流量。
  3. 无权限环境调试 → 优先选择 tracepath 或 mtr

通过组合这些工具,可以高效诊断网络路径中的瓶颈或故障节点。

给TA打赏
共{{data.count}}人
人已打赏
技术教程

linux-disk 磁盘问题 unexpected output in sfdisk

2025-4-25 21:22:43

技术教程

免费白嫖AWS云服务器!

2025-5-2 18:11:45

0 条回复 A文章作者 M管理员
    暂无讨论,说说你的看法吧
个人中心
购物车
优惠劵
今日签到
有新私信 私信列表
搜索