前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Linux服务器端网络抓包和分析实战

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

作者头像
程序员欣宸
发布2019-05-29 15:53:07
1.7K0
发布2019-05-29 15:53:07
举报
文章被收录于专栏:实战docker

服务端抓包场景

下图是个普通的web架构图,weatherservice是个服务端应用,收到来自浏览器的请求后,会向网站wthrcdn.etouch.cn发起请求,并将响应的数据返回给浏览器:

在这里插入图片描述
在这里插入图片描述

上述应用在开发调试时,需要抓包分析weatherservice和wthrcdn.etouch.cn网站之间的请求响应,接下来实战抓包和分析步骤;

关于本次实战的weatherservice应用

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

抓包

  1. ssh登录weatherservice应用所在的服务器,我这里是CentOS7;
  2. 执行以下命令,安装抓包工具tcpdump:
代码语言:javascript
复制
yum install -y tcpdump
  1. 执行命令ip addr查看网卡名,如下所示,我这里是ens33:
代码语言:javascript
复制
[root@localhost ~]# ip addr
1: lo: <LOOPBACK,UP,LOWER_UP> 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: <BROADCAST,MULTICAST,UP,LOWER_UP> 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
  1. 执行以下命令即可开始抓ens33网卡的包,并保存到名为weatherservice.cap的文件:
代码语言:javascript
复制
tcpdump tcp -i ens33 -w ./weatherservice.cap
  1. 现在已经开始抓包了,我们打开浏览器发几次请求,以便能抓到weatherservice和wthrcdn.etouch.cn网站之间的请求响应,如下图,地址是:http://192.168.119.160:8080/get/上海
在这里插入图片描述
在这里插入图片描述
  1. 返回ssh窗口,按下ctrl+c,结束抓包;
  2. 抓包数据在文件weatherservice.cap中,将其下载到装有wireshar的windows机器上;
  3. 打开wireshark,在"文件"->“打开”,选择weatherservice.cap,如下图:
在这里插入图片描述
在这里插入图片描述
  1. 网卡ens33上的所有网络包都被抓到了,但很多都不是我们关心的,需要过滤,这里的过滤很简单:只保留http请求响应级即可,如下图,在红框位置输入"http"然后回车:
在这里插入图片描述
在这里插入图片描述
  1. 如下图红框所示,编号为21的包就是weatherservice向wthrcdn.etouch.cn的请求,编号25的包则是wthrcdn.etouch.cn的响应(红框中的灰色箭头表示一对请求响应):
在这里插入图片描述
在这里插入图片描述
  1. 双击上图中的25号包,弹出的窗口即为wthrcdn.etouch.cn网站响应数据的详情,如下图,红框中的Content-encoding: gzip\r\n表示该响应的body启用了gzip压缩:
在这里插入图片描述
在这里插入图片描述
  1. 有些朋友在使用springboot的RestTemplate访问wthrcdn.etouch.cn网站查询天气的时候,发现响应的数据打印出来为乱码,就是因为没有对gzip的内容做处理导致的,在本文中我们通过抓包发现了此问题的根本原因,而解决此问题的方法请参考《springboot应用查询城市天气》一文;
  2. 既然内容是gzip压缩过的,在上图的窗口中就无法看到压缩前的真实内容了,为了看到压缩前的真实内容,请参照下面的步骤;
  3. 关闭弹出窗口,回到wireshark的主窗口,在菜单上选择"文件"->“导出对象”->“HTTP…”,如下图:
在这里插入图片描述
在这里插入图片描述
  1. 如下图,在弹出的窗口选中要查看的包,点击底部的"save"按钮,给要导出的文件起个名字(后缀是.html),再点击"保存"
在这里插入图片描述
在这里插入图片描述
  1. 用浏览器打开前面保存的response.html文件,即可见到整个body解压缩后的内容,如下图:
在这里插入图片描述
在这里插入图片描述

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

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2019年02月07日,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 服务端抓包场景
  • 关于本次实战的weatherservice应用
  • 抓包
相关产品与服务
文件存储
文件存储(Cloud File Storage,CFS)为您提供安全可靠、可扩展的共享文件存储服务。文件存储可与腾讯云服务器、容器服务、批量计算等服务搭配使用,为多个计算节点提供容量和性能可弹性扩展的高性能共享存储。腾讯云文件存储的管理界面简单、易使用,可实现对现有应用的无缝集成;按实际用量付费,为您节约成本,简化 IT 运维工作。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档