tcpdump是Linux中强大的网络数据采集分析工具之一。tcpdump可以将网络中传送的数据包完全截获下来提供分析。它支持针对网络层、协议、主机、网络或端口的过滤,并提供and、or、not等逻辑语句来帮助你去掉无用的信息。
官网:https://www.tcpdump.org/index.html#latest-releases
查到最新版是:tcpdump-4.99.1.tar.gz和libpcap-1.10.1.tar.gz
一、tcpdump安装
1、准备工作
1.1、安装flex
$yum -y install flex
1.2、安装bison
$yum -y install bison
2、安装tcpdump
2.1、下载
$wget http://www.tcpdump.org/release/libpcap-1.10.1.tar.gz
$wget http://www.tcpdump.org/release/tcpdump-4.99.1.tar.gz
2.2、解压缩,编译和安装libpcap
tar -zxvf libpcap-1.10.1.tar.gz
cd libpcap-1.10.1
./configure
make
make install
2.3、解压缩,编译和安装tcpdump
cd ..
tar -zxvf tcpdump-4.99.1.tar.gz
cd tcpdump-4.99.1
./configure
make install
二、tcpdump使用
1、关键字
1.1、基本关键字
#【关键字】dir 抓取 指定接收端ID的包
$tcpdump dst 10.1.1.191
# 【关键字】src 抓取 指定发送端IP的包
$tcpdump src 10.1.1.191
#【关键字】host 抓取 指定主机发送和接收的数据包
$tcpdump host 10.1.1.191
#【关键字】port 抓取 指定端口的IP的包
$tcpdump port 22
#【关键字】 udp tcp 指定抓取协议类型
$tcpdump udp
$tcpdump tcp
# udp 指定协议为udp
# -X 打印出内容 12进制和ASCII的方式
# -c 只抓取10个包
常用的逻辑运算语句有:and、or &&、 ||
1.2、常用关键字
tcpdump -i ens33(网卡) dst host 10.1.1.191(目标服务器) and src host 10.1.1.235(源地址服务器)
$tcpdump -i ens33 dst host 10.1.1.191 and src host 10.1.1.235
存到文件
$tcpdump -i ens33 dst host 10.1.1.191 and src host 10.1.1.235 -w ens33_235.cap
# -i ens33 指定网卡 etho
# dst 目标服务器
#src 源地址服务器
#-w 文件名称 写入文件
2、参数
# 默认情况下,直接启动tcpdump将监视第一个网络接口(非lo口)上所有流通的数据包。
$tcpdump
# 【参数】-i,指定网卡,如eth0、eth1。
$tcpdump -i eth1
#【参数】-Q,指定输出还是输出,如in、out、inout
$tcpdump -Q out
#【参数】-c,指定抓取包的数量
$ tcpdump -c 10
#【参数】-X, 打印出抓取数据的内容,会以16进制和ASCII两种方式同时输出。-XX,更加详细内容
$ tcpdump -X
# 【参数】-v,显示详细的包头信息。-vv,-vvv更加详细
$ tcpdump -v
#【参数】-s, 指定截取包的长度。默认65535。如果包的长度超过截取的长度,
$ tcpdump -s 1024
#发生截取时,输出行会输出[|proto]的标志。但是设置的长度越长,包的处理时间也会变长
# 【参数】-w, 将抓取的数据存到文件test中
$ tcpdump -w test
$ tcpdump -r test # 【参数】-r ,从test中读取数据,显示出来
以上参数可以搭配使用。也可以与前面的关键字搭配使用
三、遇到的问题
其中安装时遇到问题:
1、./configure
检测我们的系统环境。可以发现此时报错了,报错内容显示没有C的编辑器
configure: error: in `/home/cg/tcpdump/libpcap-1.10.1':
configure: error: no acceptable C compiler found in $PATH
See `config.log' for more details
解决方法:
安装一个编辑器
$yum install gcc -y