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

mitmproxy:抓包调试这件事,它做到了极致

文章目录

  • mitmproxy:抓包调试这件事,它做到了极致
    • 它到底能干什么
    • 实际使用场景
    • 技术上有什么亮点
    • 和 Charles、Fiddler 比怎么样
    • 怎么装

mitmproxy:抓包调试这件事,它做到了极致

做 Web 开发的都知道,抓包调试是基本功。浏览器自带的 DevTools 能看请求,但遇到 HTTPS、代理、WebSocket 这些场景,就有点力不从心了。mitmproxy 这个项目专门解决这类问题,GitHub 上 Star 已经到了 4.4 万,算是抓包工具里的老牌选手了。

它到底能干什么

简单说,mitmproxy 是一个支持 SSL/TLS 的交互式代理服务器。所有经过它的 HTTP/HTTPS 流量,你都能看到、能改、能重放。

它不是一个工具,而是三个:

mitmproxy是带终端界面的版本,打开就是一个 TUI 应用,实时显示所有经过代理的请求和响应。你可以用键盘快捷键翻看详情,也能直接在终端里拦截和修改请求。

mitmdump是命令行版本,类似 tcpdump 但专门针对 HTTP。适合写脚本做自动化处理,比如批量抓取接口数据、自动修改请求参数、记录所有 API 调用。

mitmweb提供了一个 Web 界面,浏览器打开就能用。对不习惯终端操作的人来说更友好。

三个工具共享同一个内核,功能完全一致,只是交互方式不同。你完全可以白天用 mitmweb 看流量,晚上写脚本用 mitmdump 跑自动化。

实际使用场景

我身边用 mitmproxy 最多的是这几类人:

前端开发调试:本地起个代理,把线上接口的响应改掉,测试各种边界情况。不用改后端代码,也不用搭 mock server。

移动端抓包:手机配置代理指向电脑,所有 App 的网络请求都能看到。调试 App 接口、排查网络问题很方便。

安全测试:拦截 HTTPS 流量,修改请求内容,测试服务端的校验逻辑。安全研究人员基本人手一个。

API 文档生成:用 mitmdump 录制一遍接口调用,自动生成请求和响应的记录,省得手动写文档。

技术上有什么亮点

mitmproxy 是 Python 写的,但它不是那种慢吞吞的 Python 工具。它基于 asyncio 做异步 IO,处理并发连接的性能不错。支持 HTTP/1、HTTP/2 和 WebSocket,覆盖了目前主流的协议。

它的扩展机制做得挺好。你可以用 Python 写插件,挂载到请求和响应的各个阶段。官方提供了一些现成的插件,比如自动给请求加 header、把响应保存到文件、根据条件过滤流量等。

证书管理是个麻烦事,但 mitmproxy 处理得比较省心。第一次启动会自动生成 CA 证书,你只需要在设备上信任这个证书就行。文档里有各平台的详细配置步骤。

和 Charles、Fiddler 比怎么样

Charles 和 Fiddler 是 GUI 工具,上手快,但不够灵活。mitmproxy 的优势在于可编程,你可以用代码控制代理行为,这对自动化测试和批量处理来说是刚需。

另外 mitmproxy 完全开源,MIT 协议。Charles 要收费,Fiddler 的免费版功能有限。如果你是个人开发者或者小团队,mitmproxy 是更实际的选择。

当然也有不足。终端界面对新手不太友好,上手需要一点学习成本。Web 界面 mitmweb 好一些,但功能没有 Charles 那么直观。如果你只是偶尔抓个包看看,浏览器 DevTools 够用的话,没必要折腾 mitmproxy。

怎么装

Python 环境下直接 pip 安装:

pip install mitmproxy

装完运行mitmproxy就能启动。macOS 和 Linux 都能直接用,Windows 上建议用 WSL。

非 Python 用户也可以下载官方的预编译二进制包,不用装 Python 环境。

如果你经常做 Web 开发或者安全测试,值得花半天时间把它配置好。一旦用熟了,调试效率会提升不少。

Python 环境。

如果你经常做 Web 开发或者安全测试,值得花半天时间把它配置好。一旦用熟了,调试效率会提升不少。

http://www.jsqmd.com/news/1126160/

相关文章:

  • 3步快速部署Google Cloud Vision API示例项目
  • 分类模型评估指标实战:Python 3.11 与 Scikit-learn 1.4 下的 6 大指标对比与陷阱分析
  • 一键解锁120帧!WaveTools鸣潮工具箱终极完整指南
  • PhishMailer钓鱼邮件模拟工具:从原理到实战的企业安全测试指南
  • Audacity:终极免费音频编辑软件完全指南
  • 终极岛屿设计师指南:三步创建你的梦想动物森友会岛屿
  • 国内量化平台对比怎么做:普通用户先看流程能否复盘
  • AI蒸馏攻防-大模型文本水印
  • GIMP BIMP插件:告别重复劳动,实现图像批量处理的工业级解决方案
  • 三步终极指南:如何永久免费使用Cursor AI Pro功能,绕过试用限制
  • 深度解析novel-downloader:如何实现200+小说网站智能抓取与三层OCR解码技术架构
  • oac最佳实践:7个技巧提升你的MPI项目构建效率和可移植性
  • SSRF漏洞深度解析:从原理到实战的Web安全攻防指南
  • 引发事件的问题
  • WhatWeb:1800 多个插件,扫一眼就知道网站用了什么技术
  • Windows AirPlay 2投屏终极实战:3步构建跨平台屏幕镜像系统
  • ForgeGradle 7:Minecraft模组构建的现代化演进与架构解析
  • 家庭档案数字化:OCR技术应用与实战技巧
  • 国家中小学智慧教育平台电子课本下载工具:三步解锁海量教育资源宝库
  • 国内量化软件推荐怎么选:先拆研究回测和盯盘边界
  • 2026年常州二手车选购全攻略:热门车型盘点与避坑技巧解析
  • AntiDupl终极指南:三步快速清理电脑重复照片,释放宝贵磁盘空间
  • SmartTable v1.5.2 发布 —— 合并单元格、全局搜索与行列冻结
  • 国家中小学智慧教育平台电子课本下载完整教程:快速获取PDF教材资源
  • AI+Playwright:零编码实现Web自动化测试的完整实践指南
  • 2026年专升本论文降AI攻略:专升本毕业论文AIGC超标4.8元达标完整方案
  • DTLN 模型 TensorFlow 2.x 实战:32ms 帧长优化,PESQ 提升至 3.11(附 TFLite 量化)
  • 5分钟掌握:国家中小学智慧教育平台电子课本下载的终极解决方案
  • 2G显存跑通LLM全流程:大模型白盒子构建指南
  • 3步快速清理重复图片:AntiDupl智能去重工具使用指南