使用tcpdump命令在Linux系统对网络流量抓包分析
因为需要对服务器流量进行抓包分析,抓包工具为tcpdump,记录一下该工具使用方法。
tcpdump是一款运行在Linux 系统上的命令行网络数据采集抓包工具,该工具通过抓取流经网络接口的数据包,对整个TCP/IP协议族进行协议解析和流量监控,是Linux系统常用的抓包工具。
一、tcpdump安装
gitHub地址:https://github.com/the-tcpdump-group/tcpdump
1.源码安装
通过官网地址下载最新版本tcpdump与libpcap安装包:

解压后进入对应的源码目录,先安装libpcap包,安装成功后再安装tcpdump包,编译安装命令如下:
./configure
make
make install 注意:源码安装的时候需要依赖flex、bison之类的工具,可以根据./configure配置脚本执行时候的提示进行对应工具安装。
2.命令安装
一般情况下,我们可以使用命令进行安装。
Centos7使用yum包管理器安装:
yum install tcpdump Centos8及以上版本使用dnf包管理器安装:
dnf install tcpdump 
安装完成后可以通过tcpdump -h命令查看工具使用说明:

二、常用参数说明
- -i:监听指定的网络接口。
- -c:限制抓包的数量,抓够指定的数据包量自动停止。
- -C:限制文件大小,单位MB,到达指定大小后会新增一个文件继续保存,避免单个文件过大。
- -G:限制抓包的时长,单位为秒,到达指定时长自动停止。
- -n:禁用DNS解析,提高抓包效率。
- -s:指定抓取数据包长度,默认只截取前96字节,可以通过-s 0抓取完整数据包,避免数据包被截断。
- -w:将抓到的数据包保存到文件中。
三、过滤器说明
一般情况服务器上的网络流量都会很大,全部抓取可能会导致文件太大,我们可以通过过滤器仅抓取我们需要的数据包进行分析。
1.协议过滤
可以直接指定需要抓取协议的名称,可选的协议包括tcp、udp、icmp、arp等整个TCP/IP协议族内的协议都可以单独抓取。
2.传输方向过滤
传输方向一般与主机、端口过滤组合使用,可选的传输方向包括:
src:指定源地址(比如源主机、源端口等)
dst:指定目的地址(如目的主机、目的端口等)
默认的传输方向为src or dst,抓取所有方向的流量。
3.主机与网络端口过滤
主机过滤使用host关键字,比如过滤主机为192.168.1.1的数据包:
tcpdump host 192.168.1.1 或者省略host关键字,直接使用方向过滤限制主机,比如过滤源地址为192.168.1.1的数据包:
tcpdump src 192.168.1.1 端口过滤使用port关键字,比如过滤端口为80的数据包:
tcpdump port 80 过滤目的端口为80的数据包:
tcpdump dst port 80 网段过滤使用net关键字,比如过滤192.168.1.0/24网段:
tcpdump net 192.168.1.0/24 MAC地址过滤使用ether关键字,比如过滤源MAC地址为52:54:00:8d:f3:54的数据包:
tcpdump src ether 52:54:00:8d:f3:54 四、常用抓包命令
抓取经过eth0网卡全部流量:
tcpdump -i eth0 抓取经过eth0网卡,主机ip为192.168.1.1的全部数据:
tcpdump -i eth0 host 192.168.1.1 抓取经过eth0网卡,主机ip为192.168.1.1,端口为443的全部数据:
tcpdump -i eth0 host 192.168.1.1 and port 443 抓取经过eth0网卡,源地址ip为192.168.1.1,目的地址ip不是10.0.8.1的数据:
tcpdump -i eth0 'src host 192.168.1.1 and (not dst host 10.0.8.1)' 抓取所有网卡数据,抓取时长300秒,并将其保存在文件中:
tcpdump -i any -G 300 -w aaaa.pcap 抓取本地lo网卡,端口为8443的数据,并将其保存在文件中:
tcpdump -i lo port 8443 -w aaaa.pcap 抓包完成后,就可以将保存的文件下载下来,使用Wireshark进行分析啦。

扩展说明:
1.tcpdump命令需要root权限才可以正常运行。
- 本文标签: Netwoerk Linux
- 本文链接: https://blog.eyyyye.com/article/103
- 版权声明: 本文由爱做梦的比特原创发布,转载请遵循《署名-非商业性使用-相同方式共享 4.0 国际 (CC BY-NC-SA 4.0)》许可协议授权
