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)


相关推荐

  • phpstorm永久激活码2021【注册码】「建议收藏」

    phpstorm永久激活码2021【注册码】,https://javaforall.cn/100143.html。详细ieda激活码不妨到全栈程序员必看教程网一起来了解一下吧!

  • open 函数[通俗易懂]

    open 函数[通俗易懂]open函数用来打开一个文件open返回值为一个文件句柄,从操作系统托付给你的python程序,一旦处理完文件,需要归还句柄,只有这样你的程序不会超过一次能打开的文件句柄的数量上限withopen(‘photo.jpg’,’r+’)asf: jpgdata=f.read()open的第⼀个参数是⽂件名。第⼆个(mode打开模式)决定了这个⽂件如何被打开。如果你想读…

  • TCP报文格式详解

    TCP报文是TCP层传输的数据单元,也叫报文段。端口号:用来标识同一台计算机的不同的应用进程。源端口:源端口和IP地址的作用是标识报文的返回地址。目的端口:端口指明接收方计算机上的应用程序接口。TCP报头中的源端口号和目的端口号同IP数据报中的源IP与目的IP唯一确定一条TCP连接。序号和确认号:是TCP可靠传输的关键部分。序号是本报文段发送的数据组的第一个字节的序号。

  • 百度刷排名,刷流量,刷下拉软件【完全免费】胖虎图图-互动点击系统

    百度刷排名,刷流量,刷下拉软件【完全免费】胖虎图图-互动点击系统软件绿色免安装,打开即可使用。软件大小:1.4MB支持平台:win2000/win2003/winxp/win7/win8下载地址:http://www.phtoto.com/download/胖虎图图-互动点击.rar【2013-8-12】更新日志:修复无法停止任务的bug; 【2013-8-11】更新日志:新增支持谷歌搜索;新增支持360搜索;新增支持搜

  • 女人喜欢大男人还是小男人

    女人喜欢大男人还是小男人 转载自 http://hi.baidu.com/512347937/blog/item/6651e4cdec149c510eb3452c.html      大男人,小男人,到底谁能满足现代女人?现代女人首先取悦的是自己,然后才是男人,不管是大人,还是小男人,他们是他们,她是她自己。她为自己做这一切,她应该享有完美的人生。  经常有人问:你觉得什么是大男人,什么是小男人?  一般

  • 解决安装MATLAB2018b时出现License Manager Error -8(许可证管理器错误)的问题

    解决安装MATLAB2018b时出现License Manager Error -8(许可证管理器错误)的问题原博文的地址 1、解压的时候要将两个iso解压到同一个文件夹,意思是第一个解压得到R2018_win_dvd1,第二个解压得到R2018_win_dvd2,要将第二个文件夹里的内容复制到第一个文件夹中。2、matlab2018b是没有R2018b这个文件夹的,其他教程里说什么将netapi32….

发表回复

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

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