在CentOS上使用Ping、traceroute、mtr进行网络测试

2023-05-23 20:03:13

本文基于CentOS平台,介绍如何使用Ping、traceroute、mtr三个工具进行网络测试的具体方法。

1、ping

ping命令用来测试主机之间网络的连通性。执行ping指令会使用ICMP传输协议,发出要求回应的信息,若远端主机的网络功能没有问题,就会回应该信息,因而得知该主机运作正常。

语法

ping [选项] [参数]

选项

-d:使用Socket的SO_DEBUG功能;

-c<完成次数>:设置完成要求回应的次数;

-f: 极限检测;

-i<间隔秒数>:指定收发信息的间隔时间;

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

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

-n:只输出数值;

-p<范本样式>:设置填满数据包的范本样式;

-q:不显示指令执行过程,开头和结尾的相关信息除外;

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

-R:记录路由过程;

-s<数据包大小>:设置数据包的大小;

-t<存活数值>:设置存活数值TTL的大小;

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

参数

目的主机:指定发送ICMP报文的目的主机。

示例

#测试对www.baidu.com的连通性,测试2次,每次间隔10秒,只输出数值

[root@CentOS7TeachBasic ~]# ping www.baidu.com -c 2 -i 10 -n PING www.wshifen.com (104.193.88.77) 56(84) bytes of data. 64 bytes from 104.193.88.77: icmp_seq=1 ttl=48 time=232 ms 64 bytes from 104.193.88.77: icmp_seq=2 ttl=48 time=257 ms --- www.wshifen.com ping statistics --- 2 packets transmitted, 2 received, 0% packet loss, time 10013ms rtt min/avg/max/mdev = 232.114/244.563/257.013/12.459 ms

#测试对www.baidu.com的连通性,极限测试模式,数据包为1024bytes,测试100次,不显示过程

[root@CentOS7TeachBasic ~]# ping www.baidu.com -f -s 1024 -c 100 -q PING www.wshifen.com (103.235.46.39) 1024(1052) bytes of data. --- www.wshifen.com ping statistics ---

#在极限测试模式下,30%报文丢失

100 packets transmitted, 70 received, 30% packet loss, time 1280ms rtt min/avg/max/mdev = 390.331/395.282/398.494/2.238 ms, pipe 35, ipg/ewma 12.931/393.647 ms 2 traceroute

traceroute命令用于追踪数据包在网络上的传输时的全部路径,它默认发送的数据包大小是40字节。

通过traceroute我们可以知道信息从你的计算机到互联网另一端的主机是走的什么路径。当然每次数据包由某一同样的出发点(source)到达某一同样的目的地(destination)走的路径可能会不一样,但基本上来说大部分时候所走的路由是相同的。

traceroute通过发送小的数据包到目的设备直到其返回,来测量其需要多长时间。一条路径上的每个设备traceroute要测3次。输出结果中包括每次测试的时间(ms)和设备的名称(如有的话)及其ip地址。

语法

traceroute [选项] [参数]

选项

-d:使用Socket层级的排错功能;

-f<存活数值>:设置第一个检测数据包的存活数值TTL的大小;

-F:设置勿离断位;

-g<网关>:设置来源路由网关,最多可设置8个;

-i<网络界面>:使用指定的网络界面送出数据包;

-I:使用ICMP回应取代UDP资料信息;

-m<存活数值>:设置检测数据包的最大存活数值TTL的大小;

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

-p<通信端口>:设置UDP传输协议的通信端口;

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

-s<来源地址>:设置本地主机送出数据包的IP地址;

-t<服务类型>:设置检测数据包的TOS数值;

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

-w<超时秒数>:设置等待远端主机回报的时间;

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

参数

主机:指定目的主机IP地址或主机名。

示例

#CentOS 7/8需要使用yum工具安装后方可使用

[root@CentOS7TeachBasic ~]# yum install traceroute 已加载插件:fastestmirror Loading mirror speeds from cached hostfile * base: mirror.bit.edu.cn * extras: mirror.bit.edu.cn * updates: mirror.bit.edu.cn

#此处省略了过程信息

已安装:

traceroute.x86_64 3:2.0.22-2.el7

完毕!

#测试从当前计算机到linux.xg.hactcm.edu.cn主机的通信路径

[root@CentOS7TeachBasic ~]# traceroute linux.xg.hactcm.edu.cn traceroute to linux.xg.hactcm.edu.cn (211.69.33.161), 30 hops max, 60 byte packets 1 gateway (172.16.123.1) 1.587 ms 1.755 ms 2.498 ms 2 192.168.179.1 (192.168.179.1) 3.004 ms 2.977 ms 3.004 ms 3 10.0.1.18 (10.0.1.18) 2.820 ms 2.943 ms 2.916 ms

#由于防火墙阻隔,测试信息没有返回报文

3 mtr

mtr是Linux操作系统中的网络诊断工具,结合了ping、traceroute、nslookup的相关特性,使管理员能够诊断和隔离网络错误,并向上游提供商提供网络状态报告。

语法

mtr [选项] [参数]

选项

-h:提供帮助命令

-v:显示mtr的版本信息

-r:报告模式显示

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

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

-a:数据包的发送IP地址

-i:ICMP返回之间的时间间隔,默认是1秒

-4:IPv4

-6:IPv6

参数

主机:指定目的主机IP地址或主机名。

示例

#CentOS 7/8需要使用yum工具安装后方可使用

[root@CentOS7TeachBasic ~]# yum install mtr 已加载插件:fastestmirror Loading mirror speeds from cached hostfile * base: mirror.bit.edu.cn * extras: mirror.bit.edu.cn * updates: mirror.bit.edu.cn

正在解决依赖关系

--> 正在检查事务

---> 软件包 mtr.x86_64.2.0.85-7.el7 将被 安装

--> 解决依赖关系完成

#此处省略了过程信息

已安装:

mtr.x86_64 2:0.85-7.el7

完毕!

#mtr通过tcp测试对linux.xg.hactcm.edu.cn的连通性,每秒发送50个数据包,以报告模式显示

[root@CentOS7TeachBasic ~]# mtr --tcp -rwc 50 linux.xg.hactcm.edu.cn Start: Fri Mar 13 18:47:48 2020 HOST: CentOS7TeachBasic Loss% Snt Last Avg Best Wrst StDev 1.|-- gateway 60.0% 50 7018. 2758. 1.5 7025. 3282.2 2.|-- 192.168.179.1 0.0% 50 1003. 183.1 1.9 1007. 388.9 3.|-- 10.0.1.18 0.0% 50 2.9 2.5 1.9 3.7 0.1 4.|-- 10.0.1.29 0.0% 50 5.0 10.4 5.0 134.1 19.7 5.|-- 211.69.33.161 0.0% 50 2.6 67.7 2.2 89.5 30.5

# Loss%列:显示每跳的丢包百分比

# Snt列:计算发送的数据包数

# Last列:最后发送的数据包的延时

# Avg列:所有数据包的平均延时

# Best列:所有数据包中最短的延时

# Wrst列:所有数据包中最长的延时

# StDev列:延迟标准偏差。标准差越大,延迟测量之间的差异越大。

# Last、Avg、Best、Wrst列的单位是毫秒

#由于防火墙阻断icmp等通信,使用tcp进行测试动态测试

#[root@CentOS7TeachBasic ~]# mtr --tcp linux.xg.hactcm.edu.cn