Linux服务器端网络抓包和分析实战

网友投稿 1066 2022-10-21 23:55:01

Linux服务器端网络抓包和分析实战

欢迎访问我的GitHub

服务端抓包场景

关于本次实战的weatherservice应用

weatherservice是个基于springboot的java后台服务,详情请参考《springboot应用查询城市天气》;

抓包

ssh登录weatherservice应用所在的服务器,我这里是CentOS7; 执行以下命令,安装抓包工具tcpdump:

yum install -y tcpdump

执行命令ip addr查看网卡名,如下所示,我这里是ens33:

[root@localhost ~]# ip addr 1: lo: mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000 link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00 inet 127.0.0.1/8 scope host lo valid_lft forever preferred_lft forever inet6 ::1/128 scope host valid_lft forever preferred_lft forever 2: ens33: mtu 1500 qdisc pfifo_fast state UP group default qlen 1000 link/ether 00:0c:29:6a:5f:93 brd ff:ff:ff:ff:ff:ff inet 192.168.119.160/24 brd 192.168.119.255 scope global noprefixroute dynamic ens33 valid_lft 1358sec preferred_lft 1358sec inet6 fe80::1646:1c58:ee87:bc13/64 scope link noprefixroute valid_lft forever preferred_lft forever

执行以下命令即可开始抓ens33网卡的包,并保存到名为weatherservice.cap的文件:

tcpdump tcp -i ens33 -w ./weatherservice.cap

现在已经开始抓包了,我们打开浏览器发几次请求,以便能抓到weatherservice和wthrcdn.etouch.cn网站之间的请求响应,如下图,地址是:http://192.168.119.160:8080/get/%E4%B8%8A%E6%B5%B7

返回ssh窗口,按下ctrl+c,结束抓包; 抓包数据在文件weatherservice.cap中,将其下载到装有wireshar的windows机器上; 打开wireshark,在"文件"->"打开",选择weatherservice.cap,如下图:

双击上图中的25号包,弹出的窗口即为wthrcdn.etouch.cn网站响应数据的详情,如下图,红框中的Content-encoding: gzip\r\n表示该响应的body启用了gzip压缩:

有些朋友在使用springboot的RestTemplate访问wthrcdn.etouch.cn网站查询天气的时候,发现响应的数据打印出来为乱码,就是因为没有对gzip的内容做处理导致的,在本文中我们通过抓包发现了此问题的根本原因,而解决此问题的方法请参考《springboot应用查询城市天气》一文; 既然内容是gzip压缩过的,在上图的窗口中就无法看到压缩前的真实内容了,为了看到压缩前的真实内容,请参照下面的步骤; 关闭弹出窗口,回到wireshark的主窗口,在菜单上选择"文件"->"导出对象"->"HTTP...",如下图:

以上就是Linux抓包和wireshark分析包实战的全部内容,在您开发调试服务端远程调用时,希望此文能给您一些参考;

欢迎关注51CTO博客:程序员欣宸

版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:【数据编制架构】什么是数据编织(Data fabric)? 完整指南
下一篇:base业务框架的演示环境
相关文章