2018年04月12日,一个技术伙伴让我ping一个大包检测服务器网络吞吐,我听后一脸懵逼,因为我除了用ping检测服务器是否联通,其他一无所知。
百度后发现ping还有好多用法.
Ping的格式:
ping [ -d] [ -D ] [ -n ] [ -q ] [ -r] [ -v] [ \ -R ] [ -a addr_family ] [ -c Count ] [ -w timeout ] [ -f | -i \ Wait ] [ -l Preload ] [ -p Pattern ] [ -s PacketSize ] [ -S hostname/IP addr ] \ [ -L ] [ - I a.b.c.d. ] [ -o interface ] [ -T ttl ] Host [ PacketSize ] \ [ Count ]
标志
-c Count |
指定要被发送(或接收)的回送信号请求的数目,由 Count 变量指出。 |
-w timeout |
这个选项仅和 -c 选项一起才能起作用。它使 ping 命令以最长的超时时间去等待应答(发送最后一个信息包后)。 |
-d |
开始套接字级别的调试。 |
-D |
这个选项引起 ICMP ECHO_REPLY 信息包向标准输出的十六进制转储。 |
-f |
指定 flood-ping 选项。 -f 标志“倾倒”或输出信息包,在它们回来时或每秒 100 次,选择较快一个。每一次发送 ECHO_REQUEST,都打印一个句号,而每接收到一个 ECHO_REPLY 信号,就打印一个退格。这就提供了一种对多少信息包被丢弃的信息的快速显示。仅仅 root 用户可以使用这个选项。
注: 这在网络上将非常困难,必须小心使用。Flood ping 命令仅仅 root 用户可以使用。
-f 标志与
-i
Wait 标志不兼容。
|
-I a.b.c.d |
指定被 a.b.c.d 标明的接口将被用于向外的 IPv4 多点广播。-I 标志是大写的 i 。 |
-o interface |
指出 interface 将被用于向外的 IPv6 多点广播。接口以 “en0”,“tr0”等的形式指定。 |
-i Wait |
在每个信息包发送之间等待被 Wait 变量指定的时间(秒数)。缺省值是在每个信息包发送之间等待 1 秒。这个选项与 -f 标志不兼容。 |
-L |
对多点广播 ping 命令禁用本地回送。 |
-l Preload |
在进入正常行为模式(每秒 1 个)前尽快发送 Preload 变量指定数量的信息包。-l 标志是小写的 L。 |
-n |
指定仅输出数字。不企图去查寻主机地址的符号名。 |
-p Pattern |
指定用多达 16 个“填充”字节去填充你发送的信息包。这有利于诊断网络上依赖数据的问题。例如,-p ff 全部用 1 填充信息包。 |
-q |
指定静默输出。除了在启动和结束时显示总结行外什么也不显示。 |
-r |
忽略路由表直接送到连接的网络上的主机上。如果 主机 不在一个直接连接的网络上,ping 命令将产生一个错误消息。 这个选项可以被用来通过一个不再有路由经过的接口去 ping 一个本地主机。 |
-R |
指定记录路由选项。-R 标志包括 ECHO_REQUEST 信息包中的 RECORD_ROUTE 选项,并且显示返回信息包上的路由缓冲。
注: IP 头仅仅大到适合 9 个这样的路由。而且,许多主机和网关忽略这个选项。
|
-a addr_family |
映射 ICMP 信息包的目的地址到 IPv6 格式,如果 addr_family 等于 “inet6”的话。 |
-s PacketSize |
指定要发送数据的字节数。缺省值是 56,当和 8 字节的 ICMP 头数据合并时被转换成 64 字节的 ICMP 数据。 |
-S hostname/IP addr |
将 IP 地址用作发出的 ping 信息包中的源地址。在具有不止一个 IP 地址的主机上,可以使用 -S 标志来强制源地址为除了软件包在其上发送的接口的 IP 地址外的任何地址。如果 IP 地址不是以下机器接口地址之一,则返回错误并且不进行任何发送。 |
-T ttl |
指定多点广播信息包的生存时间为 ttl 秒。 |
-v |
请求详细输出,其中列出了除回送信号响应外接收到的 ICMP 信息。 |
上面有好多选项都看不懂,如-d 发送调式套接字,完全看不懂是什么意思。
下面就把为知道的记录下来,方便他人查看,也方便为自己查看.
例子
1. ping -c 4 www.baidu.com
在liunx下使用ping命令,如ping www.baidu.com 会一直ping 不会停止,这会使你不得不使用ctrl+c强制中断命令.
若想使ping 命令像windows下的一样只ping 4次,则可以用-c 指定次数, 如ping -c 4 www.baidu.com
2. ping -c 4 -w 10 www.baidu.com
-w 指定等待的超时时间,默认秒。与-c 一起使用,美美哒.
3. ping -s 6000 www.baidu.com
-s 指定一个数据包发送给 www.baidu.com ,单位字节(B), 最大发送65536(32位int最大值).
由于 1024B = 1KB , 65536B = 65KB.
所以最大只能附加65KB的包,默认64B
如何,65KB的包,百度肯本不接收。