网络检测-抓包测试–tcpdump使用详解

一、tcpdump简介

  tcpdump 是Linux系统下的一个强大的命令,可以将网络中传送的数据包完全截获下来提供分析。它支持针对网络层、协议、主机、网络或端口的过滤,并提供and、or、not等逻辑语句来帮助你去掉无用的信息。

二、tcpdump使用方法

安装命令:
yum install -y tcpdump
查看安装版本命令:
tcpdump --help
格式:

tcpdump 选项 过滤条件

常用的选项:
-i 指定监控的网络接口
 -A 转换为 ACSII 码
-w 将数据包信息保存成cap文件,可用Wireshark解析
 -r 从cap文件读取数据包信息
常用的过滤条件:
类型:host、net、port、portrange(端口范围)
方向:src(源地址)、dst(目的地址)
协议:tcp、udp、ip、wlan、arp
多个条件组合:and、or、not

三、常见案例

#抓取所有的网络包,并存到 result.cap 文件中
tcpdump -w result.cap
#抓取所有经过 eth0,目的或源地址是 192.168.25.115 的网络数据
tcpdump -n -i eth0 host 192.168.25.115
# 抓取源地址是192.168.25.115的包
tcpdump -i eth0 src host 192.168.25.115
# 抓取目的地址是192.168.25.115的包
tcpdump -i eth0 dst host 192.168.25.115
#抓取当前服务器eth0网卡端口80的网络数据
tcpdump -n -i eth0 port 80
#抓取HTTP GET数据,”GET “的十六进制是 47455420
tcpdump -i eth0 'tcp[(tcp[12]>>2):4] = 0x47455420'
#抓取192.168.25.115主机80端口的包,并转换为 ACSII 码
tcpdump -A host 192.168.25.115 and tcp port 80