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分析包实战的全部内容,在您开发调试服务端远程调用时,希望此文能给您一些参考;

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

学习路上,你不孤单,欣宸原创一路相伴...
相关文章
|
1月前
|
监控 安全 Linux
在 Linux 系统中,网络管理是重要任务。本文介绍了常用的网络命令及其适用场景
在 Linux 系统中,网络管理是重要任务。本文介绍了常用的网络命令及其适用场景,包括 ping(测试连通性)、traceroute(跟踪路由路径)、netstat(显示网络连接信息)、nmap(网络扫描)、ifconfig 和 ip(网络接口配置)。掌握这些命令有助于高效诊断和解决网络问题,保障网络稳定运行。
81 2
|
2天前
|
Ubuntu Unix Linux
Linux网络文件系统NFS:配置与管理指南
NFS 是 Linux 系统中常用的网络文件系统协议,通过配置和管理 NFS,可以实现跨网络的文件共享。本文详细介绍了 NFS 的安装、配置、管理和常见问题的解决方法,希望对您的工作有所帮助。通过正确配置和优化 NFS,可以显著提高文件共享的效率和安全性。
49 7
|
10天前
|
缓存 负载均衡 监控
HTTP代理服务器在网络安全中的重要性
随着科技和互联网的发展,HTTP代理IP中的代理服务器在企业业务中扮演重要角色。其主要作用包括:保护用户信息、访问控制、缓存内容、负载均衡、日志记录和协议转换,从而在网络管理、性能优化和安全性方面发挥关键作用。
35 2
|
25天前
|
存储 安全 网络安全
网络安全的盾与剑:漏洞防御与加密技术的实战应用
在数字化浪潮中,网络安全成为保护信息资产的重中之重。本文将深入探讨网络安全的两个关键领域——安全漏洞的防御策略和加密技术的应用,通过具体案例分析常见的安全威胁,并提供实用的防护措施。同时,我们将展示如何利用Python编程语言实现简单的加密算法,增强读者的安全意识和技术能力。文章旨在为非专业读者提供一扇了解网络安全复杂世界的窗口,以及为专业人士提供可立即投入使用的技术参考。
|
28天前
|
存储 缓存 监控
Docker容器性能调优的关键技巧,涵盖CPU、内存、网络及磁盘I/O的优化策略,结合实战案例,旨在帮助读者有效提升Docker容器的性能与稳定性。
本文介绍了Docker容器性能调优的关键技巧,涵盖CPU、内存、网络及磁盘I/O的优化策略,结合实战案例,旨在帮助读者有效提升Docker容器的性能与稳定性。
73 7
|
1月前
|
弹性计算 监控 数据库
制造企业ERP系统迁移至阿里云ECS的实例,详细介绍了从需求分析、数据迁移、应用部署、网络配置到性能优化的全过程
本文通过一个制造企业ERP系统迁移至阿里云ECS的实例,详细介绍了从需求分析、数据迁移、应用部署、网络配置到性能优化的全过程,展示了企业级应用上云的实践方法与显著优势,包括弹性计算资源、高可靠性、数据安全及降低维护成本等,为企业数字化转型提供参考。
61 5
W9
|
1月前
|
运维 关系型数据库 MySQL
轻松管理Linux服务器的5个优秀管理面板
Websoft9 应用管理平台,github 2k star 开源软件,既有200+的优秀开源软件商店,一键安装。又有可视化的Linux管理面板,文件、数据库、ssl证书方便快捷管理。
W9
97 1
|
1月前
|
缓存 Ubuntu Linux
Linux环境下测试服务器的DDR5内存性能
通过使用 `memtester`和 `sysbench`等工具,可以有效地测试Linux环境下服务器的DDR5内存性能。这些工具不仅可以评估内存的读写速度,还可以检测内存中的潜在问题,帮助确保系统的稳定性和性能。通过合理配置和使用这些工具,系统管理员可以深入了解服务器内存的性能状况,为系统优化提供数据支持。
39 4
|
1月前
|
NoSQL Linux PHP
如何在不同操作系统上安装 Redis 服务器,包括 Linux 和 Windows 的具体步骤
本文介绍了如何在不同操作系统上安装 Redis 服务器,包括 Linux 和 Windows 的具体步骤。接着,对比了两种常用的 PHP Redis 客户端扩展:PhpRedis 和 Predis,详细说明了它们的安装方法及优缺点。最后,提供了使用 PhpRedis 和 Predis 在 PHP 中连接 Redis 服务器及进行字符串、列表、集合和哈希等数据类型的基本操作示例。
67 4
|
1月前
|
运维 监控 安全
盘点Linux服务器运维管理面板
随着云计算和大数据技术的迅猛发展,Linux服务器在运维管理中扮演着越来越重要的角色。传统的Linux服务器管理方式已经无法满足现代企业的需求,因此,高效、安全、易用的运维管理面板应运而生。