Linux系统之ping命令的基本使用
【摘要】 Linux系统之ping命令的基本使用
一、ping命令介绍
ping 命令是一个网络工具,用于测试主机之间的连通性。它通过发送ICMP(Internet Control Message Protocol)回声请求报文到目标主机,并等待接收回声应答来判断网络连接的状态。ping 命令非常有用,因为它可以帮助用户快速诊断基本的网络问题,如确定远程主机是否可达、测量数据包往返时间以及检查丢包率等。
二、ping命令的使用帮助
2.1 ping命令的帮助信息
在命令行终端中,我们使用
-h
选项查询ping命令的基本帮助信息。
root@jeven01:~# 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
For more details see ping(8).
2.2 ping命令帮助解释
用法
ping [选项] <目标>
<目标>
:可以是DNS名称或IP地址。
选项
选项 | 描述 |
---|---|
-a |
使用可听音效进行ping操作。 |
-A |
使用自适应ping,根据网络状况调整发送速率。 |
-B |
固定源地址,确保数据包从同一接口发出。 |
-c <计数> |
在收到<计数>个回复后停止。 |
-D |
打印时间戳。 |
-d |
使用SO_DEBUG套接字选项。 |
-f |
洪水式ping,快速发送数据包。 |
-h |
显示帮助信息并退出。 |
-I <接口> |
指定使用的网络接口名或地址。 |
-i <间隔> |
设置每次发送之间的时间间隔(秒)。 |
-L |
抑制多播数据包的回环。 |
-l <预加载> |
在等待回复时发送<预加载>数量的数据包。 |
-m <标记> |
给外出的数据包打上标记。 |
-M <pmtud选项> |
定义MTU发现,可以是do 、dont 、want 之一。 |
-n |
不解析DNS名称。 |
-O |
报告未完成的回复。 |
-p <模式> |
设置填充字节的内容。 |
-q |
安静输出。 |
-Q <tclass> |
使用服务质量<tclass>位。 |
-s <大小> |
发送数据包的数据字节数。 |
-S <大小> |
将SO_SNDBUF套接字选项设置为<大小>。 |
-t <TTL> |
定义生存时间。 |
-U |
打印用户到用户的延迟。 |
-v |
详细输出。 |
-V |
显示版本信息并退出。 |
-w <截止时间> |
等待回复的最大时间(秒)。 |
-W <超时> |
等待响应的时间(毫秒)。 |
IPv4 特有选项
选项 | 描述 |
---|---|
-4 |
使用IPv4。 |
-b |
允许向广播地址发送ping。 |
-R |
记录路由。 |
-T <时间戳> |
定义时间戳,可以是tsonly 、tsandaddr 、tsprespec 之一。 |
IPv6 特有选项
选项 | 描述 |
---|---|
-6 |
使用IPv6。 |
-F <流标签> |
定义流标签,默认为随机。 |
-N <节点信息选项> |
使用ICMPv6节点信息查询,尝试使用help 作为参数以获取更多信息。 |
三、ping命令的基本使用
3.1测试与特定IP地址或域名的连通性
例如我们需要检查本机与 8.8.8.8 的连接状态,可以执行:
ping 8.8.8.8
例如我们需要检查本机与一个域名如www,baidu.com,则可以使用以下命令:
ping www.baidu.com
我们可以按 Ctrl+C 来中断ping进程,并查看最终的统计信息。
3.2 指定发送的数据包数量
如果我们不想命令持续运行,可以使用
-c
选项后跟一个数字来限制发送的ICMP请求次数。
root@jeven01:~# ping -c 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=1 ttl=112 time=30.0 ms
64 bytes from 8.8.8.8: icmp_seq=2 ttl=112 time=29.8 ms
64 bytes from 8.8.8.8: icmp_seq=3 ttl=112 time=29.9 ms
64 bytes from 8.8.8.8: icmp_seq=4 ttl=112 time=30.0 ms
--- 8.8.8.8 ping statistics ---
4 packets transmitted, 4 received, 0% packet loss, time 3004ms
rtt min/avg/max/mdev = 29.802/29.937/30.036/0.101 ms
字段 | 解释 |
---|---|
PING 8.8.8.8 (8.8.8.8) 56(84) bytes of data. |
开始向 8.8.8.8 发送ICMP回声请求。每个数据包的实际大小为56字节,加上8字节的ICMP头部和20字节的IP头部,总共84字节。 |
64 bytes from 8.8.8.8: icmp_seq=1 ttl=112 time=30.0 ms |
收到第一个响应。数据包大小为64字节,序列号为1,TTL值为112,往返时间(RTT)为30.0毫秒。 |
64 bytes from 8.8.8.8: icmp_seq=2 ttl=112 time=29.8 ms |
收到第二个响应。数据包大小为64字节,序列号为2,TTL值为112,往返时间为29.8毫秒。 |
64 bytes from 8.8.8.8: icmp_seq=3 ttl=112 time=29.9 ms |
收到第三个响应。数据包大小为64字节,序列号为3,TTL值为112,往返时间为29.9毫秒。 |
64 bytes from 8.8.8.8: icmp_seq=4 ttl=112 time=30.0 ms |
收到第四个响应。数据包大小为64字节,序列号为4,TTL值为112,往返时间为30.0毫秒。 |
字段 | 解释 |
---|---|
--- 8.8.8.8 ping statistics --- |
统计信息开始。 |
4 packets transmitted, 4 received, 0% packet loss, time 3004ms |
共发送了4个数据包,收到了4个响应,没有丢包,整个过程耗时3004毫秒。 |
rtt min/avg/max/mdev = 29.802/29.937/30.036/0.101 ms |
往返时间统计: - 最小值:29.802毫秒 - 平均值:29.937毫秒 - 最大值:30.036毫秒 - 标准偏差:0.101毫秒 |
- 命令:
ping -c 4 8.8.8.8
- 目标:8.8.8.8(Google的公共DNS服务器)
- 发送的数据包数量:4
- 接收的数据包数量:4
- 丢包率:0%
- 最小往返时间:29.802毫秒
- 平均往返时间:29.937毫秒
- 最大往返时间:30.036毫秒
- 标准偏差:0.101毫秒
3.3 设置每次发送之间的时间间隔:
我们可以使用
-i
选项来设定每两次发送之间的秒数,这里设置为每隔2秒发送一次。
ping -i 2 8.8.8.8
3.4 指定数据包大小
使用 -s 选项来定义发送的数据包大小(字节),注意实际发送的总大小会加上ICMP头部的8字节。
ping -c 4 -s 1024 8.8.8.8
3.5 仅显示摘要信息
如果我们只需要查看统计结果而不关心每个数据包的具体信息,可以使用 -q 选项。
root@jeven01:~# ping -c 4 -q 8.8.8.8
PING 8.8.8.8 (8.8.8.8) 56(84) bytes of data.
--- 8.8.8.8 ping statistics ---
4 packets transmitted, 4 received, 0% packet loss, time 3004ms
rtt min/avg/max/mdev = 29.206/29.735/29.980/0.315 ms
四、注意事项
- 确保你有足够的权限(如root用户),特别是在使用某些高级选项时。
- 检查目标地址是否正确且可解析,无论是IP地址还是域名。
- 选择合理的数据包大小,避免因过大导致网络设备无法处理。
- 设置适当的时间间隔,避免过短导致网络拥塞或被视为攻击行为。
- 控制发送的数据包数量,过多的数据包可能对网络造成不必要的负担。
- 设置合理的超时时间,以避免误判丢包或等待时间过长。
- 避免滥用洪水式ping (
-f
),这可能会被视为拒绝服务攻击。 - 检查防火墙规则,确保ICMP请求未被阻止。
- 使用
-n
选项禁用DNS解析,以加快响应速度。 - 使用
-v
选项获取详细输出,有助于故障排除。 - 使用
-R
选项记录返回路径上的路由器,但需目标主机支持。 - 使用
-A
选项启用自适应ping,根据网络状况调整发送速率。 - 使用
-I
选项指定源地址,适用于多网卡环境。
【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱:
cloudbbs@huaweicloud.com
- 点赞
- 收藏
- 关注作者
评论(0)