
ping 命令是一个网络工具,用于测试主机之间的连通性。它通过发送ICMP(Internet Control Message Protocol)回声请求报文到目标主机,并等待接收回声应答来判断网络连接的状态。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).ping [选项] <目标><目标>:可以是DNS名称或IP地址。选项 | 描述 |
|---|---|
| 使用可听音效进行ping操作。 |
| 使用自适应ping,根据网络状况调整发送速率。 |
| 固定源地址,确保数据包从同一接口发出。 |
| 在收到<计数>个回复后停止。 |
| 打印时间戳。 |
| 使用SO_DEBUG套接字选项。 |
| 洪水式ping,快速发送数据包。 |
| 显示帮助信息并退出。 |
| 指定使用的网络接口名或地址。 |
| 设置每次发送之间的时间间隔(秒)。 |
| 抑制多播数据包的回环。 |
| 在等待回复时发送<预加载>数量的数据包。 |
| 给外出的数据包打上标记。 |
| 定义MTU发现,可以是 |
| 不解析DNS名称。 |
| 报告未完成的回复。 |
| 设置填充字节的内容。 |
| 安静输出。 |
| 使用服务质量<tclass>位。 |
| 发送数据包的数据字节数。 |
| 将SO_SNDBUF套接字选项设置为<大小>。 |
| 定义生存时间。 |
| 打印用户到用户的延迟。 |
| 详细输出。 |
| 显示版本信息并退出。 |
| 等待回复的最大时间(秒)。 |
| 等待响应的时间(毫秒)。 |
选项 | 描述 |
|---|---|
| 使用IPv4。 |
| 允许向广播地址发送ping。 |
| 记录路由。 |
| 定义时间戳,可以是 |
选项 | 描述 |
|---|---|
| 使用IPv6。 |
| 定义流标签,默认为随机。 |
| 使用ICMPv6节点信息查询,尝试使用 |
例如我们需要检查本机与 8.8.8.8 的连接状态,可以执行:
ping 8.8.8.8
例如我们需要检查本机与一个域名如 www.baidu.com,则可以使用以下命令:
ping www.baidu.com
我们可以按 Ctrl+C 来中断ping进程,并查看最终的统计信息。

如果我们不想命令持续运行,可以使用
-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字段 | 解释 |
|---|---|
| 开始向 |
| 收到第一个响应。数据包大小为64字节,序列号为1,TTL值为112,往返时间(RTT)为30.0毫秒。 |
| 收到第二个响应。数据包大小为64字节,序列号为2,TTL值为112,往返时间为29.8毫秒。 |
| 收到第三个响应。数据包大小为64字节,序列号为3,TTL值为112,往返时间为29.9毫秒。 |
| 收到第四个响应。数据包大小为64字节,序列号为4,TTL值为112,往返时间为30.0毫秒。 |
字段 | 解释 |
|---|---|
| 统计信息开始。 |
| 共发送了4个数据包,收到了4个响应,没有丢包,整个过程耗时3004毫秒。 |
| 往返时间统计: - 最小值:29.802毫秒 - 平均值:29.937毫秒 - 最大值:30.036毫秒 - 标准偏差:0.101毫秒 |
ping -c 4 8.8.8.8我们可以使用
-i选项来设定每两次发送之间的秒数,这里设置为每隔2秒发送一次。
ping -i 2 8.8.8.8使用 -s 选项来定义发送的数据包大小(字节),注意实际发送的总大小会加上ICMP头部的8字节。
ping -c 4 -s 1024 8.8.8.8
如果我们只需要查看统计结果而不关心每个数据包的具体信息,可以使用 -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-f),这可能会被视为拒绝服务攻击。-n 选项禁用DNS解析,以加快响应速度。-v 选项获取详细输出,有助于故障排除。-R 选项记录返回路径上的路由器,但需目标主机支持。-A 选项启用自适应ping,根据网络状况调整发送速率。-I 选项指定源地址,适用于多网卡环境。原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。