简介
Tcpdump是linux环境下的报文抓包工具。支持针对网络层、协议、主机、网络或端口的过滤,并提供and、or、not等逻辑语句来帮助你去掉无用的信息。
Windows下一般使用wireshark进行报文抓取和报文分析。Linux下一般可以使用tcpdump+(tcptrace或wireshark)。
安装tcpdump
本文以redhat as 5作为基础环境安装说明,内核:
Linux hadoop00 2.6.18-8.el5 #1 SMP Fri Jan 26 14:15:21 EST 2007 i686 i686 i386 GNU/Linux
下载对应的RPM版本,下载地址:http://www.tcpdump.org
# wget http://www.tcpdump.org/release/tcpdump-4.0.0.tar.gz
# tar -xzvf tcpdump-4.0.0.tar.gz
# ./configure
# make
# make install
# tcpdump -?
tcpdump version 4.0.0
libpcap version 1.1.1
Usage: tcpdump [-aAdDefIKlLnNOpqRStuUvxX] [ -B size ] [ -c count ]
[ -C file_size ] [ -E algo:secret ] [ -F file ] [ -G seconds ]
[ -i interface ] [ -M secret ] [ -r file ]
[ -s snaplen ] [ -T type ] [ -w file ] [ -W filecount ]
[ -y datalinktype ] [ -z command ] [ -Z user ]
[ expression ]
Tcpdump常用命令
打印参数
-A:以ASCⅡ编码打印除了链路层报文头外的报文内容。用于捕捉web请求。
-B:设置抓取报文的缓存大小。
-c:收到多少包后退出程序
-dd:dump报文存储格式为C程序格式。
-e:打印链路层报文头
-X:不包括数据链路层的报文,并且以ASCⅡ的编码方式。
-v:详细的输出,也就比普通的多了个TTL和服务类型
-vv:截取显示详细的报文(注意是两个v)
-n:不进行IP地址到主机名的转换
-nn:不进行端口名称的转换
-N:不打印出默认的域名
-O:不进行匹配代码的优化
-t:不打印UNIX时间戳,也就是不显示时间
-tt:打印原始的、未格式化过的时间
-S:Print absolute, rather than relative, TCP sequence numbers.
-w filename : 保存截取的报文到指定的文件。
tcpdump man 文档: http://www.tcpdump.org/tcpdump_man.html
过滤参数
-b 在数据链路层上选择过滤的协议,包括ip,arp,rarp,ipx等
-i 表示指定过滤的网络设备,如网卡标志(eth0,eth1等)。
src、dst、port、host、net、ether、gateway这几个选项又分别包含src、dst 、port、host、net、ehost等附加选项,用于分辨数据包的来源和去向。可以使用and,or和not等进行逻辑组合。
src:数据源(请求);dst 目标;host 主机名或IP;net只网络平面或段;port表示端口号;ether只的是物理地址,即MAC地址;geteway表示网关。
例子:
# tcpdump src host 192.168.1.100 and dst host 192.168.1.101 and port 8080
表示:源为192.168.1.100,目标为192.168.1.101并且端口号为8080的报文。
# tcpdump dst net 192.168.0.0/24
表示目标的网络地址为192.168.0.0/24的子网
我习惯的报文截取和分析
服务器上tcpdump截取报文,本地wireshark分析报文
1. 使用tcpdump在目标服务器上截取报文并保持到文件中。
# # tcpdump -X –w httpdump 'tcp port 8080 and (((ip[2:2] - ((ip[0]&0xf)<<2)) - ((tcp[12]&0xf0)>>2)) != 0)'
# sz httpdump
2. 下载截取的报文文件到本地,使用wireshark进行分析。
打开wireshark,点击界面中间的open打开下载的dump文件。
列表和流式浏览报文
HTTP报文截取例子
1. 源,目标及端口号过滤
# tcpdump –X –w filename src 192.168.91.1 and dst 192.168.91.10 and port 8080
2.通过报文中的协议标志过滤
# tcpdump -XvvennSs 0 -i eth0 –w filename tcp[20:2]=0x4745 or tcp[20:2]=0x4854
0x4745 为"GET"前两个字母"GE"
0x4854 为"HTTP"前两个字母"HT"
3.端口号及报文头标志(官方例子)
# tcpdump -X –w filename 'tcp port 8080 and (((ip[2:2] - ((ip[0]&0xf)<<2)) - ((tcp[12]&0xf0)>>2)) != 0)'
- 大小: 74.2 KB
- 大小: 202.1 KB
分享到:
相关推荐
NFSV4报文 tcpdump报文 NFS报文_抓包分析_ubuntu12.04
linux环境下的tcpdump 4.0.0 源代码分析
tcpdump抓包分析,tcpdump抓包分析,tcpdump抓包分析,tcpdump抓包分析,tcpdump抓包分析,tcpdump抓包分析,tcpdump抓包分析,tcpdump抓包分析
讲述EtherCAT报文的抓取方法,报文过滤及简单的分析
tcpdump 分析 分析不时很详细,献给初学linux网络编程者对tcp/ip很熟悉的 就没有必要了下载了
因为Tcpdump被设计在基于UNIX的系统上运,所以它常易于通过包管理器来安装,甚可以预装在很多Linux发版本中。如果你想在Windows上
Tcpdump命令的使用与示例—linux下的网络分析。
tcpdump网络数据采集分析工具,抓取网络流量包
在进行网络测试的时候,我们经常需要进行抓...但最为方便和简单得就非TCPDump莫属. Linux的发行版里基本都包括了这个工具. TCPDump将网络接口设置成混杂模式以便捕获到达的每一个数据包.下面给出TCPDump的部分常用选项。
利用tcpdump抓包和awk处理写的基于端口的流量统计
Web协议详解与抓包实战
作为互联网上经典的的系统管理员必备工具,tcpdump以其强大的功能,灵活的截取策略,成为每个高级的系统管理员分析网络,排查问题等所必备的东东之一。 顾名思义,TcpDump可以将网络中传送的数据包的“头”完全截获...
tcpdump提供了源代码,公开了接口,因此具备很强的可扩展性,对于网络维护和 入侵者都是非常有用的工具。tcpdump存在于基本的FreeBSD系统中,由于它需要将网络界面设置为混杂模式,普通用户不能正常执行,但具备root...
tcpdump抓包工具,提供个下载不了的小伙伴 需要获得tcpdump软件,官方获取地址(http://www.strazzere.com/android/tcpdump)
tcpdump
tcpdump源码编译,需要多个部件的源码进行顺序编译而成。 m4-1.4.19.tar.gz flex-2.6.4.tar.gz ...tar xvf *.tar解压后,分别执行./configure 和make install(root执行),即可编译和安装好tcpdump
tcpdump 是一个有名的命令行数据包分析工具。我们可以使用 tcpdump 命令捕获实时 TCP/IP 数据包,这些数据包也可以保存到文件中。之后这些捕获的数据包可以通过 tcpdump 命令进行分析。tcpdump 命令在网络层面进行...
tcpdump-tcpdump-4.9.2.zip
Tcpdump 4.5.1版本,解压后是一个二进制可执行文件,不需要任何编译和安装,可以直接执行,上传Linux环境解压即可使用: root@admin:/tmp# ./tcpdump -help tcpdump version 4.5.1 libpcap version 1.5.3 Usage: ...
tcpdump是一款网络数据截取分析工具,用在网络分析、维护、统计、监测等方面。