Traceroute 是网络诊断中用于追踪数据包从源主机到目标主机的路径的工具,可帮助定位网络延迟、路由故障或中间节点问题。

一、基础命令

1. 通用语法

# Linux/macOS
traceroute [参数] 目标域名或IP

# Windows(命令为tracert)
tracert [参数] 目标域名或IP

2. 常用参数

参数作用示例
-n禁用反向DNS解析(显示IP而非域名)traceroute -n 8.8.8.8
-m指定最大跳数(默认30)traceroute -m 20 baidu.com
-q每跳的探测包数量(默认3)traceroute -q 5 google.com
-w等待响应时间(秒)traceroute -w 2 github.com
-I使用ICMP协议(默认UDP)traceroute -I 1.1.1.1
-T使用TCP协议(需管理员权限)sudo traceroute -T 443 目标IP

二、结果解读

示例输出

traceroute to google.com (142.250.65.206), 30 hops max, 60 byte packets
 1  192.168.1.1 (192.168.1.1)  1.234 ms  1.456 ms  1.678 ms
 2  10.10.10.1 (10.10.10.1)    10.123 ms  10.456 ms  10.789 ms
 3  203.0.113.25               15.678 ms  16.123 ms *
 4  72.14.208.142              !N   !N   !N
 5  142.250.65.206            30.123 ms  30.456 ms  30.789 ms

符号含义

  • * :节点未响应(可能防火墙拦截或丢包)
  • !N :网络不可达(如路由错误)
  • 时间值:三个时间表示三次探测的往返延迟(RTT)
  • IP/域名:显示经过的中间节点IP或反向解析的域名

三、高级用法

1. 指定源接口

traceroute -i eth1 目标IP  # 通过指定网卡发送探测包

2. 强制使用ICMP

traceroute -I 目标IP  # 适合绕过某些UDP限制

3. 指定端口(TCP模式)

sudo traceroute -T -p 443 目标IP  # 模拟HTTPS流量路径

4. 输出到文件

traceroute 目标IP > trace.log  # 保存结果供后续分析

四、常见问题排查

1. 中间节点高延迟

  • 现象:某跳延迟突增(如从10ms跳至200ms)
  • 可能原因:网络拥塞、设备性能瓶颈
  • 解决方案:多时段测试,联系ISP或VPS提供商

2. 路径终点无法到达

  • 现象:最终跳显示* * *
  • 可能原因:目标服务器防火墙拦截、路由配置错误
  • 解决方案:检查目标端口是否开放(使用telnetnmap

3. 路径环路

  • 现象:IP地址重复出现(如跳数3和跳数7的IP相同)
  • 可能原因:路由表配置错误
  • 解决方案:向网络管理员反馈或更换VPS网络配置

五、注意事项

  1. 权限问题:部分参数(如TCP模式)需要 sudo 或管理员权限
  2. 防火墙干扰:中间节点的防火墙可能过滤探测包
  3. 隐私风险:公开的traceroute结果可能暴露网络拓扑
  4. 协议差异:ICMP/UDP/TCP的路径可能不同(受网络策略影响)

云轻雨细
1 声望0 粉丝