原始出处http://520and519.blog.51cto.com/2254416/1432514

tcpdump是linux下网络抓包工具。

监控指定网卡的网络数据包

#tcpdump -i eth1

默认情况下,只监控第一块网卡。

监控指定主机的网络数据包

#tcpdump -i eth1 host  192.168.1.1

监控指定两个主机之间的网络数据包

#tcpdump -i eth1 host  192.168.1.1 and 192.168.1.2

获取主机192.168.1.1除了和主机192.168.1.2之外所有主机通信的ip包

#tcpdump -i eth1 host  192.168.1.1 and ! 192.168.1.2

获取主机192.168.1.1接收或发出的telnet包

#tcpdump -i eth1 tcp port 23 host 192.168.1.1

打印结果输出到cap文件

#tcpdump -i eth1 -w aa.cap

常用参数

#tcpdump tcp -i eth1 -t -s 0 100 and dst port ! 23 and src net 192.168.1.0/24 -w aa.cap

(1)tcp: ip icmp arp rarp 和 tcp、udp、icmp这些选项等都要放到第一个参数的位置,用来过滤数据报的类型
(2)-i eth1 : 只抓经过网卡eth1的包
(3)-t : 不显示时间戳
(4)-s 0 : 抓取数据包时默认抓取长度为68字节。加上-S 0 后可以抓到完整的数据包
(5)-c 100 : 只抓取100个数据包
(6)dst port ! 23 : 不抓取目标端口是22的数据包
(7)src net 192.168.1.0/24 : 数据包的源网络地址为192.168.1.0/24
(8)-w aa.cap : 保存成cap文件,方便用wireshark分析