tcpdump常用参数详解
作者:尹正杰
版权声明:原创作品,谢绝转载!否则将追究法律责任。
好久没有更新我的博客了,看来自己最近还没有在放假中回过神来啊,哈哈~是不是也有小伙伴跟我一样呢?回归正题,来学习我们今天的Linux命令!这个命令在我们的工作中用的频率虽然不是太高,但是作为一个运维人员,一个复合型人才对这个命令还是必须了解一点的哟!
tcpdump是一个用于截取网络分组,并输出分组内容的工具。tcpdump凭借强大的功能和灵活的截取策略,使其成为类UNIX系统下用于网络分析和问题排查的首选工具。
tcpdump提供了源代码,公开了接口,因此具备很强的可扩展性,对于网络维护和入侵者都是非常有用的工具。tcpdump存在于基本的Linux系统中,由于它需要将网络界面设置为混杂模式,普通用户不能正常执行,但具备root权限的用户可以直接执行它来获取网络上的信息。因此系统中存在网络分析工具主要不是对本机安全的威胁,而是对网络上的其他计算机的安全存在威胁。用简单的话来定义tcpdump,就是:dump the traffic on a network,根据使用者的定义对网络上的数据包进行截获的包分析工具。 tcpdump可以将网络中传送的数据包的“头”完全截获下来提供分析。它支持针对网络层、协议、主机、网络或端口的过滤,并提供and、or、not等逻辑语句来帮助你去掉无用的信息。
一.数据链路层头信息
[root@yinzhengjie ~]# tcpdump -e host 192.168.2.45 | grep "00:0c:29:d4:db:87"
二.ARP包的tcpdump输出信息
[root@yinzhengjie ~]# tcpdump arp | grep -v "ARP, Request who-has bogon tell bogon, length 46"
过滤掉无用的信息
三.抓取2个主机之间的数据包
[root@yinzhengjie ~]# tcpdump host 192.168.2.45 and 172.30.1.2 or 172.30.1.60
在这里我截获的是zabbix服务器(192.168.2.45)与其中2个agent主机的数据(172.30.1.2,172.30.1.60),下图是部分数据截图:
四.想要截获一台主机除了某个IP的数据包信息
[root@yinzhengjie ~]# tcpdump host 192.168.2.45 and ! 172.30.1.2
这里截获了zabbix服务器(192.168.2.45),除了172.30.1.2的所有数据包信息
五.截获某台机器的ssh服务链接信息,并且不转换主机名
[root@yinzhengjie ~]# tcpdump -nn -n src host 192.168.2.45 and port 22 and tcp
我这里是截获的zabbix服务器的ssh服务信息,先敲击这个命令,然后在去链接,就会出现以下信息。(我的宿主机IP是172.30.1.2)
当然,上面只是能看到IP,如果你还想看到这些IP所对应的MAC也是可以的哟
[root@yinzhengjie ~]# tcpdump -e src host 192.168.2.45 and port 22 and tcp -n -nn
六.过滤源主机和指定的目的主机的信息
[root@yinzhengjie ~]# tcpdump src host 192.168.2.45 and dst net 172.30.1.0/24
这里是过滤源主机是192.168.2.45到目的网络(172.30.1.0/24)的数据包.
[root@yinzhengjie ~]# tcpdump ether src 00:0C:29:D4:DB:87
八.过滤源主机和目的端口不是telnet的报头,并导入到tes.t.txt文件中:
[root@yinzhengjie ~]# tcpdump src host 192.168.2.45 and dst port not telnet -l > test.txt
我这里过滤的是192.168.2.45而且目的端口不是telnet的报文哟
九.抓取本地回环网卡信息
十.抓取ICMP数据包
其他常用参数:
参考链接一:http://www.cnblogs.com/zhuimengle/p/5737848.html
参考链接二:http://www.cnblogs.com/ggjucheng/archive/2012/01/14/2322659.html