tcpdump命令是一款sniffer工具,它可以打印所有经过网络接口的数据包的头信息,也可以使用-w
选项将数据包保存到文件中,结合wireshark等网络封包分析软件使用。
tcpdump常用参数:
1 -n 不把主机的网络地址转换成名字; 2 -v 输出更多的信息;(tcpdump的详细信息有三个等级:-v,-vv,-vvv) 3 -c <数据包数目> 指定抓包的数量;例,tcpdump -c 3,抓取3个数据包后停止。 4 -i <网络接口> 抓取指定网络接口的数据包,如果不指定tcpdump默认会选择最低编号的网络接口eth0;(在大多数linux中,any 这个接口用来监听所有接口的数据,例,tcpdump -i any) 5 -w <文件> 将抓取的数据包写入文件;例,tcpdump -w ./tcpdump.pcap 6 -r <文件> 读取文件内容;例,tcpdump -r ./tcpdump.pcap 7 8 注意:“-w”保存的文件,直接用cat等工具查看时时乱码,必须用“-r”查看!还有,“-w”保存的文件最好保存为".pcap"文件,这样便于使用wireshark分析保存的数据包。 如果只是为了保存抓取的数据包,方便自己查看,请用 重定向 符号,例:tcpdump -c 3 > log.txt。 9 10 -s <数据包大小> 指定每个抓取的数据包的大小; 11 -A 封包的内容以ASCII显示,通常用来抓取网页封包;
tcpdump一些常用命令:
1 tcpdump host 10.0.01 只抓取源和目的IP为10.0.01的数据包; 2 tcpdump [src|dst] host 10.0.01 3 tcpdump -c 3 '(port 22 and port 80) host 10.0.01' 或 tcpdump -c 3 '(prot 22 && port 80) host 10.0.01' 抓取源和目的IP为10.0.01的主机的22端口和80端口的数据包; 4 tcpdump -c 3 host ! 10.0.01 不抓取源和目的IP 为10.0.01的数据包; 5 tcpdump -c 3 [udp|icmp|...] 抓取特定协议的数据包。