Linux运维:使用traceroute进行网络诊断

一、traceroute简介

traceroute是一个用于诊断网络故障的工具,它能够显示数据包从源到目的地经过的所有路由器(包括路由器名称和IP地址),并显示每个路由器的响应时间。traceroute的工作原理是向目的地发送一系列数据包,每次将TTL(Time To Live)值设置为逐渐增大的数值,这样当数据包在经过路由器时,TTL值会减少,当TTL值为0时,数据包就会被丢弃并发回来一个“Time Exceeded”消息,这样就能得到每一跳的路由器的IP地址。

二、使用traceroute进行网络诊断

traceroute命令的使用格式为:

traceroute [-FIldnrvx] [-f <第一个TTL>] [-m <最大跳数>] [-p <端口号>] [-q <流量>] [-s <源IP地址>] [-t <type of service>] [-w <超时时间>] [-z <分组大小>] 主机名/IP地址

其中,常用的选项有:

  • -I:使用ICMP Echo请求作为数据包的载荷。
  • -F:设置Do not Fragment标志位,防止数据包在传输时被分片。
  • -l:使用小于数据包默认长度的数据包。
  • -d:启用调试模式,显示SOCKET I/O。
  • -n:直接使用IP地址而不进行DNS解析。
  • -m:指定最大跳数。
  • -p:指定端口号。
  • -q:指定每个跳点要发送的数据包数量。
  • -s:指定源IP地址。
  • -t:指定IP包的Type of Service。
  • -w:指定等待超时的时间。
  • -z:设置每个分组的大小。
  • -v:显示IP地址的具体信息。
  • -x:使用专用IP地址进行扫描,忽略ICMP重定向报文。

三、traceroute实例

1. 普通使用

执行traceroute www.baidu.com命令,可以得到类似以下的结果:

traceroute to www.baidu.com (39.156.69.79), 30 hops max, 60 byte packets
1  192.168.1.1 (192.168.1.1)  1.089 ms  1.298 ms  1.275 ms
2  1.222.178.1 (1.222.178.1)  7.118 ms  7.210 ms  7.329 ms
3  * * *
4  1.222.68.209 (1.222.68.209)  12.829 ms  12.912 ms  13.001 ms
5  1.222.69.30 (1.222.69.30)  17.157 ms  17.221 ms  17.338 ms
6  119.147.218.169 (119.147.218.169)  19.982 ms  20.015 ms  19.997 ms
7  202.97.51.253 (202.97.51.253)  28.971 ms 202.97.34.85 (202.97.34.85)  29.112 ms 202.97.34.89 (202.97.34.89)  29.064 ms
8  218.30.54.186 (218.30.54.186)  28.963 ms 202.97.49.173 (202.97.49.173)  74.891 ms  74.863 ms
9  61.148.56.169 (61.148.56.169)  63.126 ms 61.148.56.161 (61.148.56.161)  64.650 ms  61.148.56.169 (61.148.56.169)  63.119 ms
10  * * *
11  * * *
12  * * *
13  * * *
14  * * *
15  * * *
16  * * *
17  * * *
18  * * *
19  * * *
20  * * *
21  * * *
22  * * *
23  * * *
24  * * *
25  * * *
26  * * *
27  * * *
28  * * *
29  * * *
30  * * *

结果显示,从本机到百度服务器的路径上,经过了多个路由器。第一个数字表示路由器的跳数,下面的IP地址表示经过该路由器时的IP地址。

2. 使用-t指定Type of Service值

执行traceroute -t 10 www.baidu.com命令,使用Type of Service为10的IP包进行网络测试:

traceroute to www.baidu.com (220.181.57.216), 30 hops max, 60 byte packets
1  192.168.1.1 (192.168.1.1)  2.071 ms  2.292 ms  2.269 ms
2  1.222.178.1 (1.222.178.1)  6.641 ms  6.727 ms  6.851 ms
3  * * *
4  1.222.68.209 (1.222.68.209)  12.545 ms  12.628 ms  12.715 ms
5  1.222.69.30 (1.222.69.30)  16.986 ms  17.049 ms  17.171 ms
6  119.147.218.169 (119.147.218.169)  19.546 ms  19.570 ms  19.575 ms
7  202.97.68.105 (202.97.68.105)  29.477 ms 202.97.51.245 (202.97.51.245)  29.620 ms 202.97.34.93 (202.97.34.93)  29.559 ms
8  202.97.61.77 (202.97.61.77)  28.773 ms  28.744 ms 218.30.54.190 (218.30.54.190)  29.248 ms
9  61.148.56.169 (61.148.56.169)  63.751 ms  62.307 ms  62.845 ms
10  * * *
11  * * *
12  * * *
13  * * *
14  * * *
15  * * *
16  * * *
17  * * *
18  * * *
19  * * *
20  * * *
21  * * *
22  * * *
23  * * *
24  * * *
25  * * *
26  * * *
27  * * *
28  * * *
29  * * *
30  * * *

关于Type of Service的具体含义,可以参考RFC 2474。

3. 使用-m指定最大跳数

执行traceroute -m 10 www.baidu.com命令,设置最大跳数为10,即只会跟踪前10个路由器:

traceroute to www.baidu.com (39.156.69.79), 10 hops max, 60 byte packets
1  192.168.1.1 (192.168.1.1)  0.935 ms  1.168 ms  1.144 ms
2  1.222.178.1 (1.222.178.1)  11.002 ms  11.105 ms  11.247 ms
3  * * *
4  1.222.68.209 (1.222.68.209)  16.654 ms  16.736 ms *
5  * * *
6  180.130.250.14 (180.130.250.14)  39.022 ms  39.160 ms 180.149.128.126 (180.149.128.126)  39.381 ms
7  202.97.51.61 (202.97.51.61)  46.259 ms * 202.97.51.85 (202.97.51.85)  49.396 ms
8  * * *
9  39.156.69.79 (39.156.69.79)  58.030 ms * *

可以看到,traceroute只跟踪了前10个路由器,后面的路由器没有被显示出来。

4. 使用-q指定每个跳点要发送的数据包数量

执行traceroute -q 3 www.baidu.com命令,设置每个跳点要发送的数据包数量为3:

traceroute to www.baidu.com (39.156.69.79), 30 hops max, 60 byte packets
1  192.168.1.1 (192.168.1.1)  0.992 ms  1.328 ms  1.304 ms
2  1.222.178.1 (1.222.178.1)  6.918 ms  7.113 ms  7.195 ms
3  * * *
4  1.222.68.209 (1.222.68.209)  13.710 ms  13.803 ms  13.891 ms
5  1.222.69.30 (1.222.69.30)  18.151 ms  18.214 ms  18.338 ms
6  119.147.218.169 (119.147.218.169)  20.956 ms  20.989 ms  20.971 ms
7  202.97.51.245 (202.97.51.245)  28.586 ms  202.97.51.61 (202.97.51.61)  29.673 ms 202.97.34.93 (202.97.34.93)  29.482 ms
8  218.30.54.186 (218.30.54.186)  28.861 ms  201.97.49.173 (201.97.49.173)  74.316 ms  74.287 ms
9  61.148.56.169 (61.148.56.169)  63.316 ms 61.148.56.161 (61.148.56.161)  63.599 ms  62.208 ms
10  * * *
11  * * *
12  * * *
13  * * *
14  * * *
15  * * *
16  * * *
17  * * *
18  * * *
19  * * *
20  * * *
21  * * *
22  * * *
23  * * *
24  * * *
25  * * *
26  * * *
27  * * *
28  * * *
29  * * *
30  * * *

可以看到,traceroute向每个跳点都发送了3个数据包。

四、总结

traceroute是一个非常常用的网络诊断工具,它可以帮助我们找到网络故障的原因。通过对traceroute的学习,我们可以深入了解网络通信的原理和各种路由器的工作方式,为我们的网络诊断工作提供有力的支持。

原创文章,作者:LAIJ,如若转载,请注明出处:https://www.506064.com/n/146462.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
LAIJLAIJ
上一篇 2024-10-31 15:30
下一篇 2024-10-31 15:30

相关推荐

  • 运维Python和GO应用实践指南

    本文将从多个角度详细阐述运维Python和GO的实际应用,包括监控、管理、自动化、部署、持续集成等方面。 一、监控 运维中的监控是保证系统稳定性的重要手段。Python和GO都有强…

    编程 2025-04-29
  • 使用Netzob进行网络协议分析

    Netzob是一款开源的网络协议分析工具。它提供了一套完整的协议分析框架,可以支持多种数据格式的解析和可视化,方便用户对协议数据进行分析和定制。本文将从多个方面对Netzob进行详…

    编程 2025-04-29
  • 微软发布的网络操作系统

    微软发布的网络操作系统指的是Windows Server操作系统及其相关产品,它们被广泛应用于企业级云计算、数据库管理、虚拟化、网络安全等领域。下面将从多个方面对微软发布的网络操作…

    编程 2025-04-28
  • 蒋介石的人际网络

    本文将从多个方面对蒋介石的人际网络进行详细阐述,包括其对政治局势的影响、与他人的关系、以及其在历史上的地位。 一、蒋介石的政治影响 蒋介石是中国现代历史上最具有政治影响力的人物之一…

    编程 2025-04-28
  • 基于tcifs的网络文件共享实现

    tcifs是一种基于TCP/IP协议的文件系统,可以被视为是SMB网络文件共享协议的衍生版本。作为一种开源协议,tcifs在Linux系统中得到广泛应用,可以实现在不同设备之间的文…

    编程 2025-04-28
  • 如何开发一个网络监控系统

    网络监控系统是一种能够实时监控网络中各种设备状态和流量的软件系统,通过对网络流量和设备状态的记录分析,帮助管理员快速地发现和解决网络问题,保障整个网络的稳定性和安全性。开发一套高效…

    编程 2025-04-27
  • 如何在Linux中添加用户并修改配置文件

    本文将从多个方面详细介绍在Linux系统下如何添加新用户并修改配置文件 一、添加新用户 在Linux系统下创建新用户非常简单,只需使用adduser命令即可。使用以下命令添加新用户…

    编程 2025-04-27
  • 用Python爬取网络女神头像

    本文将从以下多个方面详细介绍如何使用Python爬取网络女神头像。 一、准备工作 在进行Python爬虫之前,需要准备以下几个方面的工作: 1、安装Python环境。 sudo a…

    编程 2025-04-27
  • 如何解决linux jar包 invalid or corrupt jarfile问题

    对于许多开发人员和系统管理员在Linux环境下使用Java开发过程中遇到的一个常见的问题是 invalid or corrupt jarfile(无效或损坏的jar文件)错误。当您…

    编程 2025-04-27
  • 网络拓扑图的绘制方法

    在计算机网络的设计和运维中,网络拓扑图是一个非常重要的工具。通过拓扑图,我们可以清晰地了解网络结构、设备分布、链路情况等信息,从而方便进行故障排查、优化调整等操作。但是,要绘制一张…

    编程 2025-04-27

发表回复

登录后才能评论