主要功能:
捕获和分析数据包。
TcpDump可以将网络中传送的数据包的“头”完全截获下来提供分析。它支持针对网络层、协议、主机、网络或端口的过滤,并提供 and、or、not等逻辑语句来帮助你去掉无用的信息。
命令格式:
tcpdump [ 选项 ] [ -c数量 ] [ -i 网络接口 ] [ -w 文件名 ] [ 表达式 ]
常用选项:
-l:使标准输出变为缓冲行形式;
-c:抓包次数;
-nn:直接以 IP及 Port Number 显示,而非主机名与服务名称;
-s :<数据包大小> 设置每个数据包的大小;
-i:指定监听的网络接口;
-r:从指定的文件中读取包;
-w:输出信息保存到指定文件;
-a:将网络地址和广播地址转变成名字;
-d:将匹配信息包的代码以人们能够理解的汇编格式给出;
-e:在输出行打印出数据链路层的头部信息;
-f:将外部的Internet地址以数字的形式打印出来;
-t:在输出的每一行不打印时间戳;
-v :输出稍微详细的报文信息;加一个v更详细。
四种表达式:过滤报文条件
1、关于类型的关键字,主要包括host,net,port, 例如 host210.27.48.2,指明 210.27.48.2是一台主机,net 202.0.0.0 指明202.0.0.0是一个网络地址,port 23 指明端口号是23。如果没有指定类型,缺省的类型是host。
2、确定传输方向的关键字,主要包括src, dst ,dst or src, dst and src ,这些关键字指明了传输的方向。例如 src210.27.48.2 ,指明ip包中源地址是210.27.48.2, dst net 202.0.0.0 指明目的网络地址是202.0.0.0。如果没有指明方向关键字,则缺省是src or dst关键字。
3、协议的关键字,主要包括ip,arp,tcp,udp等类型。
4、三种逻辑运算,与运算是’and’,'&&’; 或运算是’or’ ,’||’; 非运算是‘not ‘ ‘! ‘。
其他重要的关键字如下: broadcast,less(小于),greater(大于)
参数说明:
紧急指针— URG
确认序号有效—ACK
接收方应该尽快将这个报文段交给应用层—PSH
重建连接—RST
同步序号用来发起一个连接—SYN
发端完成发送任务—IN
举例说明:
1、截获eth0网卡10次收发所有数据包并将抓包结果保存到test文件,再读取test抓包结果文件
tcpdump i eth0 c 10w test
tcpdump r test
2、截获来访问80端口的所有数据包(指定端口范围portrange 1-1024)
tcpdump port 80
3、截获所有来自主机114.254.151.51的进出所有数据包
tcpdump host114.254.151.51
4、截获ip包中源地址是114.254.151.51的(目的是dst)
tcpdump src114.254.151.51
5、截获主机114.254.151.51和主机114.254.151.52的通信
tcpdum host114.254.151.51 and 114.254.151.52
6、截获tcp协议并且源地址114.254.151.51来访问80的端口
tcpdump tcp and src114.254.151.51 and port 80
7、截获主机114.254.151.51除了和114.254.151.52之外的所有ip包
tcpdump ip host114.254.151.51 and ! 114.254.151.52
8、截获长度大于1000数据包,对于DDOS攻击时,可以使用
tcpdump -i eth0greater 1000