Linux基本功系列之ping命令实战

本文涉及的产品
云解析 DNS,旗舰版 1个月
全局流量管理 GTM,标准版 1个月
公共DNS(含HTTPDNS解析),每月1000万次HTTP解析
简介: Linux基本功系列之ping命令实战

在这里插入图片描述

@[toc]

前言🚀🚀🚀
想要学好Linux,命令是基本功,企业中常用的命令大约200多个,不管是写shell脚本还是管理操作系统,最常用的命令必须要牢牢掌握,像我们以前学乘法口诀一样,烂熟于心,唯有如此,才能打牢基础。
💓 知识最重要的是记忆
💓 入门须知: 想要人生从容,必须全力以赴,努力才是你最终的入场券🚀🚀🚀
💕 最后: 努力成长自己,愿我们都能在看不到的地方闪闪发光 ,一起加油进步🍺🍺🍺

一. 命令介绍

ping命令用来测试主机之间网络的连通性,通过发送Internet控制消息协议(ICMP)回响请求消息来验证与另一台TCP/IP计算机的IP级连接.

用途: 发送一个回送信号请求给网络主机,根据发送回的信号来判断网络的连通性

  • 确定网络和各个外部主机的状态。
  • 跟踪和隔离硬件与软件问题。
  • 测试、评估和管理网络。

ping 命令每秒发送一个数据包并且为每个接收到的响应显示一行输出。ping 命令计算信号往返时间和(信息)包丢失情况的统计信息,并且在完成之后显示一个简要总结。

Ping 命令将在程序超时或收到 SIGINT 信号时完成。Host 参数是有效主机名或因特网地址。

缺省情况下,ping 命令继续将回传请求发送到屏幕,直至接收到中断信号 (Ctrl-C)。由于连续的回传请求会增加系统的负载,所以重复的请求必须主要用于问题确定。

二. 语法格式及常用选项

可以使用man ping 来查看相关的参数信息


       -c     count   在发送(和接收)了正好数量为   count   的回显应答分组后停止操作。在发送了           count
              个分组后没有收到任何分组的特别情况是发送导致了终止(选程主机或网关不可达)。

       -d     在所用的套接字上使用 SO_DEBUG 选项。

       -f     以高速方式来作 
                                                                            ping
              。以分组返回的速度来输出其它分组或每秒输出百次。当收到每个回显应答并打印一个退格符时,对每
个回显请求都打印一个句点``.''。这可以快速显示出丢弃了多少个分组,只有超级用户可以用这个选项。这(操作)对
网络要求非常苛刻,应该慎重使用。

       -i     wait                              在发送每个分组时等待                                wait
              个秒数。缺省值为每个分组等待一秒。此选项与-f选项不能同时使用。
       -l     preload              如果指定              preload              ,那么                      ping
              程序在开始正常运行模式前尽可能快地发送分组。同样只有超级用户可以用这个选项。

       -n     只以数字形式输出信息。这样就不尝试去查找主机名了。

       -p     pattern
              可以指定最多16个填充字节用于保持分组长度为16的整数倍。在网络上诊断与数据相关问题时此选项很有用。
              例如``-p ff''将使发出的分组都用全1填充数据区。

       -q     静态输出。在程序启动和结束时只显示摘要行。

       -R     记录路由。在回显请求分组中包含记录路由选项并在相应的分组返回时显示路由缓冲区。注意IP首部的容量只能存放9条这样的
              路由。很多主机

        -r     在所连接的网络上旁路正常的选路表,直接向主机发送分组。如果主机未处于直接相连的网络上,那么返回一个错误。此选项可用来通过无路由接口对一台主机进行检测(例如当接口已被
              routed 程序丢弃后)。

       -s     packetsize   指定要发送数据的字节量。缺省值为   56   ,这正好在添加了   8   字节的  ICMP
              首部后组装成 64 字节的 ICMP 数据报。

       -v     详细模式输出。打印接收到的回显应答以外的 ICMP 分组。

       -w     waitsecs 在 waitsecs 秒后停止 ping 程序的执行。当试图检测不可达主机时此选项很有用。

参数简化版:

  • -d:使用Socket的SO_DEBUG功能;
  • -c<完成次数>:设置完成要求回应的次数;
  • -f:极限检测;
  • -i<间隔秒数>:指定收发信息的间隔时间;

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

  • -l<前置载入>:设置在送出要求信息之前,先行发出的数据包;
  • -n:只输出数值;
  • -p<范本样式>:设置填满数据包的范本样式;
  • -q:不显示指令执行过程,开头和结尾的相关信息除外;
  • -r:忽略普通的Routing Table,直接将数据包送到远端主机上;
  • -R:记录路由过程;
  • -s<数据包大小>:设置数据包的大小;
  • -t<存活数值>:设置存活数值TTL的大小;
  • -v:详细显示指令的执行过程。
  • -w<超时秒数>:无论之前发送或接受了多少包,只要超过此秒数,程序退出;

三. 参考案例

3.1 测试本机与指定网站服务器之间的网络连通性

linux中的ping命令无法自己停止,需要手动按下ctrl+c组件按键命令来停止ping

此时,无需加任何参数,直接在ping后面加上IP或者网址

root@mufenggrow ~]# ping www.baidu.com
PING www.baidu.com (110.242.68.4) 56(84) bytes of data.
64 bytes from 110.242.68.4 (110.242.68.4): icmp_seq=1 ttl=52 time=25.1 ms
^C
--- www.baidu.com ping statistics ---
1 packets transmitted, 1 received, 0% packet loss, time 0ms
rtt min/avg/max/mdev = 25.181/25.181/25.181/0.000 ms
[root@mufenggrow ~]# 

也可以直接ping IP地址:
在这里插入图片描述

这里面的几个参数:

  • icmp_seq=1  ping序列,从1开始;
  • bytes值: 数据包大小,也就是字节。
  • time值:响应时间,这个时间越小,说明你连接这个地址速度越快。
  • TTL值:Time To Live,表示DNS记录在DNS服务器上存在的时间,它是IP协议包的一个值,告诉路由器该数据包何时需要被丢弃。

拓展:

TTL就是说ping的数 据包 能在网络上存在多少时间。

当我们对网络上的主机进行ping操作的时候,我们本地机器会发出一个数据包,数据包经过一定数量的路由器传送到目的主机,但是由于很多的原因,一些数据包不能正常传送到目的主机,那如果不给这些数据包一个生存时间的话,这些数据包会一直在网络上传送,导致网络开销的增大。
当数据包传送到一个路由器之后,TTL就自动减1,如果减到0了还是没有传送到目的主机,那么就自动丢失。

  • rtt min/avg/max/mdev 表示最小/最大、平均响应时间和本机硬件耗费时间

3.2 指定ping的次数

-c 参数可以用来指定ping的次数

[root@mufenggrow ~]# ping -c 3 www.baidu.com
PING www.baidu.com (110.242.68.4) 56(84) bytes of data.
64 bytes from 110.242.68.4 (110.242.68.4): icmp_seq=1 ttl=52 time=25.4 ms
64 bytes from 110.242.68.4 (110.242.68.4): icmp_seq=2 ttl=52 time=25.5 ms
64 bytes from 110.242.68.4 (110.242.68.4): icmp_seq=3 ttl=52 time=25.9 ms

--- www.baidu.com ping statistics ---
3 packets transmitted, 3 received, 0% packet loss, time 2004ms
rtt min/avg/max/mdev = 25.411/25.633/25.906/0.205 ms

3.3 指定时间间隔和次数

这里会用到两个参数
-i 时间间隔参数,也就是发送周期
-c ping的次数

[root@mufenggrow ~]# ping -c1 -i 0.3 www.baidu.com
PING www.a.shifen.com (110.242.68.4) 56(84) bytes of data.
64 bytes from 110.242.68.4 (110.242.68.4): icmp_seq=1 ttl=52 time=25.4 ms

--- www.a.shifen.com ping statistics ---
1 packets transmitted, 1 received, 0% packet loss, time 0ms
rtt min/avg/max/mdev = 25.407/25.407/25.407/0.000 ms

3.4 设置TTL为255

-t参数可以设置存活数值TTL大小为255, 这里我们一并用上 -c 发送周期为3秒, -s设置发送包为1024

[root@mufenggrow ~]# ping -c 3  -i 0.3 -s 1024 -t 255 192.168.1.101
PING 192.168.1.101 (192.168.1.101) 1024(1052) bytes of data.
1032 bytes from 192.168.1.101: icmp_seq=1 ttl=64 time=0.029 ms
1032 bytes from 192.168.1.101: icmp_seq=2 ttl=64 time=0.060 ms
1032 bytes from 192.168.1.101: icmp_seq=3 ttl=64 time=0.028 ms

--- 192.168.1.101 ping statistics ---
3 packets transmitted, 3 received, 0% packet loss, time 600ms
rtt min/avg/max/mdev = 0.028/0.039/0.060/0.014 ms

3.5 极快速的测试使用大包ping

以最快的速度,使用最大的包进行ping,一般用于测试目标主机的承压能力测试。
说到这不得不提中国黑客教父,当年在中美黑客大战中一战成名,最大的本事就是号召中国网民,ping TN官网。

这里用到两个参数一个是-f: 极限检测,快速连续ping一台主机,ping的速度达到100次每秒。
另一个是: -s 指定每次ping发送的数据字节数,但不能大于65535,所以linux最大值为65507

[root@mufenggrow ~]# ping -f -s 65507 192.168.1.101
PING 192.168.1.101 (192.168.1.101) 65507(65535) bytes of data.
^C 
--- 192.168.1.101 ping statistics ---
372312 packets transmitted, 372312 received, 0% packet loss, time 19675ms
rtt min/avg/max/mdev = 0.012/0.015/2.202/0.012 ms, ipg/ewma 0.052/0.016 ms
[root@mufenggrow ~]# 

四. 使用ping命令常见问题

【常见问题分析】

在ping的过程中,经常会遇到以下的情况,我们根据情况的反馈来判断具体的问题。

  1. No Answer: ,对方主机没工作,双方网络配置不正确,路由问题等。
  2. Request Time Out: 对方主机已关机,路由问题或对端防火墙设置禁止ping
  3. Destination Net Unreachable: 双方没有建立连接,或对方主机不存在
  4. Unknown Host Name: DNS设置问题,或者对方主机不存在
  5. transmit failed,error code: 网卡驱动问题
  6. Bad IP Address: IP地址不存在或IP不能被DNS服务器解析

7.pining 127.0.0.1 如果ping不通,表明本地机TCP/IP协议不能正常工作

  1. no rout to host 网卡工作不正常

使用ping来辅助判断网络的连通性

总结

我们经常用ping命令来判断主机是否在线,网络是否连通, 在脚本中也经常会用到ping命令,目前用的最多的参数就是 -c -i -w 这几个参数。

💕💕💕 好啦,这就是今天要分享给大家的全部内容了,我们下期再见!✨ ✨ ✨
🍻🍻🍻如果你喜欢的话,就不要吝惜你的一键三连了~

冲冲冲

在这里插入图片描述

相关文章
|
2天前
|
Linux
在 Linux 系统中,“cd”命令用于切换当前工作目录
在 Linux 系统中,“cd”命令用于切换当前工作目录。本文详细介绍了“cd”命令的基本用法和常见技巧,包括使用“.”、“..”、“~”、绝对路径和相对路径,以及快速切换到上一次工作目录等。此外,还探讨了高级技巧,如使用通配符、结合其他命令、在脚本中使用,以及实际应用案例,帮助读者提高工作效率。
10 3
|
2天前
|
安全 网络协议 Linux
本文详细介绍了 Linux 系统中 ping 命令的使用方法和技巧,涵盖基本用法、高级用法、实际应用案例及注意事项。
本文详细介绍了 Linux 系统中 ping 命令的使用方法和技巧,涵盖基本用法、高级用法、实际应用案例及注意事项。通过掌握 ping 命令,读者可以轻松测试网络连通性、诊断网络问题并提升网络管理能力。
9 3
|
2天前
|
监控 安全 Linux
在 Linux 系统中,网络管理是重要任务。本文介绍了常用的网络命令及其适用场景
在 Linux 系统中,网络管理是重要任务。本文介绍了常用的网络命令及其适用场景,包括 ping(测试连通性)、traceroute(跟踪路由路径)、netstat(显示网络连接信息)、nmap(网络扫描)、ifconfig 和 ip(网络接口配置)。掌握这些命令有助于高效诊断和解决网络问题,保障网络稳定运行。
10 2
|
5天前
|
Linux
在 Linux 系统中,`find` 命令是一个强大的文件查找工具
在 Linux 系统中,`find` 命令是一个强大的文件查找工具。本文详细介绍了 `find` 命令的基本语法、常用选项和具体应用示例,帮助用户快速掌握如何根据文件名、类型、大小、修改时间等条件查找文件,并展示了如何结合逻辑运算符、正则表达式和排除特定目录等高级用法。
21 5
|
5天前
|
缓存 网络协议 Linux
Linux ip命令常用操作
Linux的 `ip`命令是一个强大且灵活的网络管理工具,能够执行从基本的网络接口配置到高级的路由和VLAN管理等多种操作。通过熟练掌握这些常用操作,用户可以更加高效地管理和配置Linux系统的网络环境。无论是在日常管理还是故障排除中,`ip`命令都是必不可少的工具。
7 2
|
4月前
|
Linux
Linux部署04-ls命令的参数和选项,主体,参数,选项,ls / 查看根目录下的文件夹,-a的意思是列出全部选项 ls -a home全部文件,.代表着隐藏的文件夹,-l 选项,以列表竖向的形式展
Linux部署04-ls命令的参数和选项,主体,参数,选项,ls / 查看根目录下的文件夹,-a的意思是列出全部选项 ls -a home全部文件,.代表着隐藏的文件夹,-l 选项,以列表竖向的形式展
|
4月前
|
Linux
Linux部署 cd-pwd命令,cd 不写参数 就直接回到用户的HOME目录,pwd 查看当前的工作目录,pwd是常看当前目录的路径,无参数
Linux部署 cd-pwd命令,cd 不写参数 就直接回到用户的HOME目录,pwd 查看当前的工作目录,pwd是常看当前目录的路径,无参数
|
4月前
|
Linux
Linux02---命令基础 Linux命令基础, ls命令入门,ls命令参数和选项,命令行是一种以纯字符操作系统的方式,command命令本身,options命令的细节行为,parameter命令的
Linux02---命令基础 Linux命令基础, ls命令入门,ls命令参数和选项,命令行是一种以纯字符操作系统的方式,command命令本身,options命令的细节行为,parameter命令的
|
6月前
|
安全 网络协议 Linux
【专栏】Linux系统中ping命令的使用,包括其基本语法、输出信息、常用参数及高级用法
【4月更文挑战第28天】本文详细介绍了Linux系统中ping命令的使用,包括其基本语法、输出信息、常用参数及高级用法。通过ping,用户可测试网络连通性、诊断故障及评估性能。此外,文章还讨论了ping在不同协议、模拟网络环境及与其他命令结合使用时的场景。注意防火墙和网络环境可能影响ping结果,理解错误信息有助于网络问题排查。熟练掌握ping命令,能助你成为Linux网络专家。不断学习和实践,提升网络技能,为构建稳定网络环境贡献力量。
523 0
|
6月前
|
Kubernetes Linux Shell
Linux |奇怪的知识---complete命令---你不知道的命令参数补全---kubectl命令的参数补全
Linux |奇怪的知识---complete命令---你不知道的命令参数补全---kubectl命令的参数补全
152 0