Linux TCPDUMP使用
原创
©著作权归作者所有:来自51CTO博客作者阳阳船长的原创作品,请联系作者获取转载授权,否则将追究法律责任
Linux Tcpdump
tcpdump 是linux系统中提供的一个命令行工具,可以将网络中传送的数据包完全截获下来,提供网络数据分析。Windows端可以使用Wireshark达到同样效果。
官方网站:http://www.tcpdump.org/
最新版本:http://www.tcpdump.org/#latest-release
常用命令
学习任何软件,任何情况下我都建议去官网查看使用手册,详细而准确,清楚而明白!
只介绍常用命令,详细命令请查看tcpdump手册。
命令格式
语法格式
tcpdump [ -AbdDefhHIJKlLnNOpqStuUvxX# ] [ -B buffer_size ]
[ -c count ]
[ -C file_size ] [ -G rotate_seconds ] [ -F file ]
[ -i interface ] [ -j tstamp_type ] [ -m module ] [ -M secret ]
[ --number ] [ -Q in|out|inout ]
[ -r file ] [ -V file ] [ -s snaplen ] [ -T type ] [ -w file ]
[ -W filecount ]
[ -E spi@ipaddr algo:secret,... ]
[ -y datalinktype ] [ -z postrotate-command ] [ -Z user ]
[ --time-stamp-precision=tstamp_precision ]
[ --immediate-mode ] [ --version ]
[ expression ]
监视指定的网络接口 -i
[ -i interface ]
//Linux 使用 ifconfig 可以查看所有网络设备的接口
//常使用的有 eth0 、lo(本地)
tcpdump -i eth0
捕获数据包的长度 -s
//使用 -s 0 可以捕获到完整的数据包,没有此参数会使一个很小的数值。
tcpdump -i eth0 -s 0
保存捕获到的数据
//将捕获到的数据保存到文件a.cap中,以.cap或者.pcap结尾的目的是为了,在windows下能够配合wireshark 进行数据分析。两者是个完美的组合。
tcpdump -i lo -s 0 -w a.cap
捕获数据包的数量
//抓取100个数据包,保存在文件a.cap中
tcpdump -i eth0 -s 0 -c 100 -w a.cap
限定抓包的地址
//目标地址22端口数据不抓取,并且,抓取网络地址为192.168.1.0/24的数据
tcpdump -i eth0 -s 0 -c 100 and dst port ! 22 and src net 192.168.1.0/24 -w a.cap
截获主机192.168.0.1 和主机192.168.0.2 或192.168.0.3的通信
tcpdump host 192.168.0.1 and \ (192.168.0.2 or 192.168.0.3 \)
如果想要获取主机192.168.0.1除了和主机192.168.0.2之外所有主机通信的ip包,使用命令:
tcpdump ip host 192.168.0.1 and ! 192.168.0.2
截获主机192.168.0.2发送的所有数据
tcpdump -i eth0 src host 192.168.0.2
监视所有送到主机192.168.0.2的数据包
tcpdump -i eth0 dst host 192.168.0.2
监视主机host 192.168.182.110 与 192.168.182.132 或者 192.168.182.131 两个设备间的SSL通信 -s 200,只获取前200字节
tcpdump -i eth1 -s 200 port 443 and host 192.168.182.110 \(192.168.182.132 or 192.168.182.131\) -w a.cap