概述
无意中发觉linux下的ping命令花样还挺多的,所以整理了下这一块内容,下面用实例演示说明下
1、ping www.baidu.com
此时主机将不停地向目的地址发送ICMP echo request数据包,直至你按下Ctrl+c
![f1fcc7e335e8885072e64841f5704406.png](https://i-blog.csdnimg.cn/blog_migrate/eeb0ee774a080088df04cc6b50a4e8ec.jpeg)
2、ping -I eth0 www.baidu.com
或者ping -I 192.168.8.151 www.baidu.com,即 -I 选项可以指定发送ping包的网卡,-I后接网卡名或者网卡的IP地址都是可以的。适合多网卡的场景。
![f4128a44b0a71bb484bfdc14615ac125.png](https://i-blog.csdnimg.cn/blog_migrate/f1b1855c664a72d387a00740ded07a55.jpeg)
3、ping -c 5 www.baidu.com
-c 选项可以指定发送多少个ICMP包,可以看到主机接收到了5个ICMP echo reply包,这是对我发的5个echo request的回应
![a79b7571f2a8729f3e808200d79ba965.png](https://i-blog.csdnimg.cn/blog_migrate/22ed0563f0e18e616ee6c33ebc251b6a.jpeg)
4、ping -t 20 www.baidu.com
-t 选项可以设置承载ICMP报文的IP数据包的TTL值
![73ec662b72eddb1e71f4a36fccc578b2.png](https://i-blog.csdnimg.cn/blog_migrate/b3532ecc71a8771086ff260b219ebb38.jpeg)
如果大家用wireshark去抓包,就可以看到ttl设为了20
![138da3ec25f381d96072849d79d4953c.png](https://i-blog.csdnimg.cn/blog_migrate/af6c3ba050d1e0f8a86ddfa0bdf25c93.jpeg)
5、ping -s 10 www.baidu.com
-s 选项可以设置ICMP数据部分的大小,可以看到数据部分10个字节,加上8字节的ICMP头,则ICMP包大小为18字节,再加上20字节的IP头,IP包大小为38字节
![bc9286b6029801543014a972235f621b.png](https://i-blog.csdnimg.cn/blog_migrate/3cde66c741a890047c7a2aeeecc94f92.jpeg)
6、ping -p beef www.baidu.com
-p 选项可以设置icmp报文数据部分的内容,后跟的 beef 即为16进制的填充数据,后面跟的数据最大可为16个字节
![c831c3fefd3c8f03e0e20051f0698500.png](https://i-blog.csdnimg.cn/blog_migrate/9889598eb7a4255dd879a32998cdb561.jpeg)
总结
以上6个是比较简单的选项,当然还有其他选项,选项基本上可以根据自己的需求叠加使用。
想要进一步了解linux下的ping命令,获取更详细的使用方法,可以man ping
![d1a79a65415cb0e34e72d59f52611229.png](https://i-blog.csdnimg.cn/blog_migrate/5dc79c03196e7ae67b01ff08b00dbe66.jpeg)
ps:ping6命令的使用与此类似,基本上将以上的ping改成ping6就可以了,当然这时候地址也得是IPv6的。
后面会分享更多Linux方面内容,感兴趣的朋友可以关注下!
![a931399918bb4773463dbcdb157089b2.gif](https://i-blog.csdnimg.cn/blog_migrate/692442026f9989d53e98c7a1874ffb61.gif)