traceroute命令这样用,追踪主机路由没烦恼

news2024/11/22 22:42:00

号主:老杨丨11年资深网络工程师,更多网工提升干货,请关注公众号:网络工程师俱乐部

晚上好,我的网工朋友。

网络的稳定性和可靠性对于业务连续性至关重要。当涉及到网络连接问题时,有一个强大的工具就是 traceroute 命令。
traceroute 是一个用于跟踪数据包从源主机到目标主机所经过的路径的强大工具。
它可以帮助我们了解数据包在网络中的传播方式,从而诊断连接问题、定位网络瓶颈、发现潜在的安全漏洞等。
今天就来讲讲traceroute 命令,怎么用好traceroute 命令。

今日文章阅读福利:《 网络工程师基本配置命令大全 

不管心态如何变化,技术依旧是自己手里最有力的武器。私信发送暗号“配置命令”,即可获取技术之路一把好武器。

01 traceroute概述

traceroute 是一个用于跟踪数据包从源主机到目标主机所经过路径的网络诊断工具。

通过发送一系列带有递增生存时间(Time to Live, TTL)值的数据包到目标主机,traceroute 能够揭示数据包在网络中的传播路径,这有助于网络工程师诊断网络问题和了解网络结构。

01 工作原理

traceroute 的工作原理基于ICMP(Internet Control Message Protocol)协议。当数据包到达某个路由器时,如果该路由器检测到数据包的TTL值为0,则会向发送方返回一个ICMP超时消息,并丢弃该数据包。发送方可以根据这些超时消息来确定数据包经过的每个路由器。

初始化: traceroute 从源主机开始,发送一个带有最小TTL值(通常是1)的数据包到目标主机。

递增TTL: 每次发送新的数据包时,都会增加TTL值,直到达到目标主机。

超时消息: 当数据包到达一个路由器时,如果TTL值为0,路由器会向源主机发送一个ICMP超时消息。

记录路径: 源主机记录下这些超时消息中包含的路由器IP地址。

到达目标: 当数据包成功到达目标主机时,目标主机通常会响应一个ICMP回应请求或ICMP端口不可达消息,这表示数据包已经到达目的地。

dd6795d50377e05348ea0711db2e8fc5.jpeg

02 基本步骤

01 启动 traceroute

要在命令行中启动 traceroute,您需要打开终端或命令提示符窗口,并输入以下命令:

Unix/Linux:

03c9ca33149617a31628b5c5932fbebb.jpeg

Windows (使用 tracert):

3a2bc35dbe27f74e62915a498142900a.jpeg

其中 <hostname or IP address> 是您想要追踪的目标主机的名称或IP地址。[options] 表示可选的命令行参数,我们将在后续章节中详细讨论。

02 输出的基本格式

跳数:每一行代表一个跳数(hop),即数据包经过的一个路由器。

星号 (*):如果 traceroute 收不到任何回应,通常会显示星号表示超时。

IP 地址:显示经过的路由器的IP地址。

域名:如果可能的话,traceroute 会尝试解析IP地址对应的域名。

往返时间 (RTT):从源主机到该路由器再返回的时间,以毫秒(ms)为单位。

如何解读 traceroute 输出

  • 跳数 1:通常表示本地路由器或网关。

  • 跳数 2:可能是ISP的边缘路由器。

  • 跳数 3 及以上:这些通常是ISP之间的路由器,或者是目标网络的边缘路由器。

03 高级用法

01 指定最大跳数

默认情况下,traceroute 会追踪到目标主机或达到最大跳数为止。您可以使用 -m 或 --max-hop 参数来指定最大跳数,这对于避免不必要的超时或限制追踪范围非常有用。

Unix/Linux:

4ccf041d884a11d5dbeac1f3f75d26e2.jpeg

Windows:

4fc8e3e4e06f190cc7eb1302b43f751e.jpeg

例如,如果您想将最大跳数限制为 10:

Unix/Linux:

f66d313c1f37cdf32fb49b666c4f6c06.jpeg

Windows:

001bc91dc2ebad49825f6a4995a8a738.jpeg

02 设置不同的数据包大小

traceroute 默认使用的是较小的数据包,这可能会导致某些路由器不响应。通过增大数据包的大小,有时可以提高响应率。您可以使用 -l 或 --ttl-packet-size 参数来设置数据包的大小。

Unix/Linux:

d979bd5d7d971261b422fd3d0b919495.jpeg

Windows:

14eedc1ff62366185bdc24c5118f3c0a.jpeg

例如,如果您想将数据包大小设置为 1000 字节:

Unix/Linux:

52d16abd90adf245374a85ce145d2348.jpeg

Windows:

a57f433f75e9a5d3e5f53905984f8fe7.jpeg

请注意,不是所有的操作系统都支持 -l 参数,有些系统可能需要使用 -b 参数来设置数据包大小。

03 使用 UDP 或其他协议进行追踪

默认情况下,traceroute 使用 ICMP 协议。但在某些情况下,您可能希望使用 UDP 或 TCP 进行追踪,特别是在调试特定的应用程序或服务时。

Unix/Linux:

76030c5ca1a9bda459ce63e4cf57faed.jpeg

Windows:

cfa1ec06d1695a2085bc9a3f2893a6b6.jpeg

请注意,Windows 版本的 tracert 不支持使用 UDP 或 TCP 进行追踪。

04 过滤或排除特定路由器

有时候您可能需要绕过某些路由器,这可以通过使用 -w 参数来指定等待时间来实现,或者通过 -i 参数指定特定的接口来间接实现。

Unix/Linux:

72be640383ca1c88db0c2f9ae57888a5.jpeg

Windows:

268c25e5599bfb55b6330dce7278e08b.jpeg

例如,如果您想将等待时间设置为 5 秒:

Unix/Linux:

bd42661a30837094f10ff6b71ae3f41a.jpeg

Windows:

1c08935fb3b8033f1c9270ec4b4dbb69.jpeg

04 故障排除技巧

01 识别常见的网络问题

超时:当 traceroute 输出中出现连续的星号 (*) 时,这通常表示数据包在网络中的某处遇到了问题,如路由表配置错误或设备故障。

高延迟:如果某个跳数的往返时间(RTT)显著高于正常值,这可能是由于网络拥塞或设备性能问题。

路由循环:当 traceroute 的输出显示出数据包在两个或多个路由器之间来回跳转时,这表明存在路由循环问题。

不一致的路径:当从不同位置运行 traceroute 时,如果到达同一目标的路径不同,这可能是由于负载均衡或多条可用路径的存在。

使用 traceroute 来定位网络延迟的来源

如果您遇到网络延迟问题,可以使用 traceroute 来追踪延迟较高的跳数,从而定位问题所在。

例如,如果第 5 跳的 RTT 显著高于其他跳数,那么这可能是网络延迟的源头。您可以进一步调查该跳点的路由器配置和性能状态。

02 解决路由循环问题的方法

路由循环通常发生在路由器之间的路由表配置不正确时。如果您发现了路由循环问题,可以尝试以下方法:

  • 检查路由表:确保所有路由器上的路由表配置正确,没有重复的路由条目。

  • 更新路由协议:如果使用动态路由协议(如 OSPF 或 BGP),确保这些协议正确配置并且没有形成环路。

  • 重启路由器:有时简单的重启可以解决暂时性的路由循环问题。

03 处理超时和其他错误消息

当 traceroute 返回超时或其他错误消息时,您可以尝试以下步骤:

  • 检查网络连接:确保网络连接正常,没有物理层的问题。

  • 使用备用路径:如果可能的话,尝试使用不同的路由器或接口来绕过疑似有问题的设备。

  • 联系服务提供商:如果是ISP的问题,及时与服务提供商沟通,寻求技术支持。

原创:老杨丨11年资深网络工程师,更多网工提升干货,请关注公众号:网络工程师俱乐部

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2076945.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Certum Domain Validation CA SHA2

Certum是波兰的一家数字证书厂家&#xff0c;该机构也是目前世界第四家兼容性在99%机构&#xff08;包括历史版本浏览器&#xff09;&#xff0c;目前在国内有授权提供商&#xff1a;Gworg提供签发和认证&#xff0c;拥有二级代理划分&#xff0c;适合长期做SSL证书业务或者集成…

年薪100K入职字节测试岗现在分享下我常背的软件测试面试题

800道软件测试面试真题&#xff0c;高清打印版打包带走&#xff0c;横扫软件测试面试高频问题&#xff0c;涵盖测试理论、Linux、MySQL、Web测试、接口测试、APP测试、Python、Selenium、性能测试、LordRunner、计算机网络、数据结构与算法、逻辑思维、人力资源等模块面试题&am…

Linux文件编程(系统API调用)

文章目录 Linux文件编程标注C的IO缓存类型代码示例--缓存区的存在 文件I/O系统调用标准C库关于文件的输入输出函数FILE结构体文件描述符文件描述符与文件指针的相互转换 系统调用常用函数open函数&#xff08;打开或者创建文件&#xff09;creat函数&#xff08;创建一个现有文…

JAVA-封装

目录 一、封装的概念 二、封装扩展之包 1. 包的概念 2.导入包中的类 3.自定义包 4.常见的包 三、访问限定符 在同一包中&#xff1a; 在不同包中&#xff1a;​编辑 一、封装的概念 面向对象程序三大特性&#xff1a;封装、继承、多态。而类和对象阶段&#xff0c;主…

ESP32修改分区表

修改分区表 官方参考 在工程目录文件夹新建分区表&#xff0c;参考官方的写就行&#xff0c;我这里改成了8M的FLASH&#xff0c;所以新建的分区表为名字是 default_8MB.csv &#xff0c;内容如下&#xff1a; # Name, Type, SubType, Offset, Size, Flags nvs, data, …

后端微服务与分布式系统

编写一篇关于后端微服务和分布式系统的文档&#xff0c;需要详细讨论微服务架构的核心概念、优缺点、关键技术&#xff0c;以及在分布式系统中的应用。以下是文档的大纲和内容概述&#xff1a; 后端微服务与分布式系统 1. 简介 微服务架构是一种将大型应用程序分解为一系列小…

leetCode - - - 二叉树

目录​​​​​​​ 1.前中后序遍历&#xff08;递归&#xff09; 2.前中后序遍历&#xff08;迭代&#xff09; 3.翻转二叉树&#xff08;LeetCode 226&#xff09; 4.最大二叉树&#xff08; LeetCode 654 &#xff09; 5.平衡二叉树&#xff08; LeetCode 110 &#xf…

02- javascript 高阶-构造函数(知识点)呀

目录 1.构造函数 1.1 JS构造函数的实例成员和静态成员 1.1.1实例成员 1.1.2静态成员 1.2构造函数原型prototype 1.3对象原型 1.4 constructor构造函数 1.5原型链 1.6构造函数实例和原型对象三角关系 1.7原型链和成员的查找机制 1.7.1 Object.prototype.hasOwnPropert…

WEB渗透Win提权篇-提权工具合集

提权工具合集包&#xff1a; 夸克网盘分享 往期文章 WEB渗透Win提权篇-RDP&Firewall-CSDN博客 WEB渗透Win提权篇-MSSQL-CSDN博客 WEB渗透Win提权篇-MYSQL-udf-CSDN博客 WEB渗透Win提权篇-AccountSpoofing-CSDN博客 WEB渗透Win提权篇-弱权限提权-CSDN博客 Tools合集 工…

UVa1670/LA5920 Kingdom Roadmap

UVa1670/LA5920 Kingdom Roadmap 题目链接题意分析AC 代码 题目链接 本题是2011年icpc欧洲区域赛东北欧赛区的K题 题意 输入一个n&#xff08;n≤100000&#xff09;个结点的树&#xff0c;添加尽量少的边&#xff0c;使得任意删除一条边之后图仍然连通。如下图所示&#xff0…

如果是你,你会背叛师门吗?看了凌晨一点杭州隧道里睡满的外卖员,我觉得李佳琦被骂一点也不冤——早读(逆天打工人爬取热门微信文章解读)

如果是你&#xff0c;你会背叛师门吗&#xff1f;&#xff1f; 引言Python 代码第一篇 洞见 看了凌晨一点杭州隧道里睡满的外卖员&#xff0c;我觉得李佳琦被骂一点也不冤第二篇 股市风云结尾 (先不论人品如何&#xff0c;这个问题就有点类似董宇辉跟新东方&#xff0c;大伙且看…

Java学习第一天

Java介绍&#xff1a; Java是一种高级编程语言&#xff1b;由sun公司研发&#xff0c;之后被Oracle公司收购&#xff1b;Java之父是詹姆斯.高斯林&#xff1b;Java什么都能做但主要用于企业互联网系统的开发&#xff1b;包括JavaSE&#xff08;标准版&#xff09;、JavaEE&…

C程序设计——表达式的值0

表达式 表达式是一组序列&#xff0c;由操作符或操作数组成。 表达式的值 C语言中&#xff0c;所有的表达式&#xff0c;都是有值的&#xff0c;所以本节专门讲讲表达式的值。 算数表达式 算数表达式的值&#xff0c;就是算数运算的结果&#xff0c;比如表达式 1 1的值就…

Threejs三要素及demo

本文目录 前言一、threejs三要素1.1 场景Scene1.2 相机Camera1.3 渲染器Renderer1.4 项目构建准备 二、安装Threejs2.1 编写代码 前言 Three.js是一个在 MIT 许可下的 JavaScript 库&#xff0c;它在 WebGL 之上运行。这个库的目标就是简化处理3D内容的过程。它是一个WebGL引擎…

【Linux】第一次使用linux向gitee上提交代码

1.首先要在gitee上新建一个仓库 2.然后&#xff0c;复制https的仓库链接 3. 三板斧 第一斧 git add . 4.三板斧 第二斧 git commit -m ‘日志’ 5.三板斧 第三斧 git push

QQ官方BOT 机器人Python实现群聊本地图片【base64编码】上传及其发送

参考&#xff1a;实现群聊本地图片【base64编码】上传及其发送 by SlieFamily 拉取请求 #199 腾讯连接/Botpy (github.com) 首先找到api.py&#xff0c;如果你是通过pip安装的botpy。找到包对应的地址&#xff0c;如果是clone的&#xff0c;也直接找到api.py。 打开后&#xff…

io进程----文件io

目录 一丶概念 二丶特点 三丶函数 1.打开文件 open 2.关闭文件 close 3.读取文件 read 4.写入文件 write 5.文件定位操作 标准IO和文件IO区别 四丶获取文件属性 1.stat函数 2.获取文件类型 五丶目录操作 一丶概念 在posix(可移植操作系统接口)中定义的一组输入输出…

STC89C52 定时器浅谈

文章目录 1、定时器1.1 定时器简介1.2 定时器构成1.2.1 系统时钟1.2.2 计数单元1.2.3 中断系统 1.2 定时器0/1的相关寄存器1.2.1 TMOD1.2.2 TCON 1.3 初始化定时器0 1、定时器 1.1 定时器简介 定时器&#xff0c;又称为计数器&#xff0c;是51单片机的内部资源&#xff0c;即…

16、CPU缓存架构

CPU缓存架构 CPU缓存架构详解CPU高速缓存概念CPU多核缓存架构CPU多核缓存架构缓存一致性问题分析 CPU缓存架构缓存一致性的解决方案缓存一致性协议实现原理总线窥探工作原理窥探协议类型 缓存一致性协议MESI协议 伪共享的问题linux下查看Cache Line大小避免伪共享方案 CPU缓存架…

netty编程之实现HTTP服务

写在前面 http是应用层协议&#xff0c;是我们日常开发中直接用到最多的协议了。本文来看下通过netty如何实现。 1&#xff1a;程序 netty不仅仅提供了String相关的编解码器&#xff0c;还贴心的提供了http相关的编码器和解码器&#xff0c;直接拿来用就行了&#xff0c;所以…