traceroute 是一个网络检测工具, 可以追踪网络封包经过的路由指令。例如当发现浏览一个网站很慢, 使用 traceroute 检查时, 可以显示经过的每一个网络节点, 以及每个节点返回的时间。traceroute 会对经过的网络设备送出封包 3 次, 测试所需的时间, 而返回的时间单位是 ms。(注: 在 Windows 不是用 traceroute, 是用 tracert)
Redhat 及 CentOS 默认没有安装 traceroute, 先用用 yum 安装:
# yum install traceroute -y
之后便可以使用 traceroute, 使用 traceroute 的方法很简单, 只要在 traceroute 后面加上 ip 或 hostname 便可以, 例如:
$ traceroute google.com
执行后会返回类似以下的结果:
|
1 2 3 4 5 6 7 8 9 |
traceroute to google.com (172.217.24.46), 30 hops max, 38 byte packets 1 1-64-94-254.static.netvigator.com (1.64.94.254) 3.896 ms 3.850 ms 4.061 ms 2 10.193.233.85 (10.193.233.85) 4.816 ms 4.639 ms 4.839 ms 3 wtsc3a074.netvigator.com (218.102.40.74) 6.251 ms wtsc3a058.netvigator.com (218.102.40.58) 7.319 ms wtsc3a074.netvigator.com (218.102.40.74) 4.916 ms 4 63-216-176-17.static.pccwglobal.net (63.216.176.17) 10.204 ms 28.223 ms 63-216-176-25.static.pccwglobal.net (63.216.176.25) 30.050 ms 5 72.14.197.48 (72.14.197.48) 19.499 ms 19.393 ms 9.105 ms 6 108.170.241.1 (108.170.241.1) 10.603 ms 108.170.241.33 (108.170.241.33) 6.272 ms 108.170.241.1 (108.170.241.1) 6.092 ms 7 108.170.238.131 (108.170.238.131) 5.946 ms 5.895 ms 5.829 ms 8 hkg07s23-in-f14.1e100.net (172.217.24.46) 6.410 ms 6.252 ms 6.623 ms |
上面看到每经过一个网络设备, 就会有一行纪录, 第一栏 ip 及 hostname, 然后是 3 次测试封包的返回时间。
如果有某一个节点有 packet loss 的情况, 那行会回应 “* * *”,
一般情况 traceroute 用默认值也可以, 以下是 traceroute 一些常见可用的参数。
traceroute 默认会对每个网络设备测试 3 次, 要改变测试次数, 用 -q 参数加上测试次数, 例如:
$ traceroute -q 1 google.com
返回的结果里面, 每个网络设备只有一次测试时间:
|
1 2 3 4 5 6 7 8 9 |
traceroute to google.com (172.217.24.46), 30 hops max, 38 byte packets 1 1-64-94-254.static.netvigator.com (1.64.94.254) 3.836 ms 2 10.193.233.85 (10.193.233.85) 4.810 ms 3 wtsc3a074.netvigator.com (218.102.40.74) 5.016 ms 4 63-216-176-17.static.pccwglobal.net (63.216.176.17) 5.792 ms 5 72.14.197.48 (72.14.197.48) 5.235 ms 6 108.170.241.1 (108.170.241.1) 5.729 ms 7 108.170.238.131 (108.170.238.131) 9.562 ms 8 hkg07s23-in-f14.1e100.net (172.217.24.46) 6.330 ms |
用 IPv6 traceroute, 加上 -6 参数:
$ traceroute -6 ipv6.google.com