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

news2024/10/6 1:45:26

在这里插入图片描述

文章目录

  • 一. 命令介绍
  • 二. 语法格式及常用选项
  • 三. 参考案例
    • 3.1 测试本机与指定网站服务器之间的网络连通性
    • 3.2 指定ping的次数
    • 3.3 指定时间间隔和次数
    • 3.4 设置TTL为255
    • 3.5 极快速的测试使用大包ping
  • 四. 使用ping命令常见问题
  • 总结

前言🚀🚀🚀
想要学好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 这几个参数。

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

冲冲冲

在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/173922.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Java项目部署到云服务器的思路

Java项目部署到云服务器的思路 1 部署项目的前提条件 1.1 购买云服务器 我购买的是腾讯云的服务器,第一年享优惠88一年 cpu好像两核的,作为入门级的也算够用了 如果第二年该续费的时候,我记得因为收到备案什么因素的影响,要提前三个月就续费了,第二年续费价格应该是510 对于学…

思科与华为设备中的OSFP配置命令以及部分实例(超详细~~!!)

目录 一、OSPF相关配置命令 1.思科设备配置命令 &#xff08;1&#xff09;启动OSPF路由进程 &#xff08;2&#xff09;激活参与OSPF路由协议的接口&#xff0c;并且通告结构属于哪个区域的OSPF &#xff08;3&#xff09;配置路由器ID &#xff08;4&#xff09;配置被动…

苹果再次舍弃3纳米,对ASML是沉重打击,ASML得靠中国救命了

苹果在昨晚发布了新款M2 Pro和M2 Max芯片&#xff0c;这两款芯片都没有采用台积电的3纳米工艺&#xff0c;其实不仅是对台积电的打击&#xff0c;也是对ASML的打击&#xff0c;意味着ASML更先进的第二代EUV光刻机可能面临着没有太大需求的问题。一、ASML的愿望ASML当前的主要利…

day43|● 1049. 最后一块石头的重量 II ● 494. 目标和 ● 474.一和零

1049. 最后一块石头的重量 II 1.代码 class Solution { public:int lastStoneWeightII(vector<int>& stones) {int sum 0;for(int i: stones) {sum i;}int t sum;sum sum /2;vector<int>f(sum 1);for (int i 0; i < stones.size(); i) {for (int j …

怎样防止数据怎么泄露了

近年来&#xff0c;各种数据泄露事件越演越烈&#xff0c;数据泄密日益成为企业管理者的梦魇。数据泄密不仅给企业带来严重的直接经济损失&#xff0c;而且还在品牌价值、投资人关系、社会公众形象等多方面造成损害。因此&#xff0c;要想提升企业数据的安全性&#xff0c;就要…

容器虚拟化技术Docker(二)mysql主从配置案例、redis集群搭建及扩容、缩容案例详解

容器虚拟化技术Docker&#xff08;二&#xff09;mysql主从配置案例、redis集群搭建及扩容缩容案例详解 对docker不熟悉的可以参考&#xff1a; 容器虚拟化技术Docker&#xff08;一&#xff09;简介、安装、常见命令、数据卷、安装常规软件 1、Docker安装mysql主从复制 &am…

2023年微软发布的第一个补丁都有什么?

微软于 10 日发布了 2023 年的第一个更新&#xff0c;修复了其Windows操作系统和其他软件中的近 100 个安全漏洞。 2023 年第一个补丁星期二的亮点包括&#xff1a;Windows 中的零日漏洞、美国国家安全局报告的打印机软件缺陷&#xff0c;以及允许未经身份验证的远程攻击者建立…

建木CI自定义节点说明

数据导出导入可以看下 https://gitee.com/jianmu-runners/jianmu-runner-mysq建木节点基于docker 镜像执行 1. 安装 docker & docker-compose 参考 https://blog.csdn.net/pushiqiang/article/details/78682323 https://docs.docker.com/compose/install/other/2.安装&a…

JDK安装与环境变量配置

经验 先使用LightlyLightlyLightly自带的JDKJDKJDK编辑器&#xff0c;进行运行代码&#xff0c;后续学习深入后&#xff0c;再继续探讨JDK的安装&#xff0c;开发大型项目工程时候会自己使用都行啦的回事与打算。 附带JDK安装链接 安装链接: JDK安装链接 总结 慢慢的将JDKJ…

9、Ubuntu安装Tomcat配置部署web

1、安装 Java 这里使用Ubuntu22.04 其他版本也差不多 tomcat是基于Java开发的&#xff0c;安装前需确保已经按照了jdk apt update apt install openjdk-8-jdk 验证是否按照成功 java -version 环境变量 2、安装 Tomcat 下载链接 Tomcat: Apache Tomcat - Apache Tomcat …

Python备份网络设备配置实验-ensp

一、实验简介 实验拓扑 简介 本实验为物理主机(windows电脑)通过物理主机的环回口虚拟网卡与ENSP模拟器中的Cloud建立通信,再与Cloud下面连接的虚拟网络设备通信。从而实现物理主机上面的python脚本抓取ENSP中网络设备的配置信息,并保存在物理主机磁盘指定位置。 本实验…

零入门容器云实战之测试环境介绍、网盘、联系方式

本篇文章主要介绍: 对测试环境的要求介绍一下我的测试环境都有哪些设备&#xff0c;分享一下我在学习中是如何测试的。 1、网盘资源 我已经将相关资源上传到了网盘 零入门容器云网络实战 链接: https://pan.baidu.com/s/1nPLRkAwjItAHmtEU2T1F4g 提取码: rrpd 2、技术交流…

vue3实现一个抽奖小项目

前言 在公司年会期间我做了个抽奖小项目&#xff0c;我把它分享出来&#xff0c;有用得着的可以看下。浏览链接&#xff1a;http://xisite.top/original/luck-draw/index.html项目链接&#xff1a;https://gitee.com/xi1213/luck-draw (欢迎star!)项目截图&#xff1a; 实现目…

UNIAPP学习点滴记录

一、事件处理 1&#xff09;tap和click的区别 在HbuilderX中&#xff0c;两者都是点击时触发事件;不同的是: 1.click是组件被点击时触发&#xff0c;会有约300ms的延迟(内置处理优化了) 2.tap是手指触摸离开时触发&#xff0c;没有300ms的延迟&#xff0c;但是会员事件穿透…

两种分类方法的比较

一个物体既可以按照元素分类法去分类&#xff0c;也可以按照形态分类法去分类。但似乎很难用元素去分类形态&#xff0c;也很难用形态去分类元素。 想用元素分类形态就得加入位置变量。而所谓的位置变量显然是一种空间变量。是粒子在空间中&#xff0c;所以所谓的空间变量似乎…

SpringBoot学习笔记【part14】Spring Cache + Redis 集成缓存数据

Spring Cache 是一个非常优秀的缓存组件&#xff0c;方便切换各种底层Cache&#xff08;如&#xff1a;redis&#xff09; 使用Spring Cache的好处&#xff1a; 提供基本的Cache抽象&#xff0c;方便切换各种底层Cache&#xff1b;通过注解Cache可以实现类似于事务一样&#x…

基于MMdet的Cascade MASKRCNN 原理及源码解读

目录 一、原理 二、源码解读 1、总参数文件configs/cascade_rcnn/cascade_mask_rcnn_r50_fpn_1x_coco.py 2、模型配置字典../_base_/models/cascade_mask_rcnn_r50_fpn.py 3、基于检测器类搭建模型 CascadeRCNN 4、backbone&#xff08;ResNet&#xff09; 5、neck&am…

深度学习数据标注_Lableme

图像标注工具Lable labelme 是一款图像标注工具&#xff0c;主要用于神经网络构建前的数据集准备工作&#xff0c;因为是用 Python 写的&#xff0c;所以使用前需要先安装 Python 集成环境 anaconda。 anaconda 安装 anaconda下载地址如下&#xff1a; https://www.anaconda…

数据结构:循环链表、双向链表和有序表

1、循环链表 循环链表(circular linked list)是线性表的另一种形式的链式存储表示。它的特点是表中最后一个结点的指针域指向第一个结点,整个链表成为一个由链指针相链接的环。对于循环链表,通常还在表中第一个结点之前“附加”一个“头结点”,并令“头指针”指向最后一个结点…

【算法基础】基础算法之排序

&#x1f63d;PREFACE&#x1f381;欢迎各位→点赞&#x1f44d; 收藏⭐ 评论&#x1f4dd;&#x1f4e2;系列专栏&#xff1a;https://blog.csdn.net/weixin_59954106/category_12108349.html&#x1f4aa;种一棵树最好是十年前其次是现在目录 1.快排 步骤 思路方法 题目…