tcpdump简单使用

我们一开始都是学习wireshark,确实挺好用,但是一但到了只有命令行的怎么办,不过好像wireshark也有命令行的,但要下载,一般的服务器都会装有tcpdump,所以我也来学习学习,同时分析一下


首先看一下帮助吧

Usage: tcpdump [-aAbdDefhHIJKlLnNOpqRStuUvxX#] [ -B size ] [ -c count ]
		[ -C file_size ] [ -E algo:secret ] [ -F file ] [ -G seconds ]
		[ -i interface ] [ -j tstamptype ] [ -M secret ] [ --number ]
		[ -Q in|out|inout ]
		[ -r file ] [ -s snaplen ] [ --time-stamp-precision precision ]
		[ -T type ] [ --version ] [ -V file ]
		[ -w file ] [ -W filecount ] [ -y datalinktype ] [ -z command ]
		[ -Z user ] [ expression ]

来个最简单的

tcpdump //普通情况下,直接启动,将监视第一个网络接口上(默认eth0)所有流过的数据包。


来个复杂点的

tcpdump -i eth0 -s 0 -w a.cap  // -i:抓取的网卡 -s 0 : 抓取数据包时默认抓取长度为68字节。加上-s 0 后可以抓到完整的数据包 -w :将抓到的数据写到一个文件

ctrl + c结束抓取,抓取的数据就保存在a.cap里(且抓取过程并不会显示抓取的数据)


我们再从文件中读取

tcpdump -r a.cap //从文件中读取


抓取tcp协议的22端口的数据包

tcpdump tcp port 22


显示筛选(以下面的包为例)

-n:不将ip地址显示为域名(Don't convert addresses (i.e., host addresses, port numbers, etc.) to names.),说白了就是以ip显示


假如我要获取源ip有哪些,ip基本在第三行

awk是一个强大的文本分析工具(默认以空格为分隔符,$3就是输出第3行),发现ip端口什么的重复了


可用sort把相同的合并(-u, --unique)【注:有五个数字的最后一个数字是端口号,最后有个Request是arp包的第三行,不是很规则啊】


tcpdump -n src host 119.75.218.70  -r test.cap //显示源ip是119.75.218.70的包



相应的就是目标ip了

tcpdump -n dst host 119.75.218.70  -r test.cap


-X参数:跟wireshark最下面一栏的显示基本一样的







原文地址:https://www.cnblogs.com/cnsec/p/13286573.html