CentOS7使用tcpdump抓包

CentOS7使用tcpdump抓包

新手接触到服务器的时候,还不懂如何去抓包,这时候你需要了解下tcpdump这个工具,下面简单写下教程。

1.tcpdump安装

本文以CentOS7操作系统为例:

# yum install -y tcpdump

2.常用的一个抓包命令

我们使用root命令去获取网路数据包的时候,经常会使用如下的命令获取数据包然后分析。

#  tcpdump -vvv -X -i 网卡名 port 端口 -w 存储的文件包.cap

这里需要简单说明下:

  • 网卡名:这个可以通过ifconfig -a来获取信息
lo0: flags=8049<UP,LOOPBACK,RUNNING,MULTICAST> mtu 16384
	options=1203<RXCSUM,TXCSUM,TXSTATUS,SW_TIMESTAMP>
	inet 127.0.0.1 netmask 0xff000000
	inet6 ::1 prefixlen 128
	inet6 fe80::1%lo0 prefixlen 64 scopeid 0x1
	nd6 options=201<PERFORMNUD,DAD>
gif0: flags=8010<POINTOPOINT,MULTICAST> mtu 1280
stf0: flags=0<> mtu 1280
XHC20: flags=0<> mtu 0
en0: flags=8863<UP,BROADCAST,SMART,RUNNING,SIMPLEX,MULTICAST> mtu 1500
	options=b<RXCSUM,TXCSUM,VLAN_HWTAGGING>
	ether 1c:69:7a:65:8d:97
	inet6 fe80::470:d15d:41db:3309%en0 prefixlen 64 secured scopeid 0x5
	inet 192.168.31.196 netmask 0xffffff00 broadcast 192.168.31.255
	nd6 options=201<PERFORMNUD,DAD>
	media: autoselect (1000baseT <full-duplex,flow-control>)
	status: active

一般留意有ip地址的网卡,如上面例子的lo0网卡、en0网卡。服务器一般是lo网卡、eth0网卡,具体以实际服务器配置的网卡信息为准。

  • 端口:这个就是你要抓取的交互数据的端口
  • 存储cap文件:这里请以.cap后缀名进行存储。这是为了方便wireshark软件可以直接打开。

3.其他说明

一般对于初学者,学会抓取http请求,然后分析接口问题是调用者使用错误,还是服务器返回异常。这里不对https数据包进行说明,因为需要证书才能反解密文。

这里再列举一些过滤条件:

  • 使用host关键字抓取特定目的地和源 IP 地址的流量。如果要指定是源就变成src host,如果是目标地址则使用dst host
# tcpdump -vvv -X -i eth0 host 10.10.10.10
  • 使用and来表示同时满足条件, 使用or来表示满足其中一个条件即可。
# tcpdump -vvv -X -i eth0 host 10.10.10.10 and port 8080
  • 这里说一下回环网卡,如果是本机的服务A到本地服务B的网络包,直接抓lo回环网卡(其中回环网卡名要根据ifconfig -a命令实际获取)即可。
# tcpdump -vvv -X -i lo port 8080
  • 为了防止数据包不够详细,所以你们可以看到上面的例子都加了-vvv -X

本文没有授权给任何组织、企业和个人转载,未经作者允许禁止转载!

欢迎关注我的公众号testerzhang,原创技术文章第一时间推送。

公众号二维码

updatedupdated2021-10-072021-10-07