traceroute需手动安装,因多数Linux发行版默认未预装;可通过which traceroute或traceroute -V验证,若未安装则依发行版执行sudo apt install traceroute(Ubuntu/Debian)、sudo dnf install traceroute(CentOS/RHEL 8+)等命令。

traceroute 是 Linux 中诊断网络路径问题的常用工具,它通过发送带有递增 TTL(Time-To-Live)值的数据包,逐跳显示数据从本机到目标主机所经过的每一台路由器或中间节点。它本身不参与路由决策,而是利用 ICMP 超时响应(或 UDP/TCP 端口不可达响应)来识别路径上的设备。
是否需要手动安装?
大多数主流 Linux 发行版(如 Ubuntu、Debian、CentOS、Fedora、Arch)默认已预装 traceroute。可通过以下命令快速验证:
-
which traceroute —— 若返回路径(如
/usr/bin/traceroute),说明已存在 - traceroute -V —— 查看版本信息,确认可用性
若提示 command not found,则需按发行版安装:
-
Ubuntu/Debian:
sudo apt install traceroute -
CentOS/RHEL 8+:
sudo dnf install traceroute -
CentOS/RHEL 7:
sudo yum install traceroute -
Arch Linux:
sudo pacman -S inetutils(提供traceroute)或iputils(含tracepath,轻量替代)
常见调试场景与参数技巧
基础命令 traceroute example.com 可能因防火墙、ICMP 限制或中间设备静默而显示 * * *。此时可尝试调整协议或参数:
Zynq‑7000 / Zynq UltraScale+ 硬件调试技能。适用于 Xilinx Zynq(Cortex‑A9/A53 + FPGA)Linux 环境,调试 I2C、I2S、UART、GPIO 等外设。包括设备树配置、内核驱动、用户空间调试工具、交叉编译和常见问题排查,支持 PetaLinux 开发。
-
-I:强制使用 ICMP(类似 Windows 的
tracert),绕过某些 UDP 封锁 -
-T:改用 TCP SYN 包(常用于检测 HTTPS 端口路径,如
traceroute -T -p 443 example.com) - -m 30:设置最大跳数(默认通常为 30,可调高应对长路径)
- -n:禁用 DNS 解析,加快输出并避免解析失败干扰
- -q 3:每跳发送 3 个探测包(默认为 3,可设为 1 加速,或 5 提高准确性)
替代方案与权限注意
普通用户可运行 traceroute,但部分模式(如 TCP/ICMP 探测)可能需要 CAP_NET_RAW 权限。若遇 permission denied:
- 检查是否以普通用户执行(非 root)且系统未授予必要能力
- 临时用
sudo traceroute -I example.com测试(不推荐长期依赖 sudo) - 更安全的做法是为二进制文件授予权限:
sudo setcap cap_net_raw+ep /usr/bin/traceroute
若仅需基础路径发现且无 root 权限,tracepath(来自 iputils)是无需特权的轻量替代,支持 IPv4/IPv6 自动探测,命令简洁:tracepath google.com。
结果解读要点
典型输出每行代表一跳,格式为: 3 192.168.1.1 (192.168.1.1) 1.234 ms 1.112 ms 1.098 ms
- 首列是跳数(TTL 值),从 1 开始递增
- 第二列为主机名(若启用 DNS),括号内为真实 IP;加
-n可直接看到 IP - 后三组时间是三次探测的往返延迟(RTT),单位毫秒;若显示
*表示该跳未响应或被过滤 - 连续多跳超时(如第 5–8 跳全为 *),往往表示中间某段网络策略丢弃了探测包,不等于断连,需结合 ping 和业务端口测试综合判断

















