当前位置: 首页 > news >正文

老板让我在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点击次数、观看某个视频的时长等等。 数据分析是我们获得需求的来源之一&#xff0c…...

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 ! 直接看效果图&#xff0c;好吧&#xff01; 效果图&#xff1a; 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 支持的数据输入源很多&#xff0c;例如&#xff1a;Kafka、Flume、Twitter、ZeroMQ 和简单的 TCP 套接字…...

从WWDC看苹果产品发展的规律

WWDC 是苹果公司一年一度面向全球开发者的盛会&#xff0c;其主题演讲展现了苹果在产品设计、技术路线、用户体验和生态系统构建上的核心理念与演进脉络。我们借助 ChatGPT Deep Research 工具&#xff0c;对过去十年 WWDC 主题演讲内容进行了系统化分析&#xff0c;形成了这份…...

QMC5883L的驱动

简介 本篇文章的代码已经上传到了github上面&#xff0c;开源代码 作为一个电子罗盘模块&#xff0c;我们可以通过I2C从中获取偏航角yaw&#xff0c;相对于六轴陀螺仪的yaw&#xff0c;qmc5883l几乎不会零飘并且成本较低。 参考资料 QMC5883L磁场传感器驱动 QMC5883L磁力计…...

Swift 协议扩展精进之路:解决 CoreData 托管实体子类的类型不匹配问题(下)

概述 在 Swift 开发语言中&#xff0c;各位秃头小码农们可以充分利用语法本身所带来的便利去劈荆斩棘。我们还可以恣意利用泛型、协议关联类型和协议扩展来进一步简化和优化我们复杂的代码需求。 不过&#xff0c;在涉及到多个子类派生于基类进行多态模拟的场景下&#xff0c;…...

全球首个30米分辨率湿地数据集(2000—2022)

数据简介 今天我们分享的数据是全球30米分辨率湿地数据集&#xff0c;包含8种湿地亚类&#xff0c;该数据以0.5X0.5的瓦片存储&#xff0c;我们整理了所有属于中国的瓦片名称与其对应省份&#xff0c;方便大家研究使用。 该数据集作为全球首个30米分辨率、覆盖2000–2022年时间…...

屋顶变身“发电站” ,中天合创屋面分布式光伏发电项目顺利并网!

5月28日&#xff0c;中天合创屋面分布式光伏发电项目顺利并网发电&#xff0c;该项目位于内蒙古自治区鄂尔多斯市乌审旗&#xff0c;项目利用中天合创聚乙烯、聚丙烯仓库屋面作为场地建设光伏电站&#xff0c;总装机容量为9.96MWp。 项目投运后&#xff0c;每年可节约标煤3670…...

【论文笔记】若干矿井粉尘检测算法概述

总的来说&#xff0c;传统机器学习、传统机器学习与深度学习的结合、LSTM等算法所需要的数据集来源于矿井传感器测量的粉尘浓度&#xff0c;通过建立回归模型来预测未来矿井的粉尘浓度。传统机器学习算法性能易受数据中极端值的影响。YOLO等计算机视觉算法所需要的数据集来源于…...

04-初识css

一、css样式引入 1.1.内部样式 <div style"width: 100px;"></div>1.2.外部样式 1.2.1.外部样式1 <style>.aa {width: 100px;} </style> <div class"aa"></div>1.2.2.外部样式2 <!-- rel内表面引入的是style样…...

Mac下Android Studio扫描根目录卡死问题记录

环境信息 操作系统: macOS 15.5 (Apple M2芯片)Android Studio版本: Meerkat Feature Drop | 2024.3.2 Patch 1 (Build #AI-243.26053.27.2432.13536105, 2025年5月22日构建) 问题现象 在项目开发过程中&#xff0c;提示一个依赖外部头文件的cpp源文件需要同步&#xff0c;点…...

DeepSeek 技术赋能无人农场协同作业:用 AI 重构农田管理 “神经网”

目录 一、引言二、DeepSeek 技术大揭秘2.1 核心架构解析2.2 关键技术剖析 三、智能农业无人农场协同作业现状3.1 发展现状概述3.2 协同作业模式介绍 四、DeepSeek 的 “农场奇妙游”4.1 数据处理与分析4.2 作物生长监测与预测4.3 病虫害防治4.4 农机协同作业调度 五、实际案例大…...

让回归模型不再被异常值“带跑偏“,MSE和Cauchy损失函数在噪声数据环境下的实战对比

在机器学习的回归分析中&#xff0c;损失函数的选择对模型性能具有决定性影响。均方误差&#xff08;MSE&#xff09;作为经典的损失函数&#xff0c;在处理干净数据时表现优异&#xff0c;但在面对包含异常值的噪声数据时&#xff0c;其对大误差的二次惩罚机制往往导致模型参数…...