简介
ping是一种计算机网络工具,用来测试数据包能否透过IP协议到达特定主机。ping的运作原理是向目标主机传出一个ICMP的请求回显数据包,并等待接收回显回应数据包。程序会按时间和成功响应的次数估算丢包率和数据包往返时间(网络时延)。
安装
一般情况下,不论是windows还是linux主机,都已预先安装好ping软件
# ubuntu 22.04
ubuntu:~$ sudo apt install iputils-ping
使用帮助
linux
ubuntu:~$ 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).
windows
C:\Users\tp>ping
用法: ping [-t] [-a] [-n count] [-l size] [-f] [-i TTL] [-v TOS]
[-r count] [-s count] [[-j host-list] | [-k host-list]]
[-w timeout] [-R] [-S srcaddr] [-c compartment] [-p]
[-4] [-6] target_name
选项:
-t Ping 指定的主机,直到停止。
若要查看统计信息并继续操作,请键入 Ctrl+Break;
若要停止,请键入 Ctrl+C。
-a 将地址解析为主机名。
-n count 要发送的回显请求数。
-l size 发送缓冲区大小。
-f 在数据包中设置“不分段”标记(仅适用于 IPv4)。
-i TTL 生存时间。
-v TOS 服务类型(仅适用于 IPv4。该设置已被弃用,
对 IP 标头中的服务类型字段没有任何
影响)。
-r count 记录计数跃点的路由(仅适用于 IPv4)。
-s count 计数跃点的时间戳(仅适用于 IPv4)。
-j host-list 与主机列表一起使用的松散源路由(仅适用于 IPv4)。
-k host-list 与主机列表一起使用的严格源路由(仅适用于 IPv4)。
-w timeout 等待每次回复的超时时间(毫秒)。
-R 同样使用路由标头测试反向路由(仅适用于 IPv6)。
根据 RFC 5095,已弃用此路由标头。
如果使用此标头,某些系统可能丢弃
回显请求。
-S srcaddr 要使用的源地址。
-c compartment 路由隔离舱标识符。
-p Ping Hyper-V 网络虚拟化提供程序地址。
-4 强制使用 IPv4。
-6 强制使用 IPv6。
使用示例
windows和linux的ping命令参数有些差异,具体查看命令帮助,以下以windows系统示例
命令行界面打开方式,右击windows按钮-->运行-->输入cmd,然后点击确定
ping命令执行示例
# 不加任何参数,默认发送4个请求包,大小为32字节
C:\Users\tp>ping www.baidu.com
正在 Ping www.a.shifen.com [153.3.238.102] 具有 32 字节的数据:
来自 153.3.238.102 的回复: 字节=32 时间=21ms TTL=51
来自 153.3.238.102 的回复: 字节=32 时间=22ms TTL=51
来自 153.3.238.102 的回复: 字节=32 时间=20ms TTL=51
来自 153.3.238.102 的回复: 字节=32 时间=20ms TTL=51
153.3.238.102 的 Ping 统计信息:
数据包: 已发送 = 4,已接收 = 4,丢失 = 0 (0% 丢失),
往返行程的估计时间(以毫秒为单位):
最短 = 20ms,最长 = 22ms,平均 = 20ms
# -n 参数指定数据包数量,-l 指定数据包大小
C:\Users\tp>ping -n 2 -l 550 www.baidu.com
正在 Ping www.a.shifen.com [153.3.238.102] 具有 550 字节的数据:
来自 153.3.238.102 的回复: 字节=550 时间=21ms TTL=51
来自 153.3.238.102 的回复: 字节=550 时间=20ms TTL=51
153.3.238.102 的 Ping 统计信息:
数据包: 已发送 = 2,已接收 = 2,丢失 = 0 (0% 丢失),
往返行程的估计时间(以毫秒为单位):
最短 = 20ms,最长 = 21ms,平均 = 20ms
# -t参数表示一直ping,直到手动停止
C:\Users\tp>ping www.baidu.com -t
正在 Ping www.a.shifen.com [153.3.238.102] 具有 32 字节的数据:
来自 153.3.238.102 的回复: 字节=32 时间=21ms TTL=51
来自 153.3.238.102 的回复: 字节=32 时间=24ms TTL=51
来自 153.3.238.102 的回复: 字节=32 时间=20ms TTL=51
来自 153.3.238.102 的回复: 字节=32 时间=20ms TTL=51
来自 153.3.238.102 的回复: 字节=32 时间=20ms TTL=51
来自 153.3.238.102 的回复: 字节=32 时间=20ms TTL=51
来自 153.3.238.102 的回复: 字节=32 时间=20ms TTL=51
来自 153.3.238.102 的回复: 字节=32 时间=19ms TTL=51
来自 153.3.238.102 的回复: 字节=32 时间=20ms TTL=51
153.3.238.102 的 Ping 统计信息:
数据包: 已发送 = 9,已接收 = 9,丢失 = 0 (0% 丢失),
往返行程的估计时间(以毫秒为单位):
最短 = 19ms,最长 = 24ms,平均 = 20ms
Control-C
^C
种草
本文为"计算机网络实用工具系列"的内容之一,会持续更新其它相关博文。
我的博文内容主要针对“计算机网络”、“安全”、“运维”和“云计算”方向,感兴趣朋友的请关注我,我将不定期发布新的博文并不断改进已发布博文。
后期依据大家对博文的评论,点赞及关注情况,针对大家感兴趣的内容我也会录制视频并整理出成套的学习资料免费分享给大家,期待能和大家一起交流学习。