在RHEL 8上寻找Traceroute?尝试使用Tracepath
网络诊断是任何网络/系统管理员工作中必不可少的一部分,其中包括分析和解决不同类型的网络问题。
了解网络中两个点之间的IP数据包路径提供了很多对训练有素的人来说非常有用的信息。
一个这样的流行和常用跨平台工具,它有助于网络路径相关的分析和故障排除,是traceroute
。
简单来说,traceroute
通过发送探测数据包(可能是ICMP ECHO或TCP SYN)并监听它们的ICMP“time exceeded”响应,跟踪源和目标之间的IP数据包路径。这些数据包的TTL有意保持为1,并逐渐增加一个,直到我们获得ICMP“端口不可达”的响应,这意味着我们到达了主机或达到了最大值(默认为30跳)。
一个traceroute
的示例输出类似于:
$ traceroute google.com
traceroute to google.com (172.217.169.14), 30 hops max, 60 byte packets
1 140.91.200.22 (140.91.200.22) 0.129 ms 140.91.200.19 (140.91.200.19) 0.151 ms 140.91.200.77 (140.91.200.77) 0.114 ms
2 linxbgp1.iwscloud.com (195.66.226.34) 0.735 ms 0.701 ms 1.024 ms
3 195.66.224.125 (195.66.224.125) 0.603 ms 0.591 ms 0.591 ms
4 108.170.246.129 (108.170.246.129) 0.583 ms 0.745 ms 0.714 ms
5 209.85.241.95 (209.85.241.95) 1.576 ms 209.85.241.93 (209.85.241.93) 1.545 ms 209.85.241.95 (209.85.241.95) 1.520 ms
6 lhr25s26-in-f14.1e100.net (172.217.169.14) 0.584 ms 0.547 ms 0.507 ms
$
默认的traceroute
输出,如上所示,显示了三个数据包的TTL(Time To Live)或往返时间、最大跳数和数据包大小(以字节为单位),以及IP address和解析后的域名(如果可能)。
Traceroute
非常有用,可以确定两个节点之间的响应延迟和路由。此外,它还有助于确定到目标的路由中的故障点。许多firewalls和路由器在互联网上阻止traceroute
消息,因此其输出可能并不总是正确的。
可以通过更改探测消息类型来实现一定程度的解决方法,但这只能在一定程度上帮助绕过此问题。因此,在使用此实用程序时必须牢记这一点。
traceroute
中的一些选项需要具有超级用户权限,以便修改原始数据包。
tracepath命令
Red Hat Enterprise Linux或RHEL 8及其派生的Linux发行版默认不安装traceroute命令。对于习惯于先前版本的Red Hat Linux或CentOS上的traceroute
实用程序的人来说,这可能看起来是一个重大的变化。
但是,在RHEL8上默认情况下有一个同样功能强大的命令可用,名为tracepath
,它具有与其对应的traceroute
类似的功能,并已准备好与操作系统安装一起使用。
此外,tracepath
支持MTU选项,允许检测MTU或最大传输单元值,即tracepath
可以通过网络发送的最大数据包大小。
下面是tracepath
的示例输出:
默认的tracepath
输出如上所示,显示了数据包的TTL(生存时间)或往返时间,通过tracepath
可以发送到网络上的MTU(最大传输单元),以及尽可能解析的域名。
tracepath语法
tracepath
命令的一般用法语法如下:
$ tracepath
#1. 不带标志符的情况下,tracepath
显示到目标的路径如下所示:
$ tracepath 131.153.56.85
1?: [LOCALHOST] pmtu 9000
1: 140.91.200.77 0.226ms asymm 2
1: 140.91.200.79 0.497ms asymm 2
2: 140.91.200.74 0.216ms pmtu 1500
2: oracle-svc071174-lag003319.ip.twelve99-cust.net 0.691ms
3: slou-b1-link.ip.twelve99.net 1.249ms asymm 2
4: ldn-bb4-link.ip.twelve99.net 0.749ms asymm 3
5: nyk-bb1-link.ip.twelve99.net 80.617ms asymm 8
6: rest-bb1-link.ip.twelve99.net 153.250ms asymm 21
7: nyk-bb1-link.ip.twelve99.net 83.084ms asymm 6
8: nash-bb1-link.ip.twelve99.net 280.770ms asymm 9
9: no reply
10: dls-b23-link.ip.twelve99.net 110.820ms asymm 9
11: phx-b1-link.ip.twelve99.net 131.524ms
12: phx-b1-link.ip.twelve99.net 131.632ms asymm 11
13: giglinx-ic305413-phx-b1.ip.twelve99-cust.net 132.583ms asymm 12
14: no reply
15: giglinx-ic305414-phx-b1.ip.twelve99-cust.net 142.685ms asymm 12
16: PHOENIX-NAP.ear3.Chicago2.Level3.net 135.245ms asymm 4
17: no reply
18: no reply
19: speedchi.phoenixnap.com 133.809ms reached
Resume: pmtu 1500 hops 19 back 8
$
#2. 如果你只想打印IP地址,可以使用-n
标志:
#3. 使用-b选项打印主机名和IP地址:
$ tracepath -b 131.153.56.85
1?: [LOCALHOST] pmtu 1500
1: 140.91.200.19 (140.91.200.19) 0.197ms asymm 2
1: 140.91.200.74 (140.91.200.74) 0.141ms asymm 2
2: oracle-svc071175-lag003322.ip.twelve99-cust.net (213.248.98.247) 1.186ms
3: slou-b1-link.ip.twelve99.net (213.248.98.246) 10.273ms asymm 2
4: ldn-bb4-link.ip.twelve99.net (62.115.141.246) 0.941ms asymm 3
5: prs-bb2-link.ip.twelve99.net (62.115.133.239) 141.858ms asymm 20
6: rest-bb1-link.ip.twelve99.net (62.115.141.244) 76.210ms asymm 7
7: no reply
8: rest-bb1-link.ip.twelve99.net (62.115.141.244) 89.209ms asymm 7
9: no reply
10: dls-b23-link.ip.twelve99.net (62.115.136.119) 110.335ms asymm 9
11: phx-b1-link.ip.twelve99.net (62.115.125.97) 132.091ms
12: phx-b1-link.ip.twelve99.net (62.115.125.97) 131.844ms asymm 11
13: giglinx-ic315451-phx-b1.ip.twelve99-cust.net (80.239.195.78) 142.975ms asymm 14
14: no reply
15: no reply
16: PHOENIX-NAP.ear3.Chicago2.Level3.net (4.14.13.150) 135.233ms asymm 4
17: no reply
18: no reply
19: speedchi.phoenixnap.com (131.153.56.85) 133.871ms reached
Resume: pmtu 1500 hops 19 back 8
$
#4. 使用-l选项设置报文长度的自定义值,而不使用tracepath的默认值,即65535,可以使用-l选项指定值:
#5. 我们还可以使用-p标志设置初始目标端口,如下所示:
$ tracepath -p 9000 131.153.56.85
1?:[本地主机] pmtu 1500
1: 140.91.200.18 0.160毫秒不对称 2
1: 140.91.200.74 0.177毫秒不对称 2
2: oracle-svc071175-lag003322.ip.twelve99-cust.net 1.151毫秒
3: slou-b1-link.ip.twelve99.net 1.727毫秒不对称 2
4: 无回复
5: nyk-bb1-link.ip.twelve99.net 81.357毫秒不对称 8
6: rest-bb1-link.ip.twelve99.net 78.325毫秒不对称 7
7: 无回复
8: rest-bb1-link.ip.twelve99.net 87.908毫秒不对称 7
9: 无回复
10: dls-b23-link.ip.twelve99.net 109.797毫秒不对称 9
11: phx-b1-link.ip.twelve99.net 132.036毫秒
12: dls-b23-link.ip.twelve99.net 121.404毫秒不对称 9
13: giglinx-ic315450-phx-b1.ip.twelve99-cust.net 136.322毫秒不对称 12
14: phx-b1-link.ip.twelve99.net 142.596毫秒不对称 11
15: 无回复
16: PHOENIX-NAP.ear3.Chicago2.Level3.net 135.182毫秒不对称 4
17: 无回复
18: 无回复
19: speedchi.phoenixnap.com 133.562毫秒到达
摘要:pmtu 1500跳19回8
$
#6. 最大跳数, 默认为30,可以使用-m标志自定义,如下所示:
请注意,tracepath
不支持像traceroute
那样的提升的超级用户特权,因为它不支持高级数据包修改功能。
概述
本文介绍了traceroute命令的使用方法,以及如何在RHEL8系统中使用tracepath命令执行相同的任务。
要了解更多关于这些命令的信息,请使用相应的手册页。
$ man traceroute
$ man tracepath