思路
- tcpdump命令安装以及使用
- wireshark的安装以及使用
- 通过ssh抓取服务器上的包
场景:测试环境调用第三方接口响应报文偶现中文乱码问题,需要定位问题方。需要抓取http请求报文,查看问题原因。
思路
- 登录linux服务器;
- 使用tcpdump命令抓包并保存到文件;
- 下载到电脑上,使用wireshark工具进行分析;
1. tcpdump命令安装以及使用
判断是否安装了tcpdump命令:
[root@VM_centos ~] # rpm -qa |grep tcpdump
tcpdump-4.9.2-3.el7.x86_64
若没有安装,使用下面命令进行安装:
yum install -y tcpdump
执行命令ip addr查看网卡名,如下所示:
执行以下命令即可开始抓eth0
网卡的包,并保存到名为weatherservice.cap的文件:
tcpdump tcp -i eth0 -w ./weatherservice.cap
下载到电脑:
sz weatherservice.cap
2. wireshark的安装以及使用
版本:3.4.5
安装完毕,将下载weatherservice.cap文件拖到wireshark界面中。
使用命令筛选请求。即http请求,发起请求的ip,接收响应的ip。
选中一列,发现响应报文的汉字是乱码,需要选中编码格式:
右键点击,查看http Stream信息:
选择编码,发现汉字并未乱码:
由此可知,可知发送方并未出现乱码问题。
继续排查以及解决方案的文章:
SpringBoot2.0.x中RestTemplate调用三方接口出现汉字乱码(消息转换器)
3. 通过ssh抓取服务器上的包
便可以连接到服务器上,直接抓取服务器上的网络包。