tcpdump抓包命令

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了tcpdump抓包命令相关的知识,希望对你有一定的参考价值。

该命令是抓包分析工具,可以将数据包的头或者是整个包抓取下来进行分析,支持针对特定协议、主机进行过滤,同时支持逻辑操作。


#抓取本机第一个网络接口通常是eth0上所有的包
tcpdump
#抓取指定指定网卡上的的所有包
tcpdump -i eth0


抓取特定主机收到的和发出的所有包,这里的IP不是说包里有这个IP,而是说抓取流经这个主机的进出所有包

# -n 是显示IP和端口,也就是不解析主机名
tcpdump -n host [IP]

技术分享抓取特定主机之间的所有IP协议数据包

# 这里的ip指的是IP协议,and表示两个主机之间
tcpdump -n ip host 192.168.51.188 and 192.168.51.164
# 扩展:获取51.188与51.164或者51.165主机之间的IP协议通信
tcpdump -n ip host 192.168.51.188 and \(192.168.51.164 or 192.168.51.165\)

技术分享

参数说明
-a将网络地址和广播地址转换成名字
-d将匹配数据包的代码用汇编格式输出
-dd将匹配数据包的代码用C语言格式输出
-n不把网络地址转换成名字
-nn以IP和端口来显示
-t不打印时间戳,默认输出每行开头是时间戳
-v输出详细信息
-vv
输出详细的报文信息
-c
在收到多少数据包后,停止获取。
-i
指定监听的网络接口
-w
将获取的信息写入文件而不是输出到控制台
-e每行打印输出中包含数据包的数据链路层头信息
-x打印每个包的头信息,以16进制打印出每个包的数据。
-xx打印每个包的头信息,以16进制打印出每个包的数据,包含数据链路层的头部。
-X当分析和打印时,会打印每个包的头信息,同时以16进制和ASCII码形式打印每个包的数据,但是不包括链路层头信息。
-XX当分析和打印时,会打印每个包的头信息,同时以16进制和ASCII码形式打印每个包的数据,包括链路层头信息。

类型关键字:

  • host 指定主机名称或者IP

  • net 指定网段

  • port 指定端口

传输方向:

  • src 源

  • dst 目标

协议关键字:fddi、ip、tcp、udp、arp、rarp等。


获取主机51.188除了和51.164之外的所有IP通信

tcpdump -n ip host 192.168.51.188 and ! 192.168.51.164

技术分享


获取源IP为172.16.100.212到本机的IP请求,并且不解析主机名,获取2个数据包就停止

tcpdump -n -c 2 ip src 172.16.100.212

技术分享


获取指定主机指定端口的IP协议包

tcpdump  -n -c 2 host 192.168.51.188 and port 80

技术分享


抓取一个HTTP包

0x4745表示“GET”中的GE,0x4854表示“HTTP”中的HT

tcp[20:2],表示长度

tcpdump  -XvvennSs 0 -i em1 -c 5 tcp[20:2]=0x4745 or tcp[20:2]=0x4854

技术分享

本文出自 “小恶魔的家” 博客,请务必保留此出处http://littledevil.blog.51cto.com/9445436/1922087

以上是关于tcpdump抓包命令的主要内容,如果未能解决你的问题,请参考以下文章

TCPdump抓包命令详解

tcpdump常用的抓包命令

tcpdump抓包命令使用说明

tcpdump常用抓包命令

TCPDUMP(命令行操作)-抓包筛选高级筛选过程文档记录

TCPDUMP 抓包 怎么查看 抓的包的内容