龙空技术网

「Linux」使用tcpdump抓包的简单实验

梁家大叔 846

前言:

此时我们对“centos tcpdump抓包命令”可能比较关心,你们都想要分析一些“centos tcpdump抓包命令”的相关文章。那么小编在网摘上网罗了一些关于“centos tcpdump抓包命令””的相关资讯,希望各位老铁们能喜欢,兄弟们一起来了解一下吧!

tcpdump的参数和表达式很多,这里只演示一些常用的操作。

常用参数:

-D 查看哪些接口可以抓包。

-i 指定监听接口。如果没指定,tcpdump 会从系统接口列表中搜寻编号最小的已配置好的接口(不包括 loopback 接口)

-c 抓几个包。

-n 不解析主机名

-nn 不对协议和端口号解析

-v 详细信息,-vv、-vvv详细程度递增

-w 将抓取的数据包保存为文件

常用表达式关键字:

tcp 抓取tcp协议数据包

udp 抓下UDP协议数据包

icmp 抓ping包

src 源

dst 目的

and or not等表达式

实验部分:

2台Linux服务器:PC1:192.168.50.100和PC2:192.168.50.200。PC1使用tcpdump抓包,PC2发包。

tcpdump -i enp0s3 -c 10

抓取接口enp0s3的所有数据包,因为数据包太多,所以这里只抓10个:

tcpdump -i enp0s3 -c 10

[root@ljds ~]# tcpdump -i enp0s3 port 22 -c 10

抓取接口enp0s3上端口是22的数据包,也只抓了10个:

tcpdump -i enp0s3 port 22 -c 10

这里没有带参数-nn,所以22端口自动解析为ssh,192.168.50.100解析为ljds的主机名。如果带上-nn,则不做解析,直接以数字形式显示:

[root@ljds ~]# tcpdump -i enp0s3 port 22 -c 10 -nn

tcpdump -i enp0s3 port 22 -c 10 -nn

[root@ljds ~]# tcpdump -i enp0s3 port 999 and host 192.168.50.200 -nn

抓取接口enp0s3上端口是999和主机192.168.50.200通信的数据包:

tcpdump -i enp0s3 port 999 and host 192.168.50.200

以上输出显示了数据包的收发,如果带上src或者dst则可只抓取“源”自xx的数据包,或者“目标”是xx的数据包:

[root@ljds ~]# tcpdump -i enp0s3 port 999 and src 192.168.50.200 -nn

tcpdump -i enp0s3 port 999 and src 192.168.50.200

除了直接看抓包信息排查网络问题,也可把数据包全部抓取保存成文件。回去慢慢分析:

[root@ljds ~]# tcpdump -i enp0s3 -w /root/ljds.pcap

tcpdump -i enp0s3 -w /root/ljds.pcap

之后用Wireshark打开该文件:

使用Wireshark打开抓包文件

标签: #centos tcpdump抓包命令