【TCPDUMP使用和报文分析】

介绍

tcpdump是一个网络抓包工具,可以截获并分析网络传输的数据包。它可以监听特定的网络接口,过滤和捕获网络数据包,并将捕获的数据包以可读格式输出到控制台或文件中。tcpdump可以在多种操作系统上使用,包括Linux、Unix和Windows等。

使用tcpdump可以帮助网络管理员和安全专业人员分析网络问题和攻击,例如识别网络流量威胁、检测网络配置问题、调查网络故障等。它可以捕获和分析各种协议的数据包,例如TCP、UDP、ICMP、HTTP、FTP等。由于tcpdump是命令行工具,因此需要一定的技能和经验才能使用它进行高效的网络分析。

使用

-c 
count 抓取数据包的数量达到count后结束命令,如果不使用-c 参数,会不停的抓取数据包,直到手动停止
 
-C 
file_size 抓取数据包保存到文件时,通过该命令指定文件的大小。文件达到指定大小后,会创建一个在原文件名称后面加上序号的新文件,如:dump.txt,dump.txt1。file_size的单位是b
 
-D
列出服务器所有网卡。tcpdump默认监听的是编号最小的那个网卡,一般是eth0。在进行抓包时可以通过 -i 参数指定监听的网卡,any表示监听所有网卡
 
-i 
interfaces指定监听的网卡名称,any表示监听所有的网卡
 
-n
 输出结果中,不把ip转换成主机名(默认显示的是主机名)
 
-q
 快速输出,只输出简要的数据包信息
 
-r 
file从文件中获取数据包,不再从网络获取数据包
 
-t
不输出时间戳
 
-w 
file将抓取的数据包保存到文件,-r 参数可以从文件中读取数据包
 
-W 
filecount指定文件的数量,当文件滚动到指定数量后会从第一个文件开始覆盖

-host
过滤主机,如 tcpdump host 1.1.1.1  只抓取经过这个ip的数据包
 
-src
用来过滤请求来源方的参数,如:tcpdump src host 1.1.1.1  只抓取从这个ip过来的数据包
 
-dst
用来过滤请求接收方的参数,如:tcpdump dst host 1.1.1.1  只抓取发送到这个ip的数据包
 
-port
过滤端口,如:tcpdump port 8080  只抓取经过8080端口的数据包
 
-net
过滤网络,如:tcpdump net 1.1  只抓取经过这个网段的数据包
 
-and、not、or
条件过滤,和字面意思一样。如:tcpdump net 1.1 and port 8080  抓取经过1.1网段并经过8080端口的数据包

示例

抓取8080端口的数据包
tcpdump -i any port 8080 
抓取从1.1.1.1发送到1.1.1.2的数据包
tcpdump -i any src host 1.1.1.1 and dst host 1.1.1.2
抓取1.1网段除了1.1.1.1的请求的数据包
tcpdump -i any src net 1.1 and 'src host not 1.1.1.1'
抓取8080端口的数据包并写入dump.log文件中
tcpdump -i any port 8080 -w dump.log
k8s中容器内复制到容器外
kubectl -n ns1 cp -c istio-proxy podname:dump.cap /root/dump.cap

报文分析

【TCPDUMP使用和报文分析】_第1张图片

这些术语是TCP/IP协议中的标志位(flag),用于在网络通信中标识通信的不同阶段或类型:


PSH:推送标志,表示数据包应该立即发送而不是等待缓冲区填满。

SYN:同步标志,表示发起一个连接请求。

ACK:确认标志,表示确认收到了数据包。

SYN,ACK:表示确认连接请求,并发起连接。

FIN,ACK:表示结束一个连接。

你可能感兴趣的:(Linux,tcpdump,网络,服务器)