老板让我在Linux中使用traceroute排查服务器网络问题,幸好我收藏了这篇文章!
一、前言
作为网络工程师或者运维工程师,traceroute命令不会陌生,它的作用类似于ping命令,用于诊断网络的连通性,不过traceroute命令输出的命令会比ping命令丰富的多,可以跟踪从源系统到目标系统的路径。
很多工程师对traceroute命令仅停留在基础使用上,但是在真实的实战过程中,基础操作并不能解决问题。本文我将给大家介绍几个traceroute命令的使用例子,让你完全掌握traceroute命令,让我们直接开始吧!
二、前置知识
在正式介绍命令使用前,请大家看下以下拓扑图:
如图所示,电脑想要访问服务器,期间到底走电脑->R1->R2->R4->服务器
还是走电脑->R1->R3->R4->服务器
,这个是就可以通过traceroute命令实现,这也是traceroute命令的价值所在。
三、在Linux中安装traceroute命令
首先我们通过命令lsb_release -a
看下我们的服务器是什么发行版:
root@ecs-adf0-0003:~# lsb_release -a
No LSB modules are available.
Distributor ID: Ubuntu
Description: Ubuntu 20.04.4 LTS
Release: 20.04
Codename: focal
由输出可知,我们的系统是Ubuntu系统,所以安装traceroute命令如下:
apt install traceroute
安装过程:
如果您的Linux系统发行版是CentOS或者Fedora,可以使用
yum install traceroute
命令。
四、在Linux中使用traceroute命令
4.1 基本用法
traceroute命令最基本的用法是:
traceroute host
命令执行后会显示到达目的地所需的路由器列表。
比如我们traceroute我们的博客网站:
traceroute www.wljslmz.cn
执行结果:
如图所示,我们执行完traceroute www.wljslmz.cn
命令后,看到从我的ecs服务器到达www.wljslmz.cn
所在服务器一共经历了20台路由器,每台路由器响应的时间也都打印下来了。
4.2 更改等待时间
traceroute 中的默认等待时间是 3 秒,这个意思就是,假如有20台路由器,每经历一台路由器默认等待时间是3秒,如果我们想改变这个值,可以加一个参数-w
:
traceroute -w 1 www.wljslmz.cn
执行结果:
4.3 更改收发数据包的数量
默认情况下,traceroute 一次发送 3 个包,假如想更改这个数量,可以使用-q
参数,比如我现在把它改成5个包:
traceroute -q 5 www.wljslmz.cn
执行结果:
由此可见,现在每台路由器收发就变成了5个包了。
4.4 更改最大跳数
所谓跳数就是一次请求经历的路由器的数量,还是这张图:
比如流量走向是电脑->R1->R2->R4->服务器
,那么其跳数是3.
traceroute 中默认单次查询的最大跳数是 30,可以扩展到 255。
如果想要更改这个参数,可以加上-m
参数。
我们上面执行的跳数都是20,我们为了显示出效果,将这个值改为10:
traceroute -m 10 www.wljslmz.cn
执行结果:
可以看到最大跳数改为10以后,原先经历20台路由器,现在输出显示只有10台,参数生效了。
4.5 更改TTL开始值
首先给大家解释一下什么是TTL。
TTL英文全称:Time To Live,翻译成中文就是生存时间,是网络技术中比较常见的专业术语。
如果你使用过ping命令,那么TTL经常会看到:
root@ecs-adf0-0003:~# ping www.wljslmz.cn
执行结果:
TTL,专业点解释就是用于限制数据包在 Internet 传输系统中“存活”的时间,或者说数据包在被丢弃之前在网络中的时间限制。
如果你还是不明白,你就把TTL看作是跳数限制,目的是防止数据包在网络中永远流通,最大 TTL 值为 255。
数据包的 TTL 字段由发送方设置,并由到达目的地的路径上的每个路由器减少,路由器在转发 IP 数据包时将 TTL 值减一,当数据包 TTL 值达到 0 时,路由器将其丢弃并向始发主机发送回ICMP 消息。
这就是TTL的全部解释了,如果还想更深入的了解TTL的底层原理,瑞哥可以后期专门出一篇文章进行解释。
默认情况下,traceroute 将从第一个 TTL 开始,如果想要更改这个值,我们可以使用-f
参数实现:
traceroute -f 8 www.wljslmz.cn
执行结果:
可以看到我们这里是从第8个TTL开始的。
4.6 禁用主机名到 IP 地址的映射
我们在执行traceroute www.wljslmz.cn
命令时,注意箭头所指的位置,会有域名的出现:
现在是因为域名比较少,假如你跟踪的服务器中间路由器涉及到的域名比较多,那么是不便于排查问题的,所以我们需要去除主机名到 IP 地址的映射,可以使用-n
参数:
traceroute -n www.wljslmz.cn
执行结果:
可以看到已经没有域名了。
4.7 更改跟踪路由目的端口
先问大家可以问题:traceroute www.wljslmz.cn
这条命令跟踪的是什么端口?
答案是80端口,如果我们想更改这个目的端口,怎么办?
可以使用-p
参数,比如改成跟踪其2222端口:
traceroute -p 2222 www.wljslmz.cn
执行结果:
4.8 更改最大数据包大小
默认情况下,最大数据包为60字节,如下图箭头所示:
如果我们觉得跟踪的路由器数量比较多,一看就不止60字节,这个时候想调大,可以这样操作:
traceroute www.wljslmz.cn 200
执行结果:
可以看到直接在命令后加入数字即可。
我们尝试执行一下这条命令:
traceroute www.wljslmz.cn 1
猜一下执行结果中,最大数据包大小是多少?
1?
当然不是!
我们看到最终的大小是28字节,也就是说这条命令只能用来限制最大大小,而不是设置多大,包就被过滤了,28字节是跟踪包的最小大小,你设置的值小于这个大小,那么不管用!
4.9 启用ipv4跟踪
traceroute -4 www.wljslmz.cn
执行结果:
4.10 启用ipv6跟踪
traceroute -6 www.wljslmz.cn
执行结果:
说明我们的网站未支持ipv6.
4.11 使用ICMP ECHO
默认情况下,traceroute 命令使用 UDP 端口进行跟踪路由,要使用 ICMP ECHO,可以结合参数-I
:
traceroute -I www.wljslmz.cn
执行结果:
4.12 将traceroute信息保存到文件
这个跟traceroute命令本身没有太大关系,有时候我们需要将traceroute的信息离线分析,这个时候就需要将traceroute返回信息持久化,我们可以使用以下命令:
traceroute www.wljslmz.cn > wljslmz.txt
执行结果:
我们通过命令more wljslmz.txt
来看下这个wljslmz.txt文件:
五、总结
traceroute 命令是一个有用且易于运行的网络诊断工具,本文给大家介绍了12个traceroute 命令示例,希望本文能够对您使用traceroute 命令有所帮助,如果有问题可以在下方评论区与我讨论!
相关文章:
老板让我在Linux中使用traceroute排查服务器网络问题,幸好我收藏了这篇文章!
一、前言 作为网络工程师或者运维工程师,traceroute命令不会陌生,它的作用类似于ping命令,用于诊断网络的连通性,不过traceroute命令输出的命令会比ping命令丰富的多,可以跟踪从源系统到目标系统的路径。 很多工程师…...
一文读懂【数据埋点】
数据埋点是数据采集领域(尤其是用户行为数据采集领域)的术语,指的是针对特定用户行为或事件进行捕获、处理和发送的相关技术及其实施过程。比如用户某个icon点击次数、观看某个视频的时长等等。 数据分析是我们获得需求的来源之一,…...
Qt图片定时滚动播放器+透明过渡动画
目录参考结构PicturePlay.promain.cppmyqlabel.h 自定义QLabelmyqlabel.cpp自定义QLabelpictureplay.hpictureplay.cpppictureplay.uistyle.qss效果源码参考 Qt图片浏览器 QT制作一个图片播放器 Qt中自适应的labelpixmap充满窗口后,无法缩小只能放大 Qt的动画类修改…...
手把手带你做一套毕业设计-征程开启
本文是《手把手带你做一套毕业设计》专栏的开篇,文本将会包含我们创作这个专栏的初衷,专栏的主体内容,以及我们专栏的后续规划。关于这套毕业设计的作者呢前端部分由狗哥负责,服务端部分则由天哥操刀。我们力求毕业生或者新手通过…...
万字解析 Linux 中 CPU 利用率是如何算出来的?
在线上服务器观察线上服务运行状态的时候,绝大多数人都是喜欢先用 top 命令看看当前系统的整体 cpu 利用率。例如,随手拿来的一台机器,top 命令显示的利用率信息如下 这个输出结果说简单也简单,说复杂也不是那么容易就能全部搞明白…...
芯驰(E3-gateway)开发板环境搭建
1-Windows下环境配置 可以在Windows上使用命令行或者IAR IDE编译SSDK项目。Windows编译依赖的工具已经包含在 prebuilts/windows 目录中,包括编译器、Python和命令行工具。 1.1.1 CMD SSDK集成 msys 工具,可以在Windows命令行中完成SDK的配置、编译和…...
HiveSql一天一个小技巧:如何巧用分布函数percent_rank()求去掉最大最小值的平均薪水问题
0 问题描述参考链接(3条消息) HiveSql面试题12--如何分析去掉最大最小值的平均薪水(字节跳动)_莫叫石榴姐的博客-CSDN博客文中已经给出了三种解法,这里我们借助于此题,来研究如何用percent_rank()函数求解,简化解题思路…...
【python实现华为OD机试真题】优雅子数组【2023 Q1 | 200分】
题目描述 如果一个数组Q中出现次数最多的元素出现大于等于K次,被称为k-优雅数组,k也可以被称为优雅阈值只。 例如: 数组1,2, 3, 1、2, 3, 1,它是一个3-优雅数组,因为元素1出现次数大于等于3次, 数组[1,2, 3, 1, 2]就不是一一个3-优雅数组,因为其中出现次数最多的元素是1和…...
九种分布式ID解决方案
文章目录背景1、UUID2、数据库自增ID2.1、主键表2.2、ID自增步长设置3、号段模式4、Redis INCR5、雪花算法6、美团(Leaf)7、百度(Uidgenerator)8、滴滴(TinyID)总结比较背景 在复杂的分布式系统中,往往需要对大量的数据进行唯一标识,比如在对一个订单表…...
RocketMQ源码分析
RocketMQ源码深入剖析 1 RocketMQ介绍 RocketMQ 是阿里巴巴集团基于高可用分布式集群技术,自主研发的云正式商用的专业消息中间件,既可为分布式应用系统提供异步解耦和削峰填谷的能力,同时也具备互联网应用所需的海量消息堆积、高吞吐、可靠…...
跟着我从零开始入门FPGA(一周入门系列)第六天
6、有限状态机状态机,只要C代码写过2年的人,估计无人不识君,稍微复杂的逻辑都可以借助状态机来简化问题。为了方便,我们使用前面用过的一个例子,来说明状态机的应用,也就是说我们前面已经有意无意的用过状态…...
2023最新JVM面试题汇总进大厂必备
JVM 面试题汇总 1.什么是 JVM?它有什么作用? 答:JVM 是 Java Virtual Machine(Java 虚拟机)的缩写,顾名思义它是一个虚 拟计算机,也是 Java 程序能够实现跨平台的基础。它的作用是加载 Java 程…...
Cocoa-presentViewController
presentViewController:animator: 将一个viewController以动画方式显示出来 当VCA模态的弹出了VCB,那么VCA就是presenting view controller,VCB就是presented view controller presentViewController 相较于addSubView 直接作为subView就是不会出现一…...
Vue Mixins
Vue Mixins 详解 Vue.js 是一个非常流行的 JavaScript 框架,它提供了一系列的工具来简化 Web 应用程序的开发。其中一个非常有用的工具就是 Mixins。 什么是 Mixins? Mixins 是一种 Vue.js 组件复用的方法,它允许您将一组组件选项合并到一…...
Django-版本信息介绍-版本选择
文章目录1.如何获取Django1.1.选项1:获取最新的正式版本1.2.选项2:获取4.2的beta版1.3.选项3:获取最新的开发版本2.得到之后3.支持版本4.选择版本1.如何获取Django Django在BSD许可下是开源的。我们建议使用最新版本的Python 3。支持Python 2.7的最新版本是Django 1.11 LTS。请…...
写给交互设计新手的信息架构全方位指南
目录什么是信息架构?通用方法日常工作可以关注的大神常用工具相关书籍什么是信息架构?信息架构是一个比众多其他领域更难定义的领域。内容策划由内容策划师来完成,交互设计由设计师来完成,而信息架构的完成与它们不同,…...
15、主从复制,gtid,并行复制,半同步复制,实操案例,常用命令,故障处理
主从复制,gtid,并行复制,半同步复制,实操案例,常用命令,故障处理 1.认识主从复制1.1 主从复制原理深入讲解1.2 主从复制相关参数1.3.主从复制架构部署1.4从库状态详解1.5 .过滤复制2 .gtid复制2.1 什么是GTID?2.2 GTID主从配置2.5 gtid维护2.4 GTID的特点2.3 工作原理2.4 g…...
【C语言】实现文件内容映射转移
有两个文件(QA,与QB)。 文件A是经过了字母映射加密的文本(将英文字母一一映射成了另一个), 文件B是字母映射的关系表(格式如A-c;B-R;…,其中前一个字母为加密前的),编写程…...
html css输入框获得焦点、失去焦点效果
input输入框获得焦点、失去焦点效果 废话shao shuo ! 直接看效果图,好吧! 效果图: code: <!DOCTYPE html> <html> <head><title></title><meta charset"utf-8" /><style type"text…...
Spark Streaming
第1章 SparkStreaming 概述1.1 Spark Streaming 是什么Spark 流使得构建可扩展的容错流应用程序变得更加容易。**Spark Streaming 用于流式数据的处理。**Spark Streaming 支持的数据输入源很多,例如:Kafka、Flume、Twitter、ZeroMQ 和简单的 TCP 套接字…...
[kubernetes]-k8s通过psp限制nvidia-plugin插件的使用
导语: k8s通过psp限制nvidia-plugin插件的使用。刚开始接触psp 记录一下 后续投入生产测试了再完善。 通过apiserver开启psp 静态pod会自动更新 # PSP(Pod Security Policy) 在默认情况下并不会开启。通过将PodSecurityPolicy关键词添加到 --enbale-admission-plu…...
简单易懂又非常牛逼的Spring源码解析,推断构造与bean的实例化
简单易懂又非常牛逼的Spring源码解析,推断构造与bean的实例化原理解析实例化bean的入口工厂方法实例化推断构造初次筛选二次筛选bean的实例化代码走读实例化bean的入口createBeanInstance方法内部的流程推断构造初次筛选二次筛选bean的实例化总结往期文章࿱…...
Win11的两个实用技巧系列清理磁盘碎片、设置系统还原点的方法
Win11如何清理磁盘碎片?Win11清理磁盘碎片的方法磁盘碎片过多,会影响电脑的运行速度,所以需要定期清理,这篇文章将以Win11为例,给大家分享的整理磁盘碎片方法相信很多用户都会发现,随着电脑使用时间的增加,…...
嵌入式 STM32 红外遥控
目录 红外遥控 NEC码的位定义 硬件设计 软件设计 源码程序 红外遥控 红外遥控是一种无线、非接触控制技术,具有抗干扰能力强,信息传输可靠,功耗低,成本低,容易实现等显著的特点,被诸多电子设备特别…...
【java web篇】使用JDBC操作数据库
📋 个人简介 💖 作者简介:大家好,我是阿牛,全栈领域优质创作者。😜📝 个人主页:馆主阿牛🔥🎉 支持我:点赞👍收藏⭐️留言Ὅ…...
华为OD机试题,用 Java 解【最小步骤数】问题
最近更新的博客 华为OD机试题,用 Java 解【停车场车辆统计】问题华为OD机试题,用 Java 解【字符串变换最小字符串】问题华为OD机试题,用 Java 解【计算最大乘积】问题华为OD机试题,用 Java 解【DNA 序列】问题华为OD机试 - 组成最大数(Java) | 机试题算法思路 【2023】使…...
JAVA中 throw 和 throws 的区别含案例
JAVA中 throw 和 throws 的区别含案例 在 Java 中,throw 和 throws 是两个关键字,它们用于处理异常。 throw 关键字用于抛出一个异常对象。一旦抛出异常,程序将停止执行当前方法的剩余代码,并尝试寻找与该异常匹配的 catch 块来…...
基于SpringCloud的可靠消息最终一致性05:保存并发送事务消息
在有了分布式事务的解决方案、项目的需求、骨架代码和基础代码,做好了所有的准备工作之后,接下来就可以继续深入了解「核心业务」了。 在前面了解分布式事务时,可靠消息最终一致性方案的流程图是这样的: 图三十一:可靠消息最终一致性 整个的流程是: 1、业务处理服务在事务…...
SQL语句大全(详解)
SQL前言1 DDL1.1 显示所包含的数据库1.2 创建数据库1.3 删除数据库1.4 使用数据库1.4.1 创建表1.4.2 查看表的结构1.4.3 查看当前数据库下的所有表1.4.4 基础的增删改查1.4.4.1 删除表1.4.4.2 添加列1.4.4.3 修改表名1.4.4.4 修改数据类型1.4.4.5 修改列名和数据类型2 DML2.1 给…...
视频营销活动中7个常见的错误
如今,越来越多的企业在社交媒体平台上开展视频营销活动。与其他传统营销策略不同,视频营销可以为企业带来更多的销售机会。随着越来越多的视频社交媒体平台的出现,营销人员更应该抓住这个机会。但在开始视频创作之前,您需要有一个…...
网站如何做301转向/广州外包网络推广公司
如果想了解更多的知识,可以去我的机器学习之路 The Road To Machine Learning通道 多元函数的泰勒展开Talor以及黑塞矩阵 在学最优化的时候,会遇到很多多元函数的泰勒展开,且很多都是以矩阵形式写的,为了理解更好一点࿰…...
网站制作论文致谢/推广代理登录页面
实体造型 计算机造型:如何在计算机中建立模型表示不同图形对象。 图形对象的描述包括图形信息和非图形信息。 (1)图形信息又分为几何信息和拓扑信息。几何信息包括形体位置和大小,拓扑信息包括形体点、边、面的数量及相互之间的连…...
淮北哪里做网站/关键词是网站seo的核心工作
具有密度函数 的分布叫做拉普拉斯分布;是位置参数, 是尺度参数。拉普拉斯分布的期望为 ,方差为 ,偏度为0,峰度为3。拉普拉斯分布的密度函数,可以看作是两个指数分布函数的概率密度“背靠背”拼接在一起。&a…...
建设网站群的好处/aso平台
Javascript语言的执行环境是”单线程”(single thread)。 所谓”单线程”,就是指一次只能完成一件任务。如果有多个任务,就必须排队,前面一个任务完成,再执行后面一个任务,以此类推。 这种模式…...
珠海房地产网站建设/网络营销推广的渠道有哪些
返回“我的文档”路径字符串 Environment.GetFolderPath(Environment.SpecialFolder.Personal)本技巧使用GetFolderPath方法来获取指向由指定枚举标识的系统特殊文件夹的路径。语法格式如下: public static string GetFolderPath (SpecialFolder folder) 参数folder…...
中山做外贸网站/域名查询网入口
transaction概念 一个transfer中有一个或者多个transaction bulk传输中的transaction 一个bulk transfer out transaction由OUT token, DATA token和ACK token构成 一个bulk transfer in transaction由IN token, DATA token和ACK token构成 control传输中的transaction 只有…...