Linux系统里查看系统之间发送数据报文和返回是否正常,可以使用tcpdump进行抓包。
1.查看Linux下是否安装tcpdump
tcpdump --version
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等等)
下面截图为一个完整的请求:
红框1中表示,HTTP请求开始,168.1.5.166请求来源IP,目标IP168.1.5.156,
红框2中表示,HTTP请求结束,168.1.5.156数据包返回给168.1.5.166。
从上可以总结出:该请求没有问题!
以上是Wireshark分析tcpdump的简单使用,深入了解Wireshark我们会发现还有更多强大的功能,我们一起学习共勉!