Ubuntu/linux c开发(8)linux ping 命令解析

这篇具有很好参考价值的文章主要介绍了Ubuntu/linux c开发(8)linux ping 命令解析。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

root@san:~# ping -h

Usage
  ping [options] <destination>

Options:
  <destination>      dns name or ip address
  -a                 use audible ping
  -A                 use adaptive ping
  -B                 sticky source address
  -c <count>         stop after <count> replies
  -D                 print timestamps
  -d                 use SO_DEBUG socket option
  -f                 flood ping
  -h                 print help and exit
  -I <interface>     either interface name or address
  -i <interval>      seconds between sending each packet
  -L                 suppress loopback of multicast packets
  -l <preload>       send <preload> number of packages while waiting replies
  -m <mark>          tag the packets going out
  -M <pmtud opt>     define mtu discovery, can be one of <do|dont|want>
  -n                 no dns name resolution
  -O                 report outstanding replies
  -p <pattern>       contents of padding byte
  -q                 quiet output
  -Q <tclass>        use quality of service <tclass> bits
  -s <size>          use <size> as number of data bytes to be sent
  -S <size>          use <size> as SO_SNDBUF socket option value
  -t <ttl>           define time to live
  -U                 print user-to-user latency
  -v                 verbose output
  -V                 print version and exit
  -w <deadline>      reply wait <deadline> in seconds
  -W <timeout>       time to wait for response

IPv4 options:
  -4                 use IPv4
  -b                 allow pinging broadcast
  -R                 record route
  -T <timestamp>     define timestamp, can be one of <tsonly|tsandaddr|tsprespec>

IPv6 options:
  -6                 use IPv6
  -F <flowlabel>     define flow label, default is random
  -N <nodeinfo opt>  use icmp6 node info query, try <help> as argument

命令解析如下

用法:
ping [选项] <目标>
选项:
<目标> dns名称或ip地址

-a

直译(使用可听的ping)主要功能是将目标主机的 DNS 名称解析为 IP 地址,并在 ping 请求中发送;

-A

直译(使用自适应ping) 用于测试网络连接的连通性和网络性能,可以根据网络状况自动调整ping的间隔时间。

-B

粘性源地址,用于禁止ping改变包头的源地址,默认情况下,当使用ping命令时,它会将源地址设置为发送ping请求的机器的IP地址。
然而,在某些情况下,可能需要禁止这种行为,以防止网络上的某些设备或防火墙将ping请求过滤掉。

-c <计数>

在收到<计数>个回复后停止

例子 
ping -c 100 192.168.1.11 ping 100192.168.1.11后自动结束

-D

打印时间戳

例子 
ping -D 192.168.1.11 
[1705559598.181562] 64 bytes from 192.168.1.11: icmp_seq=1 ttl=64 time=0.058 ms

-d

使用SO_DEBUG套接字选项
调试信息可以提供有关ping命令执行的详细信息,例如发送和接收的数据包、网络延迟等。
生成的日志文件默认情况下生成在脚本或命令执行的用户的主目录下。
请注意,您需要具有适当的权限才能使用ping -d选项。

-f

洪水ping
在Linux中,ping -f选项用于执行极限检测。
极限检测是一种特殊类型的ping,用于大量且快速地发送网络封包给目标主机,以查看其响应。使用ping -f选项可以测试目标主机的网络接口和处理器是否能够处理大量请求,并检查网络连接的稳定性。
当使用ping -f选项时,ping命令将使用最大的数据包大小和最短的间隔时间来发送大量的ping请求。这可能会导致目标主机上的网络接口或处理器过载,因此请谨慎使用该选项,并确保您了解其潜在的影响。

-h

打印帮助并退出

-I <接口>

接口名称或地址
默认情况下,ping命令使用主机的默认网络接口发送ping请求。但是,在某些情况下,您可能需要使用其他网络接口发送ping请求。
使用ping -I选项后跟网络接口的名称或IP地址,可以指定ping命令使用该网络接口发送请求。

例如,如果希望通过特定的网络接口(如eth0)发送ping请求,可以执行以下命令:
ping -I eth0 192.168.0.5
上述命令将使用eth0网络接口发送ping请求到IP地址为192.168.0.5的主机。

-i <间隔>

发送每个数据包之间的秒数间隔

例如,以下命令将使用10秒的间隔时间发送ping请求:
ping -i 10 192.168.0.5
上述命令将每10秒发送一次ping请求到IP地址为192.168.0.5的主机,并等待响应。

-L

抑制组播数据包的回环.
ping -L选项用于设置在送出要求信息之前先行发出的数据包数量。
默认情况下,ping命令会先发送一个ping请求,等待目标主机的响应,然后再发送下一个ping请求。但是,使用ping -L选项后跟一个数值,可以设置在发送下一个ping请求之前先行发出的数据包数量。

例如,以下命令将设置在发送下一个ping请求之前先行发出5个数据包:
ping -L 5 192.168.0.5
上述命令将首先发送5个数据包到IP地址为192.168.0.5的主机,然后等待目标主机的响应。

-l <预加载>

在等待回复时发送<预加载>数量的数据包
ping -l选项用于设置在送出要求信息之前先行发出的数据包的大小。
使用ping -l选项后跟一个数值,可以设置先行发出的数据包的大小(以字节为单位)。这可以用于测试网络连接的性能和稳定性。

例如,以下命令将设置先行发出的数据包大小为100字节:
ping -l 100 192.168.0.5
上述命令将首先发送一个100字节的数据包到IP地址为192.168.0.5的主机,然后等待目标主机的响应。

-m <标记>

标记发出的数据包
标记值是一个用于标识数据包的标识符,可以用于路由和过滤等目的。使用ping -M选项后跟一个数值,可以设置要发送的数据包的标记值。

例如,以下命令将设置标记值为0x10:
ping -M 0x10 192.168.0.5
上述命令将发送带有标记值0x10的数据包到IP地址为192.168.0.5的主机。

-M

定义mtu发现,可以是<do|dont|want>之一
在Linux中,ping -M选项用于设置MTU(最大传输单元)分片策略。
MTU是网络通信中一个重要的概念,它表示一个数据包的最大长度。当数据包的大小超过MTU时,它会被分片(fragmented)成多个较小的数据包进行传输。
使用ping -m选项后跟不同的参数可以设置不同的分片策略。以下是几个常见的参数:
do:禁止分片,即使包被丢弃。
want:当包过大时分片。
dont:不设置分片标志(DF flag)。

例如,以下命令将设置MTU分片策略为“do”:
ping -m do 192.168.0.5
上述命令将禁止分片,并发送完整的ping请求到IP地址为192.168.0.5的主机。

-n

不进行dns名称解析

-O

报告未完成的回复

-p <模式>

填充字节的内容
使用ping -p选项后跟一个范本样式,可以设置填充数据包的内容。该选项可以用于测试网络的性能和稳定性,因为不同的填充样式可能会对网络传输产生不同的影响。

例如,以下命令将使用填充样式为“abcd”的ping请求:
ping -p abcd 192.168.0.5
上述命令将发送填充样式为“abcd”的数据包到IP地址为192.168.0.5的主机。

-q

安静输出
使用ping -q选项可以快速查看ping请求的结果,而不必等待和显示每个ping请求的详细输出。

例如,以下命令将只显示ping请求的结果:
ping -q 192.168.0.5
上述命令将快速执行ping请求到IP地址为192.168.0.5的主机,并只显示结果。

-Q

使用服务质量位

-s <大小>

使用<大小>作为要发送的数据字节数
使用ping -s选项后跟一个数值,可以设置发送的数据包大小(以字节为单位)。默认情况下,ping命令发送的数据包大小为56字节(加上8字节的ICMP头,一共是64字节)。通过设置不同的数据包大小,可以测试网络的性能和稳定性。

例如,以下命令将设置发送的数据包大小为100字节:
ping -s 100 192.168.0.5
上述命令将向IP地址为192.168.0.5的主机发送数据包大小为100字节的ping请求。

-S <大小>

使用<大小>作为SO_SNDBUF套接字选项的值
SO_SNDBUF是TCP发送缓冲区的容量上限。当进行send和recv操作时,数据并没有发送出去,而是存放在对应的Send Buffer和Receive Buffer中,立即返回成功。
需要注意的是,SO_SNDBUF的大小并不总是越大越好,因为大的缓冲区可能会导致更多的数据在网络中堆积,从而增加延迟。因此,应根据实际需求和网络状况合理设置SO_SNDBUF的大小。
另外,SO_SNDBUF的大小在内核中是有限制的,不能无限增大。具体的大小可以通过查看内核参数来获取。例如,在Linux系统中,可以使用命令sysctl -a来查看内核参数,其中包含了SO_SNDBUF的值。

-t

定义生存时间(TTL) 常用于设置存活数值(TTL,Time To Live)。
TTL是IP包被路由器丢弃之前允许通过的最大网段数量。通常情况下,不需要特别设置这个值。 使用ping
-t选项后跟一个数值,可以设置存活数值(TTL)。

例如,以下命令将设置TTL的值为64:
ping -t 64 192.168.0.5
上述命令将向IP地址为192.168.0.5的主机发送ping请求,并设置TTL的值为64

-U

打印用户到用户的延迟

-v

详细输出
使用ping -v选项可以查看每个ping请求的详细信息,包括每个请求的响应时间、响应数据大小等。默认情况下,ping命令只显示结果,不显示每个请求的详细信息。

例如,以下命令将使用ping -v选项详细显示ping请求的过程:
ping -v 192.168.0.5
上述命令将向IP地址为192.168.0.5的主机发送ping请求,并详细显示每个请求的执行过程。

-V

打印版本并退出

-w <截止日期>

回复等待<截止日期>秒

-W <超时>

等待响应的时间

IPv4选项:
-4 使用IPv4
-b 允许ping广播地址
-R 记录路由
-T <时间戳> 定义时间戳,可以是<tsonly|tsandaddr|tsprespec>之一
IPv6选项:
-6 使用IPv6
-F <流标签> 定义流标签,默认为随机值
-N <nodeinfo opt> 使用icmp6节点信息查询,尝试将<帮助>作为参数

ping结果指令解析

ping 192.168.40.20
PING 192.168.40.20 (192.168.40.20) 56(84) bytes of data.
64 bytes from 192.168.40.20: icmp_seq=1 ttl=127 time=0.732 ms
64 bytes from 192.168.40.20: icmp_seq=2 ttl=127 time=0.716 ms
64 bytes from 192.168.40.20: icmp_seq=3 ttl=127 time=0.770 ms
64 bytes from 192.168.40.20: icmp_seq=4 ttl=127 time=0.804 ms
64 bytes from 192.168.40.20: icmp_seq=5 ttl=127 time=1.06 ms
^C
--- 192.168.40.20 ping statistics ---
5 packets transmitted, 5 received, 0% packet loss, time 4124ms
rtt min/avg/max/mdev = 0.716/0.817/1.063/0.126 ms

这里面的几个参数:

icmp_seq

ping序列,从1开始;

bytes

数据包大小,也就是字节。

time

响应时间,这个时间越小,说明你连接这个地址速度越快。

TTL

Time To Live,表示DNS记录在DNS服务器上存在的时间,它是IP协议包的一个值,告诉路由器该数据包何时需要被丢弃。
拓展:

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

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

rtt min/avg/max/mdev

表示最小/最大、平均响应时间和本机硬件耗费时间

PS:linux版本信息如下

Linux localhost.localdomain 4.19.90-24.4.v2101.ky10.aarch64 #1 SMP Mon May 24 14:45:37 CST 2021 aarch64 aarch64 aarch64 GNU/Linux

不同版本有效命令不尽相同,具体使用-h查看自己的命令解析。文章来源地址https://www.toymoban.com/news/detail-804411.html

到了这里,关于Ubuntu/linux c开发(8)linux ping 命令解析的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 使用一根网线,让Ubuntu和正点原子I.MX6ULL开发板互相ping通

    准备一根网线即可 2.1 找根网线将I.MX6ULL和电脑连起来 2.2 让I.MX6ULL通电运行起来,我这里使用的是正点原子版本的内核、 2.3 进入电脑的网络连接后,按照如下步骤操作 2.4 将ip地址、子网掩码、默认网关设置如下,= 注意,子网掩码一定要是255.255.255.0 IP地址推荐使用192.168.5.

    2024年02月19日
    浏览(31)
  • linux C.UTF-8和en-US.UTF-8语言环境有什么区别?(中文乱码问题)locale命令 centos、ubuntu修改编码集(没搞定!)

    我在ubuntu16.04虚拟机和英伟达盒子ubuntu18.04上分别部署了ngrest服务 用postman请求,ubuntu16.04虚拟机返回的中文是乱码,英伟达盒子ubuntu18.04不是乱码 用vi打开文件,ubuntu16.04虚拟机显示中文不是乱码,英伟达盒子ubuntu18.04是乱码 我用 echo $LANG 命令查看发现(或者直接用 locale 命令

    2024年02月06日
    浏览(36)
  • C语言-ubuntu下的命令

    目录 linux命令 【1】打开关闭终端 【2】终端 【3】ls命令 【4】cd 切换路径 【5】新建 【6】删除 【7】复制 【8】移动 【9】常用快捷键 【10】vi编辑器 【11】简单编程步骤 任务: 【1】打开关闭终端 打开终端: 1. 直接点击 2. ctrl alt t : 在家目录下打开终端 3. ctrl shift n :在当前

    2024年02月16日
    浏览(26)
  • 复习第一课 C语言-ubuntu下的命令

    目录 linux命令 【1】打开关闭终端 【2】终端 【3】ls命令 【4】cd 切换路径 【5】新建 【6】删除 【7】复制 【8】移动 【9】常用快捷键 【10】vi编辑器 【11】简单编程步骤 任务: 【1】打开关闭终端 打开终端: 1. 直接点击 2. ctrl alt t : 在家目录下打开终端 3. ctrl shift n :在当前

    2024年02月16日
    浏览(26)
  • Ubuntu----Linux命令-----防火墙(查看、关闭、启动)

    一、查看防火墙状态 命令:ufw status 说明:         ·活动:防火墙是开启的         ·不活动:防火墙是关闭的 二、开启防火墙 命令:sudo ufw enable 开启防火墙后,可以查看防火墙状态 三、关闭防火墙 命令:sudo ufw disable

    2024年02月09日
    浏览(32)
  • Ubuntu22.04 搭建 OpenHarmony 命令行开发环境

    在本文中,我们将介绍如何使用命令行工具在你的设备上安装OpenHarmony操作系统。OpenHarmony是一个开源的、面向物联网(IoT)设备的操作系统,它提供了一套全面的开发框架,使得开发者可以更容易地创建和部署IoT应用。 在本次安装中,使用的电脑是基于Ubuntu22的物理机器,按

    2024年02月03日
    浏览(43)
  • Linux图形界面(ubuntu)与命令行终端界面切换

    提示:这里可以添加本文要记录的大概内容: 如果linux系统安装了“全套”,那么linux开机会默认进入到图形界面,这个时候就可以用 [CTRL]+[ALT]+F2切换到命令行界面(类似于windows的DOS),如果还想切换到图形界面,就用 [CTRL]+[ALT]+F7切换。 如果系统安装了图形界面,但是一开

    2024年02月08日
    浏览(37)
  • linux(ubuntu)下用命令行安装qt环境

    sudo apt-get install qt5-default sudo apt-get install qtcreator sudo apt-get install qt5-qmake sudo apt install cmake sudo apt install g++ gcc sudo apt-get install qtdeclarative5-dev sudo apt install qml-module-qtquick-controls2 sudo apt-get install qtmultimedia5-dev sudo apt-get install libqt5multimedia5-plugins sudo apt install qml-module-qtmultimedia s

    2024年02月14日
    浏览(28)
  • Linux(ubuntu)rar、unrar命令安装及使用详解

    简述 需要安装 rar 才能使用该命令,unrar 命令用于解压 *.rar 格式文件,即从 rar 档案中提取文件。使用 unrar --help 查看帮助信息,可以看到 unrar 只包含了 rar 的一部分命令而已,因此使用 rar 就可以完成所有操作。 安装 1.如果是以tarball形式安装安装,去rar网站下载相应版本的

    2024年02月07日
    浏览(31)
  • linux_U盘的挂载、卸载 (ubuntu虚拟机、mount命令、umount命令)

    接上一篇:linux修改文件权限、文件所属用户、文件所属组,linux创建软链接、硬链接,linux软件安装和卸载,文件颜色代表意义 今天来给大家分享一下 ubuntu虚拟机 的 U盘挂载和卸载 以及一些相关问题,挂载又分为: 自动挂载和手动挂载 。手动挂载和卸载主要使用的是 mou

    2024年02月15日
    浏览(34)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包