Linux下抓取Java应用网络包,并如何分析是否正常?

Linux系统里查看系统之间发送数据报文和返回是否正常,可以使用tcpdump进行抓包。

1.查看Linux下是否安装tcpdump

tcpdump --version

查看tcpdump

2.安装tcpdump命令(如果已安装,跳过)

yum install -y tcpdump

yum安装需有外网访问权限,如果没有还是需要下载离线包安装

3.tcpdump监听端口,并生成cap日志文件

在服务端8081端口进行抓包分析,使用tcpdump

tcpdump -tttt -s0 -X -vv tcp port 8081 -w captcha.cap

tcpdump可以根据不同的条件实现网络监听;

如:

    抓取源地址是168.1.5.166的包,并将结果保存到 captcha.cap 文件中。

    tcpdump src host 168.1.5.166 -w captcha.cap 

    抓取目的地址包含是168.1.5.166 的包,并将结果保存到 captcha.cap 文件中。

    tcpdump dest host 168.1.5.166 -w captcha.cap

    如果想要获取主机168.1.5.166 除了和主机168.1.5.167 之外所有主机通信的ip包,使用命令:

    tcpdump ip host 168.1.5.166 and ! 168.1.5.167 

根据自己的需求可以灵活使用。

如何分析简单captcha.cap文件

根据以上的命令,我们可以得到一个captcha.cap文件,从服务器中下载此文件到本地电脑中(Windows),下载Wireshark软件,可从官网下载此软件。

打开文件可以看到如下图,最上方简图包含请求方法,时间,来源IP和目标IP,中间和下面可以看详细的报文数据(请求报文、返回报文、HTTP响应code等等)

capcha.cap

下面截图为一个完整的请求:

captcha.cap

红框1中表示,HTTP请求开始,168.1.5.166请求来源IP,目标IP168.1.5.156,

红框2中表示,HTTP请求结束,168.1.5.156数据包返回给168.1.5.166。

从上可以总结出:该请求没有问题!

以上是Wireshark分析tcpdump的简单使用,深入了解Wireshark我们会发现还有更多强大的功能,我们一起学习共勉!

你可能感兴趣的:(Linux下抓取Java应用网络包,并如何分析是否正常?)