traceroute是通过递增ttl值发送探测包并监听icmp超时响应,逐跳追踪ip数据包从源到目标的完整路由路径;支持icmp、udp、tcp三种模式,需root权限,默认每跳发3个包、最大30跳。

用 traceroute 命令测试到达目标网关的路由路径是最直接有效的方式。
确认目标网关地址
在执行 traceroute 前,先明确你要测的是哪个网关:
- 查默认网关:运行
ip route | grep default或route -n | grep '^0.0.0.0',输出中第二列就是默认网关 IP - 若测特定网关(如某台内网路由器),直接使用其 IP 地址,无需域名
- 避免用主机名——部分网关不响应反向 DNS 查询,加
-n参数可跳过解析、加快响应
基本 traceroute 测试方法
以目标网关 IP(例如 192.168.1.1)为例:
Zynq‑7000 / Zynq UltraScale+ 硬件调试技能。适用于 Xilinx Zynq(Cortex‑A9/A53 + FPGA)Linux 环境,调试 I2C、I2S、UART、GPIO 等外设。包括设备树配置、内核驱动、用户空间调试工具、交叉编译和常见问题排查,支持 PetaLinux 开发。
-
traceroute -n 192.168.1.1—— 默认从 TTL=1 开始,每跳发 3 个包,最多试 30 跳 - 若网关在本地子网(如上述例子),通常第一跳就命中,显示类似:
1 192.168.1.1 1.234 ms 0.987 ms 1.056 ms - 若第一跳显示
*或超时,说明本机到该网关之间存在阻断(如物理断开、网卡 down、ARP 失败或防火墙丢弃 ICMP)
常见异常与应对
结果中出现特殊符号,需结合上下文判断:
-
*(星号):该跳未返回 ICMP 超时消息,常见于中间设备禁 ping、ACL 过滤或 ICMP 限速 -
!H或!N:目标主机/网络不可达,可能网关已关机、IP 配置错误或路由缺失 - 全跳都是
*且无任何响应:检查本机是否能 ping 通该网关(ping -c3 192.168.1.1),若 ping 不通,traceroute 必然失败 - 想绕过 UDP 探测限制(某些网关屏蔽 UDP 端口):改用 ICMP 模式,加
-I参数,如traceroute -n -I 192.168.1.1
补充验证手段
单靠 traceroute 不足以定位所有问题,建议组合使用:
- 确认本机接口状态:
ip link show查 eth0 是否 UP - 确认本机 IP 和子网配置:
ip addr show看是否与网关同网段 - 检查 ARP 表是否学习到网关 MAC:
ip neigh show,若对应条目为FAILED,说明二层不通 - 临时关闭本机防火墙测试:
sudo systemctl stop firewalld(CentOS/RHEL)或sudo ufw disable(Ubuntu)










