Linux之ping命令

article/2025/11/7 9:24:33

【Linux常用命令速查手册】关注【入门小站】,后台回复 「1001」 自取。

ping命令是用于排除故障,测试和诊断网络连接问题的最常用的命令之一。

Ping通过将一个或多个ICMP(Internet控制消息协议)Echo请求包发送到指定目标IP并等待回复来工作。当目标IP收到包时,它将响应ICMP回复。

使用ping命令,我们可以确定远程目标IP是处于活动状态还是非活动状态,找到与目标通信的往返延迟并检查是否存在数据包丢失。

ping命令是iputils(或iputils-ping)程序包的一部分,该程序包已预先安装在绝大多数Linux发行版上。ping命令也可用于Windows,MacOSX和FreeBSD。

命令格式

ping [参数] [主机名或IP地址]

命令功能

ping命令用于:确定网络和各外部主机的状态;跟踪和隔离硬件和软件问题;测试、评估和管理网络。如果主机正在运行并连在网上,它就对回送信号进行响应。每个回送信号请求包含一个网际协议(IP)和 ICMP 头,后面紧跟一个 tim 结构,以及来填写这个信息包的足够的字节。缺省情况是连续发送回送信号请求直到接收到中断信号(Ctrl-C)。

ping 命令每秒发送一个数据报并且为每个接收到的响应打印一行输出。ping 命令计算信号往返时间和(信息)包丢失情况的统计信息,并且在完成之后显示一个简要总结。ping 命令在程序超时或当接收到 SIGINT 信号时结束。Host 参数或者是一个有效的主机名或者是因特网地址。

命令参数

  • -d 使用Socket的SO_DEBUG功能。
  • -f 极限检测。大量且快速地送网络封包给一台机器,看它的回应。
  • -n 只输出数值。
  • -q 不显示任何传送封包的信息,只显示最后的结果。
  • -r 忽略普通的Routing Table,直接将数据包送到远端主机上。通常是查看本机的网络接口是否有问题。
  • -R 记录路由过程。
  • -v 详细显示指令的执行过程。
  • -c 数目:在发送指定数目的包后停止。
  • -i 秒数:设定间隔几秒送一个网络封包给一台机器,预设值是一秒送一次。
  • -I 网络界面:使用指定的网络界面送出数据包。
  • -l 前置载入:设置在送出要求信息之前,先行发出的数据包。
  • -p 范本样式:设置填满数据包的范本样式。
  • -s 字节数:指定发送的数据字节数,预设值是56,加上8字节的ICMP头,一共是64ICMP数据字节。
  • -t 存活数值:设置存活数值TTL的大小。

ping的通的情况

> ping 8.8.8.8
PING 8.8.8.8 (8.8.8.8): 56 data bytes
64 bytes from 8.8.8.8: icmp_seq=0 ttl=106 time=255.389 ms
64 bytes from 8.8.8.8: icmp_seq=1 ttl=106 time=253.781 ms
64 bytes from 8.8.8.8: icmp_seq=2 ttl=106 time=258.403 ms
64 bytes from 8.8.8.8: icmp_seq=3 ttl=106 time=255.721 ms
64 bytes from 8.8.8.8: icmp_seq=4 ttl=106 time=255.086 ms
64 bytes from 8.8.8.8: icmp_seq=5 ttl=106 time=255.165 ms
64 bytes from 8.8.8.8: icmp_seq=6 ttl=106 time=253.948 ms
...

ping不通的情况

> ping 8.8.9.9
PING 8.8.9.9 (8.8.9.9): 56 data bytes
Request timeout for icmp_seq 0
Request timeout for icmp_seq 1
Request timeout for icmp_seq 2
Request timeout for icmp_seq 3
Request timeout for icmp_seq 4
Request timeout for icmp_seq 5
Request timeout for icmp_seq 6
...

ping指定次数

> ping -c 10 8.8.8.8
PING 8.8.8.8 (8.8.8.8): 56 data bytes
64 bytes from 8.8.8.8: icmp_seq=0 ttl=106 time=256.369 ms
64 bytes from 8.8.8.8: icmp_seq=1 ttl=106 time=255.471 ms
64 bytes from 8.8.8.8: icmp_seq=2 ttl=106 time=255.381 ms
64 bytes from 8.8.8.8: icmp_seq=3 ttl=106 time=255.038 ms
64 bytes from 8.8.8.8: icmp_seq=4 ttl=106 time=260.055 ms
64 bytes from 8.8.8.8: icmp_seq=5 ttl=106 time=255.733 ms
64 bytes from 8.8.8.8: icmp_seq=6 ttl=106 time=254.986 ms
64 bytes from 8.8.8.8: icmp_seq=7 ttl=106 time=254.084 ms
64 bytes from 8.8.8.8: icmp_seq=8 ttl=106 time=255.902 ms
64 bytes from 8.8.8.8: icmp_seq=9 ttl=106 time=256.121 ms--- 8.8.8.8 ping statistics ---
10 packets transmitted, 10 packets received, 0.0% packet loss
round-trip min/avg/max/stddev = 254.084/255.914/260.055/1.513 ms

时间间隔和次数限制的ping

> ping -c 10 -i 0.5 8.8.8.8
PING 8.8.8.8 (8.8.8.8): 56 data bytes
64 bytes from 8.8.8.8: icmp_seq=0 ttl=106 time=255.032 ms
64 bytes from 8.8.8.8: icmp_seq=1 ttl=106 time=256.937 ms
64 bytes from 8.8.8.8: icmp_seq=2 ttl=106 time=255.129 ms
64 bytes from 8.8.8.8: icmp_seq=3 ttl=106 time=256.560 ms
64 bytes from 8.8.8.8: icmp_seq=4 ttl=106 time=264.229 ms
64 bytes from 8.8.8.8: icmp_seq=5 ttl=106 time=254.791 ms
64 bytes from 8.8.8.8: icmp_seq=6 ttl=106 time=254.212 ms
64 bytes from 8.8.8.8: icmp_seq=7 ttl=106 time=254.998 ms
64 bytes from 8.8.8.8: icmp_seq=8 ttl=106 time=255.029 ms
64 bytes from 8.8.8.8: icmp_seq=9 ttl=106 time=255.559 ms--- 8.8.8.8 ping statistics ---
10 packets transmitted, 10 packets received, 0.0% packet loss
round-trip min/avg/max/stddev = 254.212/256.248/264.229/2.771 ms

通过域名ping域名

> ping -c 5 json.im
PING json.im (150.109.147.28): 56 data bytes
64 bytes from 150.109.147.28: icmp_seq=0 ttl=48 time=28.733 ms
64 bytes from 150.109.147.28: icmp_seq=1 ttl=48 time=28.412 ms
64 bytes from 150.109.147.28: icmp_seq=2 ttl=48 time=28.012 ms
64 bytes from 150.109.147.28: icmp_seq=3 ttl=48 time=31.498 ms
64 bytes from 150.109.147.28: icmp_seq=4 ttl=48 time=30.518 ms--- json.im ping statistics ---
5 packets transmitted, 5 packets received, 0.0% packet loss
round-trip min/avg/max/stddev = 28.012/29.435/31.498/1.341 ms

多参数使用

> ping -i 1 -s 1024 -t 123 json.im
PING json.im (150.109.147.28): 1024 data bytes
1032 bytes from 150.109.147.28: icmp_seq=0 ttl=48 time=29.613 ms
1032 bytes from 150.109.147.28: icmp_seq=1 ttl=48 time=28.530 ms
1032 bytes from 150.109.147.28: icmp_seq=2 ttl=48 time=32.768 ms
1032 bytes from 150.109.147.28: icmp_seq=3 ttl=48 time=29.014 ms
1032 bytes from 150.109.147.28: icmp_seq=4 ttl=48 time=30.239 ms
1032 bytes from 150.109.147.28: icmp_seq=5 ttl=48 time=27.815 ms
1032 bytes from 150.109.147.28: icmp_seq=6 ttl=48 time=31.311 ms
1032 bytes from 150.109.147.28: icmp_seq=7 ttl=48 time=34.554 ms
1032 bytes from 150.109.147.28: icmp_seq=8 ttl=48 time=41.600 ms
1032 bytes from 150.109.147.28: icmp_seq=9 ttl=48 time=29.513 ms
1032 bytes from 150.109.147.28: icmp_seq=10 ttl=48 time=28.320 ms
1032 bytes from 150.109.147.28: icmp_seq=11 ttl=48 time=29.449 ms
1032 bytes from 150.109.147.28: icmp_seq=12 ttl=48 time=29.127 ms
1032 bytes from 150.109.147.28: icmp_seq=13 ttl=48 time=28.583 ms
1032 bytes from 150.109.147.28: icmp_seq=14 ttl=48 time=28.064 ms

-i 3 发送周期为 3秒 -s 设置发送包的大小为1024 -t 设置TTL值为 255

指定源接口(网卡)

默认情况下,ping将通过默认路由发送ICMP包。如果您的计算机上有多个接口,则可以使用以下-I选项指定源接口:

> ping -I eth0 8.8.8.8
PING 8.8.8.8 (8.8.8.8) from 192.168.0.3 eth0: 56(84) bytes of data.
64 bytes from 8.8.8.8: icmp_seq=2 ttl=109 time=201 ms
64 bytes from 8.8.8.8: icmp_seq=3 ttl=109 time=201 ms
64 bytes from 8.8.8.8: icmp_seq=4 ttl=109 time=200 ms
64 bytes from 8.8.8.8: icmp_seq=5 ttl=109 time=201 ms
64 bytes from 8.8.8.8: icmp_seq=6 ttl=109 time=201 ms
64 bytes from 8.8.8.8: icmp_seq=7 ttl=109 time=201 ms
64 bytes from 8.8.8.8: icmp_seq=9 ttl=109 time=201 ms
64 bytes from 8.8.8.8: icmp_seq=10 ttl=109 time=201 ms
...

下面的命令将执行ping 8.8.8.8使用eth0作为源接口

指定Internet协议

运行ping命令时,它将使用IPv4或IPv6,具体取决于您的计算机DNS设置。

ping -4 DESTINATION ping -6 DESTINATION

强制ping使用IPv4传递-4选项或使用其别名ping4。对于IPv6传递-6选项或使用ping6。

> ping -4 8.8.8.8
PING 8.8.8.8 (8.8.8.8) 56(84) bytes of data.
64 bytes from 8.8.8.8: icmp_seq=2 ttl=109 time=200 ms
64 bytes from 8.8.8.8: icmp_seq=4 ttl=109 time=201 ms
64 bytes from 8.8.8.8: icmp_seq=5 ttl=109 time=200 ms
64 bytes from 8.8.8.8: icmp_seq=6 ttl=109 time=200 ms
64 bytes from 8.8.8.8: icmp_seq=8 ttl=109 time=201 ms
64 bytes from 8.8.8.8: icmp_seq=13 ttl=109 time=200 ms
64 bytes from 8.8.8.8: icmp_seq=16 ttl=109 time=201 ms
64 bytes from 8.8.8.8: icmp_seq=17 ttl=109 time=200 ms
64 bytes from 8.8.8.8: icmp_seq=19 ttl=109 time=200 ms
64 bytes from 8.8.8.8: icmp_seq=21 ttl=109 time=201 ms
...

原文链接:https://rumenz.com/rumenbiji/linux-ping.html
微信公众号:入门小站

【Linux常用命令速查手册】关注【入门小站】,后台回复 「1001」 自取。


http://chatgpt.dhexx.cn/article/yrdnAscO.shtml

相关文章

Linux命令学习教程【建议收藏】

大家好,我是辣条。 目录 一、操作系统 二、虚拟机软件 三、Ubuntu操作系统 四、Linux内核及发行版 五、查看目录命令 六、切换目录命令 七、绝对路径和相对路径 八、创建、删除文件及目录命令 九、复制、移动文件及目录命令 十、终端命令格式的组成 十…

Linux 命令完全手册

这本《Linux 命令完全手册》将涵盖你作为开发者需要用到的 60 个核心 Bash 命令。每个命令都附有代码示例和用法提示。 这本手册遵循二八定律:你花两成的时间学习一个主题,便可获得其中八成的知识。 我觉得这种方式能给你一个全面的概述。 这本手册并…

Linux新手入门教程

下面给你讲解新手第一次接触Linux操作系统 一、学习Linux:1、Linux系统、Linux命令、ssh、websever(apache)、MySQL、缓存、PHP、Python、java、必备服务 2、Linux能做什么:企业服务器、嵌入式开发 3、Linux的学习方法(强迫自己一个学习环境)&#xff…

linux怎样打开终端命令,Linux命令-初学者入门之打开终端

打开终端 在Ubuntu 18.04系统上,您可以通过单击屏幕左上方的“ 活动”项,然后键入“terminal”, “command”, “prompt” or “shell”的前几个字母来找到终端的启动器。是的,开发人员已经为启动器设置了所有最常见的同义词,因此您应该不会有任何问题。 其他版本的Linux或…

阿里云送你Hands-on Labs X linux联名T恤——阿里云高校计划《Linux命令入门》训练营

阿里云送你Hands-on Labs X linux联名T恤——阿里云高校计划《Linux命令入门》训练营 准备工作进行实验进入考试领取T恤附:考题附:T恤网图阿里云高校计划《Linux命令入门》训练营,学习Linux命令,搭建云上博客,学完领阿里云爆款T恤。每天零点发布T恤500件,6月20前有效。活…

linux常用命令大全,入门基础版

目录 一、常用的基本命令 1.目录管理 2.进程管理 3.修改文件属性 4.文件内容查看 5.安装软件 6.Vim编辑器 7.基本属性 8.账号管理 9.用户组管理 10.磁盘管理 二、Linux 目录结构 一、常用的基本命令 1.目录管理 ls: #列出目录-a: #参数: all ,查看全部的文件,包…

Linux基本命令

目录 1、Linux的目录结构 Linux路径的描述方式 2、Linux命令入门 Linux命令基础格式 ls命令 隐藏文件、文件夹: pwd命令 cd命令 HOME目录 相对路径、绝对路径 特殊路径符 mkdir命令(常见文件) touch命令(创建文件夹&am…

常用的Linux命令(小白入门指南)

下面为大家整理一些常用的linux命令 文章目录 linux命令一.文件与目录操作命令1.clear(ctrll)2.ls(list)/tree3.cd(change directory)4.touch5.mkdir(make directory)6.cp(copy)7.mv(move)8.cat9.tar10.rm(remove)11.find12.Senior command(组合命令) 二.用户权限操作命令1.查看…

linux Shell入门

一、初始shell (1)什么是shell? (2)什么是变量? (3)程序和进程的区别? 二、语言 (1)计算能理解的语言是什么呢 ? (2…

linux常用vim命令大全,Linux基础入门 vim常用命令详解

介绍 vim是一个文本编辑程序 没有菜单,只有命令,且命令繁多 命令行模式下相关命令 1. 移动光标 h: ← 左移 ​ l: → 右移 ​ j: ↓ 下移 ​ k: ↑ 上移 ​ gg: 光标移动文件开头 ​ G: 光标移动到文件末尾 ​ 0: 光标移动到行首 ​ $: 光标移动到行尾 ​ 123G:跳转到第123行…

Linux常用命令

🏆作者简介:哪吒,CSDN2022博客之星Top1、CSDN2021博客之星Top2、多届新星计划导师✌、博客专家💪 ,专注Java硬核干货分享,立志做到Java赛道全网Top N。 🏆本文收录于,Java基础教程系列,目前已经700+订阅,CSDN最强Java专栏,包含全部Java基础知识点、Java8新特性、…

linux入门命令总结

1.登录: Login: root(管理员名) Password:linux的密码 2.关机、注销、重启(关机:halt ,shutdown, init 0,poweroff)         (重启:halt ,shutdown, init 0,…

linux命令入门

这一系列的Linux入门都是本人在《鸟哥的Linux私房菜》的基础上总结的基本内容,主要是记录下自己的学习过程,也方便大家简要的了解 Linux Distribution是Ubuntu而不是书本上推荐的CentOS,建议装双系统,不要使用虚拟机。 代码在gi…

Linux 入门常见命令大全-初学者必看

本文是我在学习linux过程学习到的相关基本命令行。 1.目录相关 ls 查看文件列表 ls –a 查看所有文件其中包括隐藏文件 ls -l 查看本目录文件的信息 ls -lh 文件列表里面的以人以懂的方式呈现。 pwd 查看当前目录的路径 cd 更改路径可以分为两种 1.相对路径&#xff…

【linux操作系统】基础指令(入门必备)

目录 ls指令 🎨基本概念 🎯实例分析 pwd指令 🎨基本概念 🎯实例分析 cd指令 🎨基本概念 🎯实例分析 touch指令 🎨基本概念 🎯实例分析 mkdir指令(重要) &#x1f3a8…

linux常用命令(入门)

linux常用命令(入门) 一、命令行操作体验 在 linux 中,最最重要的就是命令,这就包含了 2 个过程,输入和输出 输入:输入当然就是打开终端,然后按键盘输入,然后按回车,输…

Linux命令大全(入门必备)

文章目录 一、查看系统信息二、日期将日期存入数组 三、系统的关机、重启以及登出四、文件和目录五、文件搜索find查找重复文件 六、挂载文件系统fuser 七、磁盘磁盘空间磁盘速度dd命令 八、用户和群组九、文件的权限十、文件特殊属性十一、打包和压缩文件tarzip/unzip 十二、R…

Java并发工具 JUC 包介绍

1. 前言 java.util.concurrent (缩写 JUC)并发编程包是专门为 Java 并发编程设计的,在正式介绍 Java 并发工具之前,本节先带领大家认识 Java 并发工具包,对 Java 并发工具在组织形式上有一个直观的认识。 本节先介绍…

JAVA并发机制的底层实现原理

JAVA代码在编译后会变成字节码,字节码被类加载器加载到JVM中,JVM执行字节码,最终需要转化为汇编指令在CPU上执行,JAVA中所使用的并发机制依赖于JVM的实现和CPU的指令。 ->参考《JAVA并发编程的艺术》 1.volatile的应用 volat…

【2022最新Java面试宝典】—— Java并发编程面试题(123道含答案)

目录 一、基础知识1. 为什么要使用并发编程2. 多线程应用场景3. 并发编程有什么缺点4. 并发编程三个必要因素是什么?5. Java 程序中怎么保证多线程的运行安全?6. 并行和并发有什么区别?7. 什么是多线程8. 多线程的好处9. 多线程的劣势&#x…