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

简介: 本文实战了CentOS7下的网络抓包,以及windows下通过wireshark分析抓包数据

欢迎访问我的GitHub

这里分类和汇总了欣宸的全部原创(含配套源码): https://github.com/zq2599/blog_demos

服务端抓包场景

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

在这里插入图片描述

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

关于本次实战的weatherservice应用

抓包

  • ssh登录weatherservice应用所在的服务器,我这里是CentOS7;
  • 执行以下命令,安装抓包工具tcpdump:
yum install -y tcpdump
  • 执行命令ip addr查看网卡名,如下所示,我这里是ens33:
[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
  • 执行以下命令即可开始抓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,如下图:

在这里插入图片描述

  • 网卡ens33上的所有网络包都被抓到了,但很多都不是我们关心的,需要过滤,这里的过滤很简单:只保留http请求响应级即可,如下图,在红框位置输入"http"然后回车:

    在这里插入图片描述

  • 如下图红框所示,编号为21的包就是weatherservice向wthrcdn.etouch.cn的请求,编号25的包则是wthrcdn.etouch.cn的响应(红框中的灰色箭头表示一对请求响应):

在这里插入图片描述

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

在这里插入图片描述

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

在这里插入图片描述

  • 如下图,在弹出的窗口选中要查看的包,点击底部的"save"按钮,给要导出的文件起个名字(后缀是.html),再点击"保存"

在这里插入图片描述

  • 用浏览器打开前面保存的response.html文件,即可见到整个body解压缩后的内容,如下图:

在这里插入图片描述

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

欢迎关注阿里云开发者社区博客:程序员欣宸

学习路上,你不孤单,欣宸原创一路相伴...
相关文章
|
8月前
|
人工智能 JavaScript API
零基础构建MCP服务器:TypeScript/Python双语言实战指南
作为一名深耕技术领域多年的博主摘星,我深刻感受到了MCP(Model Context Protocol)协议在AI生态系统中的革命性意义。MCP作为Anthropic推出的开放标准,正在重新定义AI应用与外部系统的交互方式,它不仅解决了传统API集成的复杂性问题,更为开发者提供了一个统一、安全、高效的连接框架。在过去几个月的实践中,我发现许多开发者对MCP的概念理解透彻,但在实际动手构建MCP服务器时却遇到了各种技术壁垒。从环境配置的细节问题到SDK API的深度理解,从第一个Hello World程序的调试到生产环境的部署优化,每一个环节都可能成为初学者的绊脚石。因此,我决定撰写这篇全面的实
1815 67
零基础构建MCP服务器:TypeScript/Python双语言实战指南
|
5月前
|
机器学习/深度学习 PyTorch TensorFlow
卷积神经网络深度解析:从基础原理到实战应用的完整指南
蒋星熠Jaxonic,深度学习探索者。深耕TensorFlow与PyTorch,分享框架对比、性能优化与实战经验,助力技术进阶。
|
5月前
|
监控 Linux 测试技术
C++零拷贝网络编程实战:从理论到生产环境的性能优化之路
🌟 蒋星熠Jaxonic,技术宇宙中的星际旅人。深耕C++与零拷贝网络编程,从sendfile到DPDK,实战优化服务器性能,毫秒级响应、CPU降60%。分享架构思维,共探代码星辰大海!
|
7月前
|
存储 弹性计算 网络协议
阿里云服务器ECS实例规格族是什么?不同规格CPU型号、处理器主频及网络性能参数均不同
阿里云ECS实例规格族是指具有不同性能特点和适用场景的实例类型集合。不同规格族如计算型c9i、通用算力型u1、经济型e等,在CPU型号、主频、网络性能、云盘IOPS等方面存在差异。即使CPU和内存配置相同,性能参数和价格也各不相同,适用于不同业务需求。
513 144
|
5月前
|
数据采集 监控 网络安全
VMware Cloud Foundation Operations for Networks 9.0.1.0 发布 - 云网络监控与分析
VMware Cloud Foundation Operations for Networks 9.0.1.0 发布 - 云网络监控与分析
430 3
VMware Cloud Foundation Operations for Networks 9.0.1.0 发布 - 云网络监控与分析
|
5月前
|
机器学习/深度学习 大数据 关系型数据库
基于python大数据的青少年网络使用情况分析及预测系统
本研究基于Python大数据技术,构建青少年网络行为分析系统,旨在破解现有防沉迷模式下用户画像模糊、预警滞后等难题。通过整合多平台亿级数据,运用机器学习实现精准行为预测与实时干预,推动数字治理向“数据驱动”转型,为家庭、学校及政府提供科学决策支持,助力青少年健康上网。
|
5月前
|
弹性计算 人工智能 前端开发
在阿里云ECS上部署n8n自动化工作流:U2实例实战
本文介绍如何在阿里云ECS的u2i/u2a实例上部署开源工作流自动化平台n8n,利用Docker快速搭建并配置定时任务,实现如每日抓取MuleRun新AI Agent并推送通知等自动化流程。内容涵盖环境准备、安全组设置、实战案例与优化建议,助力高效构建低维护成本的自动化系统。
1223 5
|
5月前
|
机器学习/深度学习 数据采集 人工智能
深度学习实战指南:从神经网络基础到模型优化的完整攻略
🌟 蒋星熠Jaxonic,AI探索者。深耕深度学习,从神经网络到Transformer,用代码践行智能革命。分享实战经验,助你构建CV、NLP模型,共赴二进制星辰大海。
|
6月前
|
机器学习/深度学习 人工智能 算法
卷积神经网络深度解析:从基础原理到实战应用的完整指南
蒋星熠Jaxonic带你深入卷积神经网络(CNN)核心技术,从生物启发到数学原理,详解ResNet、注意力机制与模型优化,探索视觉智能的演进之路。
560 11
|
6月前
|
安全 Linux 网络安全
Nipper 3.9.0 for Windows & Linux - 网络设备漏洞评估
Nipper 3.9.0 for Windows & Linux - 网络设备漏洞评估
172 0
Nipper 3.9.0 for Windows & Linux - 网络设备漏洞评估