概况地说:traceroute=追踪路由 + 展示每一跳延迟 + 定位网络断点
它通过发送探测包,逐跳(hop)记录经过的网关路由,并显示:跳数(第几个节点)、节点ip域名、三次延迟(rtt)、丢包状态。一般可以把它理解为:网络世界的导航 + 测速仪。
traceroute的工作原理其实很简单:
1.发送一个 TTL=1 的数据包,第一跳路由器收到后 TTL 减为0,返回超时消息
2.发送TTL=2的数据包,第二跳路由器返回超时消息
3.以此类推,直到到达目标服务器
通过这种方式,逐跳记录每个节点的延迟和状态。
#traceroute安装,部分最小化安装的程序没有自带 (以centos为例)yum -y install traceroute

traceroute www.baidu.comtraceroute 8.8.8.8


每一列含义:
linux中默认udp,windows中默认是icmp。
有部分服务器禁用udp,所以排障常用:
traceroute -I 8.8.8.8 #icmp方式(类似ping)traceroute -T 8.8.8.8 #tcp方式(穿透性更强)

traceroute -m 10 www.ifeng.com#-m 10最大追踪10跳

traceroute -n www.ifeng.com#-n = 只显示ip,不反查域名

traceroute -w 2 www.baidu.com#-w 2 =等待2秒

traceroute -q 1 www.baidu.com#-q 1 =每跳只发1个包

traceroute -n 221.12.65.227
如果某一跳显示 * * *说明:
继续看后面跳数:
traceroute -T -n 114.114.114.114
traceroute -I 192.168.2.105很多人看到 * * * 就慌了,其实不一定是故障!
* * * 表示:
只要后面跳数能正常显示,就说明网络是通的。
六、总结
traceroute最常用的五个命令:
traceroute www.baidu.com #基础traceroute -n www.baidu.com #快速不解析域名traceroute -I www.baidu.com #icmp模式traceroute -T www.baidu.com #tcp模式(服务器首选)traceroute -n -T -m 20 8.8.8.8 #最强排障组合
网络排障不用乱猜,一条traceroute就能看清整条链路。相当于链路的ct扫描仪。学会它,你就能快速定位网络问题。traceroute还有一个增强的命令mtr,他是ping和路由追踪的综合体,以后我们再介绍。如果觉得文章对你的运维工作有帮助,记得点赞加关注。