Traceroute与tracepath:有何区别?
Traceroute和tracepath都是用于追踪数据从源到目的地路径的关键网络诊断命令行工具,但它们的用途略有不同。
网络诊断的挑战
复杂网络包含由路由器连接的多个网段。这些网段可能全部存在于单个本地部署中,跨越区域或全球广域网,或与云中的虚拟网络结合。排查这些网络问题具有挑战性,特别是因为数据包可能在基础设施中采取不同路径。
当排查网络连接问题时,网络管理员必须了解数据在源节点和目标节点之间采取的路径。每个路由器充当可追踪的路径点,使管理员能够可视化信息在两点之间的传输方式。
Traceroute工具长期以来一直是Linux系统上获取此类信息的首选工具。然而,现代的tracepath命令似乎扮演着相同的角色。本文解释了这两种关键网络命令行命令之间的差异,以及最佳实践和替代网络诊断工具。
如何使用Traceroute
让我们从更传统的traceroute命令开始。运行时,该命令使系统使用互联网控制消息协议数据包报告测试遇到的每个路由器的IP地址。它还提供速度信息,帮助管理员确定网络的某个部分是否缓慢。
更重要的是,traceroute显示路径上连接中断的位置,使网络管理员能够精确定位故障的网段或路由器。网络管理员用于测试连接性的ping命令不会提供此信息;它只会声明连接失败。Traceroute则指示连接失败的位置。
它使用TCP/IP的生存时间值来跟踪跳数。术语"跳"描述路径上的每个点——或每个路由器。
然而,traceroute通常需要提升的权限才能运行。在许多Linux发行版上,无法使用su或sudo提升权限的标准用户无法使用此工具。
如何使用Tracepath
Tracepath的工作方式类似,但与traceroute有两个显著差异。
首先,tracepath命令测量路径上的最大传输单元大小,这有助于管理员识别可能影响性能的数据包分片问题。它提供与traceroute略有不同的网络性能数据。
其次,tracepath通常不需要root权限即可运行,使标准用户能够在无需提升权限的情况下排查网络问题。与traceroute一样,tracepath是大多数Linux发行版上的标准命令。
如何安装Traceroute和Tracepath
大多数Linux发行版已经安装了traceroute。很可能也安装了tracepath。但是,如果系统没有其中任何一个,请使用以下命令安装它们。
如何安装Traceroute
Traceroute通常是一个独立工具。在Debian、Ubuntu及类似系统上,键入以下命令:
|
|
如果使用Red Hat Enterprise Linux、Fedora、Rocky或AlmaLinux,键入:
|
|
如何安装Tracepath
Tracepath通常是称为iputils的更大实用程序包的一部分。 Red Hat衍生系统将接受以下命令:
|
|
Debian、Ubuntu及类似用户可以键入以下命令安装tracepath:
|
|
Traceroute与Tracepath:何时使用
网络管理员应计划使用traceroute收集一般网络路径信息和延迟数据,假设他们在系统上具有root或提升权限。
他们应依赖tracepath获取MTU信息,特别是在排查数据包大小和分片问题时。大多数网络管理员可能不需要为此提升权限,因此它可能是唯一的选择。
Traceroute和Tracepath的替代方案
除了traceroute和tracepath之外,还有几种其他工具有助于使用Linux系统排查网络连接和拥塞问题。示例包括:
- Ping
- My Traceroute
- Nmap
Ping
Traceroute和tracepath与标准的ping故障排除命令不同。Ping指示源设备和目标设备之间是否存在路径。而Traceroute和tracepath则识别该路径。这三者对于网络配置都至关重要。
MTR
MTR结合了traceroute和ping来监控路由并提供实时性能统计信息。它提供稳定的监控反馈,而不是traceroute的单次时间点报告。
键入以下mtr命令和目标IP地址或名称以启动查询:
|
|
Nmap
带有traceroute的Nmap结合了扫描和路由调查,以提供更完整的网络图景。
在网络环境中使用以下命令作为示例:
|
|
网络管理员可以添加许多其他有用的Nmap选项来微调故障排除。
Traceroute和Tracepath的最佳实践
将traceroute和tracepath添加到系统管理员工具箱中,为网络管理员提供了广泛的信息,用于排查最棘手的网络问题。
Windows用户无法访问tracepath。但是,tracert是Linux traceroute的Windows等效工具。macOS管理员也可以访问traceroute,但不包含tracepath。
遵循以下最佳实践以充分利用traceroute和tracepath:
- 尽可能使用IP地址而不是主机名,通过避免DNS名称解析延迟来加速查询
- 在大型网络上调整超时和最大跳数参数
- 向开发人员、高级用户和其他非管理用户展示如何使用tracepath,以避免他们必须提升权限
- 对IPv6网络使用traceroute6和tracepath -6
- 在两个方向上运行探测以获得最完整的结果
- 调查具有延迟或超时(表明网络拥塞)的跳数
- 使用其他网络故障排除工具,包括Windows上的ping、netstat、ip和pathping