linux网络95值工具,Linux下网络故障排查工具之ping|traceroute和tcptraceroute|mtr工具[通俗易懂]

linux网络95值工具,Linux下网络故障排查工具之ping|traceroute和tcptraceroute|mtr工具[通俗易懂]服务器运维人员在日常运维服务器的过程中经常会遇到服务器网络故障,有服务器硬件造成的,也有服务商网络问题造成的,也有区域网络问题造成的,这个时候就需要用到ping,traceroute,mtr这三个命令1、ping最简单的网络请求反馈命令ping使用了ICMP回送请求和回送应答报文。ping工具发出去的数据包没有通过tcp/udp协议,但是要经过ip协议。ping命令计算的时间是数据包的往返总时间…

大家好,又见面了,我是你们的朋友全栈君。

服务器运维人员在日常运维服务器的过程中经常会遇到服务器网络故障,有服务器硬件造成的,也有服务商网络问题造成的,也有区域网络问题造成的,这个时候就需要用到ping,traceroute,mtr这三个命令

1、ping 最简单的网络请求反馈命令

ping使用了ICMP回送请求和回送应答报文。ping工具发出去的数据包没有通过tcp/udp协议,但是要经过ip协议。ping命令计算的时间是数据包的往返总时间。

ping命令常用的选项如下:-c num  表示使用ping发出去num个数据包

-d 使用Socket的SO_DEBUG功能。

-f  极限检测。大量且快速地送网络封包给一台机器,看它的回应。快速ping,Flood ping,发送接收ICMP Echo报文的频率快了非常多

-n 只输出IP,表示ping的输出中包含主机信息的都用ip表示,不在进行ip和主机名之间的映射,那样ping的响应速度会更快。

-q 不显示任何传送封包的信息,只显示最后的结果。

-r 忽略普通的Routing Table,直接将数据包送到远端主机上。通常是查看本机的网络接口是否有问题。

-R 记录路由过程。

-v 详细显示指令的执行过程。

-c 数目:在发送指定数目的包后停止。LINUX的ping不会自动终止如果不指定这个参数就需要手动按ctrl+c终止

-i 秒数:设定间隔几秒送一个网络封包给一台机器,预设值是一秒送一次。

-I 网络界面:使用指定的网络界面送出数据包。

-l 前置载入:设置在送出要求信息之前,先行发出的数据包。

-p 范本样式:设置填满数据包的范本样式。

-s packetsize 字节数:指定发送的数据字节数,预设值是56,加上8字节的ICMP头,一共是64ICMP数据字节。

-t 存活数值:设置存活数值TTL的大小。设定数据包在网络上传输的Time To Live(TTL)生命周期

举例:ping -c 3 -s 512 www.bnxb.com     #表示向www.bnxb.com发送3个512B大小的数据包,来进行网络探测

ping -f www.bnxb.com    #快速ping

2.traceroute和tcptraceroute 路由追踪命令

traceroute也是使用ICMP协议,使用了ICMP的时间超过差错差错报告报文以及ICMP终点不可达报文。

tcptraceroute则是使用tcp协议,现代网络广泛使用防火墙,导致传统路由跟踪工具发出的(ICMP应答(ICMP

echo)或UDP)数据包都被过滤掉了,所以无法进行完整的路由跟踪。尽管如此,许多情况下,防火墙会准许反向(inbound)TCP数据包通过防火墙到达指定端口,这些端口是主机内防火墙背后的一些程序和外界连接用的。通过发送TCP

SYN数据包来代替UDP或者ICMP应答数据包,tcptraceroute可以穿透大多数防火墙。

traceroute和tcptraceroute原理为:

常规的traceroute和tcptraceroute具有相同的工作原理:

发送一个TTL(Time-To-Live)相当小的包,TTL经过每一跳时会递减。当它减为0时,数据包就被丢弃。

当TTL失效后,看哪个路由器返回一个带有表明的ICMP “time exceeded”

如果返回的路由器就是最终的目的地,停止trace

否则,TTL加1并返回到步骤1

两者的不同点:

常规的traceroute使用UDP包或ICMP “Echo”包,这两种包都可能会被防火墙拦截。

tcptraceroute使用TCP “SYN”包。发送带SYN标志位的数据段是TCP建立连接时进行“三次握手”的第一次握手,只要目标地址是被允许访问的,通常这种包不会被防火墙拦截。但是防火墙会拦截其他的不是用于建立连接的TCP包。

基于TCP的traceroute拥有更高的访问权限。以amazon.com为例。基于UDP的traceroute停在205.251.248.5,这个地址很可能是某种防火墙。基于TCP的traceroute访问80端口,这是amazon.com的默认端口,然后进入下一步,最终停在72.21.194.212

traceroute的重要选项有:-d 使用Socket层级的排错功能。

-f 设置第一个检测数据包的存活数值TTL的大小。

-F 设置勿离断位。

-g 设置来源路由网关,最多可设置8个。

-i 使用指定的网络界面送出数据包。

-I 使用ICMP回应取代UDP,与-U\-T是互斥关系。

-m 设置检测数据包的最大存活数值TTL的大小,也就是改变跳数,默认只检测30跳。

-n 直接使用IP地址而非主机名称。

-p 设置UDP传输协议的通信端口。

-q 改变每一次主机之间路由传送包的次数,最大为10

-r 忽略普通的Routing Table,直接将数据包送到远端主机上。

-s 设置本地主机送出数据包的IP地址。

-t 设置检测数据包的TOS数值。

-T  使用TCP协议来探测,与-U\-I是互斥关系,另外TCP协议默认是80端口,而LINUX下1024以下端口需要管理员ROOT权限才能执行,因此需注意权限。

-U 使用UDP协议来探测,这是默认的检测协议

-v 详细显示指令的执行过程。

-w 设置等待远端主机回报的时间。

-x 开启或关闭数据包的正确性检验。

使用举例如下:traceroute www.bnxb.com

备注,使用traceroute返回的每行信息中有三个时间值,那是因为对于每个节点或者路由器,源端发了三次探测请求。

部分以mini方式安装的CENTOS会没集成traceroute可以自行安装

安装命令yum -install traceroute

tcptraceroute是第三方工具,需要下载后上传服务器安装

首先需要安装依赖包libpcap[root@localhost ~]# yum install -y libpcap

下载和上传tcptraceroute

的rpm包  开源代码:https://sourceforge.net/projects/traceroute/

RPM包下载:http://rpmfind.net/linux/mageia/distrib/6/armv5tl/media/core/release/tcptraceroute-1.5-1.beta7.9.mga6.armv5tl.rpm[root@localhost ~]# rpm -ivh tcptraceroute-1.5-1.beta7.9.mga6.armv5tl.rpm

下面来说说 该命令的用法

-i  指定接口

-f

设置开始TTL值(第一条显示的路径)

-l  包长度

-q

每一跳延时查询的次数(default 3)

-t

设置TOS(服务类型)可用于传出数据包。默认 未设置

-m  设置最大TTL值

-p

指定使用本机的特定端口作为源端口(默认随机)

-s

如果本机有多个IP,可指定使用一个IP进行追踪

-w  等待超时时间

host

必跟参数,可以使用主机名或者IP地址

des port  可选选项,默认使用目的地址的80端口

example:  tcptraceroute www.google.com 443 -n -q 1

3.mtr

在Linux中有一个更好的网络连通性判断工具,它可以结合ping | nslookup | tracert 来判断网络的相关特性,这个命令就是mtr,注意:MTR使用的raw sockets是绕过TCP/IP协议,需要ROOT权限来执行,因此如果以普通用户身份来执行mtr会出错,提示“mtr: unable to get raw sockets”

默认系统里面是不带MTR,需要自己手动安装

CENTOS进入SSH,手动输入命令yum install mtr -y

UBUNTUsudo apt-get install traceroute

使用格式:mtr [options] hostname

常用的选项:-n       ——不探测主机名,no-dns不对IP地址做主机名解析

-r     ——将mtr设置为报告模式,追踪结果以报告模式输出。若没有-r显现,那么将进入mtr的实时交互模式。

-c num ——定义追踪的次数,每次是1s,且-c必须和-r配合使用,默认的10次。

mtr -s 用来指定ping数据包的大小

mtr -a 来设置发送数据包的IP地址 这个对一个主机由多个IP地址是有用的

mtr -i 使用这个参数来设置ICMP返回之间的要求默认是1秒

mtr -4 IPv4

mtr -6 IPv6

使用举例:

(1)mtr的实时显示模式,这里会一直刷新探测,可以按ctrl+c退出

mtr www.bnxb.com

(2)mtr的报告模式

[root@172.245.168.1 ~]# mtr -r www.bnxb.com

Start: Sun Dec  3 21:32:45 2017

HOST: Bnxb-VM          Loss%   Snt   Last   Avg  Best  Wrst StDev

1.|– 172-245-168-1-host.colocr  0.0%    10    1.2  14.6   0.9  97.1  29.8

2.|– 10.8.7.117                 0.0%    10    0.9   1.1   0.9   2.4   0.0

3.|– 10.8.19.173                0.0%    10    0.5   5.4   0.4  42.4  13.1

4.|– buf-b1-link.telia.net      0.0%    10    0.5   0.6   0.5   1.4   0.0

5.|– nyk-bb4-link.telia.net     0.0%    10   10.7  10.9  10.7  11.2   0.0

6.|– nyk-b5-link.telia.net      0.0%    10   11.3  11.3  11.2  11.8   0.0

7.|– 6-1-20.ear2.NewYork1.leve 90.0%    10  535.6 535.6 535.6 535.6   0.0

8.|– 4.69.153.125               0.0%    10   87.8  88.0  87.7  90.4   0.7

9.|– network-innovations-inc.v  0.0%    10   91.4  90.0  88.2  91.4   0.9

10.|– te-6-0-0.cs2.lax2.us.zenl  0.0%    10   88.7  90.0  88.7  95.0   1.7

11.|– ???                       100.0    10    0.0   0.0   0.0   0.0   0.0

12.|– 198.181.37.102.16clouds.c  0.0%    10   87.5  87.5  87.3  87.9   0.0

输出解释:

第一列:显示的是IP地址和本机域名,这点和tracert很像

第二列:snt:10 设置追踪的次数,默认值是10 可以通过参数 -c来定制,例如mtr -r -c 15 www.bnxb.com

第三列 Loss: 是显示的每个对应IP的丢包率

第四列 Last: 显示的最近一次的返回时延

第五列 Avg : 是平均值 这个应该是发送ping包的平均时延

第六列 Best: 是最好或者说时延最短的

第七列 Wrst: 是最差或者说时延最常的

第八列 StDev: 是标准偏差

(3)mtr报告模式,只显示IP不显示主机名

mtr -n -r www.bnxb.com

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/151492.html原文链接:https://javaforall.cn

【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛

【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...

(0)


相关推荐

  • STM32 看门狗和嘀嗒定时器

    STM32 看门狗和嘀嗒定时器看门狗一个定时器,独立的定时器,对单片机CPU进行监控,一旦CPU的程序出现错误,或者电压过低使单片机出现任何意外情况,看门狗就会给单片机复位使单片机回到初始状态。单片机就会从错误中脱离出来。看门狗–是一个定时器,供能–计数。每隔一段时间就喂狗–计数清零,重新计时,程序出错不能喂狗,得复位。独立看门狗独立看门狗是基于一个12位的递减计数器和一个8位的预分频器。他有一个内部独立的40KHz的RC振荡器提供时钟;因为这个RC振荡器独立于主时钟,所以他可运行于停机和待机模式。它可以被当成看门狗用于在发生问

  • 目标检测(Object Detection)

    目标检测(Object Detection)文章目录目标检测(ObjectDetection)一、基本概念1.什么是目标检测2.目标检测的核心问题3.目标检测算法分类1)TowStage2)OneStage4.目标检测应用1)人脸检测2)行人检测3)车辆检测4)遥感检测二、目标检测原理1.候选区域产生1)滑动窗口2)选择性搜索①什么是选择性搜索②选择搜索流程③选择搜索优点2.数据表示3.效果评估4.非极大值抑制三、目标检测模型1.R-CNN系列1)R-CNN①定义②流程③效果④缺点2)FastR-CNN①定义

  • 非常好的Ansible入门教程(超简单)

    非常好的Ansible入门教程(超简单)Ansible是一个配置管理和配置工具,类似于Chef,Puppet或Salt。这是一款很简单也很容易入门的部署工具,它使用SSH连接到服务器并运行配置的任务,服务器上不用安装任何多余的软件,只需要开启ssh,所有工作都交给client端的ansible负责。关于Ansible的一个好处是,将bash脚本转换为可执行任务是非常容易的。我们可以编写自己的配置程序,但是Ansible更加干净,因为它

  • linux 在线修复磁盘,linux 修复磁盘

    linux 在线修复磁盘,linux 修复磁盘目前维护的服务器出现的故障,系统成为只读,重启后报:/dev/VolGroup00/LogVol00:UNEXPECTEDINCONSISTENCY;RUNfsckMANUALLY出现这样的问题需要使用fsck命令扫描修复磁盘(fsck扫描前最好通过其他方法将能备份出来的数据备份出来,以防fsck将文件扫描损坏)解决以上问题的方法:1、使用光盘启动,进入救援模式1.1、将bios调整为光盘启…

  • IO接口编程[通俗易懂]

    IO接口编程[通俗易懂]IO接口编程作者:毛茏玮/Saint掘金:https://juejin.im/user/5aa1f89b6fb9a028bb18966a微博:https://weibo.com/5458277467/profile?topnav=1&wvr=6&is_all=1GitHub:github.com/saint-000CSDN:https://me.csdn.net/…

  • 大二C#实现酒店管理系统(C端展示、前台操作、登记入住、入住管理、职位管理、公告系统等)「建议收藏」

    大二C#实现酒店管理系统(C端展示、前台操作、登记入住、入住管理、职位管理、公告系统等)「建议收藏」大二C#项目作业,这个项目做为毕设都不是问题

发表回复

您的电子邮箱地址不会被公开。

关注全栈程序员社区公众号