当前位置: 首页 > backend >正文

Wireshark快速入门--对启动的后端程序进行抓包

怎么对自己启动的后端程序进行抓包?

1. 安装并启动 Wireshark

你要先从 Wireshark 官网 下载对应系统的安装包,然后进行安装。安装完成后,启动该软件。

可以快速入门可以参考博文:从零开始学 Wireshark:网络分析入门全攻略

2. 选择合适的网络接口

Wireshark 启动后,在界面里会展示出可用的网络接口列表,像以太网、Wi-Fi 之类的。你要依据后端程序实际使用的网络连接来挑选对应的接口。例如,若后端程序是通过 Wi-Fi 联网的,那就选择 Wi-Fi 接口。

3. 设置捕获过滤器

为了仅捕获和后端程序端口 9090 相关的数据包,你得设置捕获过滤器。在捕获选项里找到「过滤」框,输入以下过滤规则:

tcp port 9090

该规则的作用是仅捕获 TCP 协议中端口号为 9090 的数据包。要是你的程序还会使用 UDP 协议,就使用下面的规则:

port 9090

这一规则能捕获 TCP 和 UDP 协议里端口号为 9090 的数据包。

image-20250428163843876

image-20250428163800379

4. 开始捕获数据包

点击 Wireshark 界面上的「开始捕获」按钮(鲨鱼鳍图标),这样 Wireshark 就会开始捕获所选网络接口上符合过滤规则的数据包。

image-20250428163943257

5. 启动后端程序

开启你的后端程序,程序启动之后,Wireshark 会实时捕获其发起的数据包。(下述是我的后端待测的程序,端口是9090)

image-20250428163957095

6. 分析捕获的数据包

在捕获到数据包之后,你可以在 Wireshark 的数据包列表中查看这些数据包的概要信息,例如源地址、目标地址、协议类型、时间戳等。若要查看某个数据包的详细信息,只需在列表中选中该数据包,Wireshark 就会在下方的「数据包详情」窗口展示该数据包的协议层级细节。

image-20250428164518467

7. 停止捕获并保存数据

当你完成数据包的捕获和分析后,点击「停止捕获」按钮(红色方块图标),然后可以选择将捕获的数据保存为 .pcapng 文件,方便后续的分析与查看。

image-20250428164924170

示例代码(Python 调用 subprocess 启动 Wireshark 并设置过滤规则)

若你希望通过 Python 脚本来启动 Wireshark 并设置过滤规则,可参考下面的代码:

import subprocess# 定义 Wireshark 可执行文件路径和过滤规则
wireshark_path = "C:\\Program Files\\Wireshark\\wireshark.exe"  # 根据实际情况修改路径
filter_rule = "tcp port 9090"# 启动 Wireshark 并设置过滤规则
try:subprocess.Popen([wireshark_path, "-f", filter_rule])print("Wireshark 已启动并设置过滤规则。")
except FileNotFoundError:print("未找到 Wireshark 可执行文件,请检查路径。")
except Exception as e:print(f"启动 Wireshark 时出现错误: {e}")

此 Python 脚本会调用 subprocess 模块启动 Wireshark 并设置捕获过滤器。你需要依据实际情况修改 wireshark_path 的值。

image-20250428170107920

运行结果如下:

image-20250428165512584

http://www.xdnf.cn/news/2718.html

相关文章:

  • 杰里芯片 7083G 之通话数据dump
  • Java基础361问第16问——枚举为什么导致空指针?
  • GPU虚拟化实现(五)
  • LeetCode热题100--560.和为K的子数组(前缀和)--中等
  • 自动化测试的三种等待方式
  • 算法笔记.染色法判断二分图
  • mitt 事件发布-订阅库在 react 中的使用
  • 简单理解https与http
  • 邮件分类特征维度实验分析
  • 软件测试全流程与主流测试方法详解:从理论到实战
  • 快乐数(双指针解法)
  • 1.57g 五一优选 = 雨晨 26100.3915 Windows 11 IoT 企业版 LTSC 2025 极速版(轻)
  • Flutter 学习之旅 之 flutter 作为 module ,在 Android 的界面中嵌入Flutter界面功能的简单整理
  • 【JAVAFX】controller中反射调用@FXML的点击事件失败
  • el-table 自定义列、自定义数据
  • 【学习笔记】RL4LLM(三)
  • 【设计模式】GOF概括
  • 拖动banner图,解决点击冲突问题
  • web3.js 和 ethers.js 的核心区别
  • c++11: 类型转换
  • dummy cli-tool ubuntu22.04使用
  • 在 Git 中,撤销(回退)merge 操作有多种方法
  • terraform 动态块(Dynamic Blocks)详解与实践
  • [Python开发] 如何用 VSCode 编写和管理 Python 项目(从 PyCharm 转向)
  • Java面试:Spring及Spring Cloud技术深度剖析
  • docker安装部署TDengine实现主从复制
  • 雷池WAF的身份认证 - GitHub
  • <uniapp><插件><UTS>在uniapp中,创建自己的插件并发布到uni插件市场
  • JavaScript-基础语法
  • 「Mac畅玩AIGC与多模态05」部署篇03 - 在 Mac 上部署本地向量化模型(Embedding Models)