Linux命令之ping、traceroute、mtr——查看网络状态

ping、traceroute、mtr这三个都是Linux下查看本机或服务器网络状态等所用的命令,下面一一介绍:

首先是最常见的ping命令:

Linux系统的ping命令是常用的网络命令,它通常用来测试与目标主机的连通性,我们经常会说“ping一下某机器,看是不是开着”、不能打开网页时会说“你先ping网关地址192.168.1.1试试”。它通过发送ICMP ECHO_REQUEST数据包到网络主机(send ICMP ECHO_REQUEST to network hosts),并显示响应情况,这样我们就可以根据它输出的信息来确定目标主机是否可访问(但这不是绝对的)。有些服务器为了防止通过ping探测到,通过防火墙设置了禁止ping或者在内核参数中禁止ping,这样就不能通过ping确定该主机是否还处于开启状态。

linux下的ping和windows下的ping稍有区别,linux下ping不会自动终止,需要按ctrl+c终止或者用参数-c指定要求完成的回应次数。

ping的实例:

实例1:ping的通的情况

命令:ping www.baidu.com

实例2:ping不通的情况

命令:ping www.woxiadade.com

实例3:时间间隔和次数限制的ping

命令:ping -c 10 -i 0.5 www.baidu.com

下面是traceroute命令:

traceroute命令用于追踪数据包在网络上的传输时的全部路径,它默认发送的数据包大小是40字节。通过traceroute我们可以知道信息从你的计算机到互联网另一端的主机是走的什么路径。当然每次数据包由某一同样的出发点(source)到达某一同样的目的地(destination)走的路径可能会不一样,但基本上来说大部分时候所走的路由是相同的。traceroute通过发送小的数据包到目的设备直到其返回,来测量其需要多长时间。一条路径上的每个设备traceroute要测3次。输出结果中包括每次测试的时间(ms)和设备的名称(如有的话)及其ip地址。

traceroute实例:

实例1:traceroute 用法简单、最常用的用法

命令:traceroute www.baidu.com

说明:

记录按序列号从1开始,每个纪录就是一跳 ,每跳表示一个网关,我们看到每行有三个时间,单位是 ms,其实就是-q的默认参数。探测数据包向每个网关发送三个数据包后,网关响应后返回的时间;如果您用 traceroute -q 4 www.58.com ,表示向每个网关发送4个数据包。

有时我们traceroute 一台主机时,会看到有一些行是以星号表示的。出现这样的情况,可能是防火墙封掉了ICMP的返回信息,所以我们得不到什么相关的数据包返回数据。

有时我们在某一网关处延时比较长,有可能是某台网关比较阻塞,也可能是物理设备本身的原因。当然如果某台DNS出现问题时,不能解析主机名、域名时,也会 有延时长的现象;您可以加-n 参数来避免DNS解析,以IP格式输出数据。

如果在局域网中的不同网段之间,我们可以通过traceroute 来排查问题所在,是主机的问题还是网关的问题。如果我们通过远程来访问某台服务器遇到问题时,我们用到traceroute 追踪数据包所经过的网关,提交IDC服务商,也有助于解决问题;但目前看来在国内解决这样的问题是比较困难的,就是我们发现问题所在,IDC服务商也不可能帮助我们解决。

实例2:探测包使用的基本UDP端口设置6888

命令:traceroute -p 6888 www.baidu.com

mtr命令:

我们大多数都熟悉ping和traceroute。那对于把两个命令的功能合二为一的mtr命令呢。如果mtr没在你的机子上安装,apt或者yum需要的包:

1

$ sudo apt-get install mtr (On Debian based Systems)

2

# yum install mtr (On Red Hat based Systems)

mtr参数介绍:

mtr -h 提供帮助命令

mtr -v 显示mtr的版本信息

mtr -r 以报告模式显示

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

mtr -n no-dns不对IP地址做域名解析

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

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

mtr -4 IPv4

mtr -6 IPv6

mtr -c 设置每秒发送数据包的数量

实例1:mtr www.baidu.com

此时会弹出一个窗口(界面化的),方便操作和查看:

实例2(详细分析):mtr -r www.baidu.com

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

第二列:snt:10 设置每秒发送数据包的数量,默认值是10 (参数 -c来设置)。

第三列:是显示的每个对应IP的丢包率 第四列:显示的最近一次的返回时延 第五列:是平均值 这个应该是发送ping包的平均时延 第六列:是最好或者说时延最短的 第七列:是最差或者说时延最常的 第八列:是标准偏差

本文分享自微信公众号 - 浩Coding(gh_c4a2e63d2ca7)

原文出处及转载信息见文内详细说明,如有侵权,请联系 yunjia_community@tencent.com 删除。

原始发表时间:2018-11-03

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏Jerry的SAP技术分享

failure load of Component-preload.js will NOT prevent application loading

Suppose your application could not be opened when tile is clicked in launchpad, ...

14240
来自专栏贾志刚-OpenCV学堂

OpenCV4中调用HED边缘检测算法

图像边缘检测是图像处理与计算机视觉领域最基础也是最重要的任务之一,早期的Canny边缘检测到现在还在使用,但是Canny边缘检测过于依赖人工阈值的设定,无法在通...

58320
来自专栏Java研发军团

你必须收藏的Github技巧

GitHub Pages大家可能都知道,常用的做法,是建立一个gh-pages的分支,通过setting里的设置的GitHub Pages模块可以自动创建该项目...

11330
来自专栏Jerry的SAP技术分享

使用apache的HttpClient进行http通讯,隐藏的HTTP请求头部字段是如何自动被添加的

我们用apache的HttpClient这个库消费云端的Restful API时,一般都需要两次HTTP调用,第一次获得某种token,比如获取防止跨域请求伪造...

12620
来自专栏后端进阶

mybatis-plus源码分析之sql注入器

mybatis-plus是完全基于mybatis开发的一个增强工具,它的设计理念是在mybatis的基础上只做增强不做改变,为简化开发、提高效率而生,它在myb...

19920
来自专栏机器学习算法与Python学习

谷歌EfficientNet缩放模型,PyTorch实现登热榜

谷歌上个月底提出的EfficientNet开源缩放模型,在ImageNet的准确率达到了84.1%,超过Gpipe,已经是当前的state-of-the-art...

15030
来自专栏PHP饭米粒

【swoole4.0】实现Actor并发模型

Actor概念来源于Erlang, 对于PHPer来说,可能会比较陌生,写过Java的同学会比较熟悉,Java一直都有线程的概念(虽然PHP有Pthread,但...

19150
来自专栏happyJared

转发(forward)和重定向(redirect)的区别

转发(Forward) 是通过 RequestDispatcher 对象的 forward(HttpServletRequest request,HttpSer...

17240
来自专栏大数据文摘

我如何用TeX“复活”两千多年前的《几何原本》?

2300多年前,被称为“几何之父”的古希腊数学家欧几里得,结合了前人思想,加上自己在几何方面的研究,最终创造出不朽之作《几何原本》。

11220
来自专栏贾志刚-OpenCV学堂

CVPR2019-目标检测分割技术进展

CVPR 2019 没有出现像Faster RCNN,YOLO这种开创性的工作,基于现有方案和框架的改进为主,技术进步着实有些缓慢,或许也代表方案逐步趋于成熟。...

53740

扫码关注云+社区

领取腾讯云代金券

年度创作总结 领取年终奖励