mitmproxy是一款功能强大且免费开源的基于命令行操作的网络抓包工具,广泛应用于移动端APP调试、接口测试、逆向工程及安全漏洞挖掘。它的核心原理是通过在本地建立透明代理,拦截并解密客户端与服务端之间的流量,使用户能够以明文形式实时查看、修改甚至重放HTTP/HTTPS请求与响应,包括 Header、Cookie 及 Body 数据。
这款软件集成了三种交互模式:面向终端、支持快捷键操作的交互式界面,专为 Web 可视化设计的 mitmweb,以及支持 Python 脚本扩展、适用于自动化流程的命令行工具 mitmdump。凭借其卓越的可编程性,开发者可以利用 Python 编写复杂的逻辑来实时篡改数据包或进行流量统计。作为一款跨平台的利器,它不仅在PC端表现优异,也是调试Android 或iOS 应用网络行为的必备工具,其高效、灵活且轻量级的特性,有需要的用户可以在本站免费下载使用。
功能特色
【全方位的流量拦截与分析】
能够实时捕获 HTTP、HTTPS、HTTP/2 以及 WebSocket 流量。通过其强大的解密能力,用户可以深入观察请求与响应的所有细节,包括 Header、Cookie、查询参数以及 Payload。
【深度的交互式篡改与重放】
用户可以在请求发送给服务器之前,或响应返回给客户端之前手动拦截并修改数据。同时支持“重放”功能,无需重新操作客户端即可多次触发同一网络请求,极大地方便了接口调试。
【强大的脚本自动化扩展】
这是其区别于同类工具的最大亮点。它提供了一套完整的 Python API,允许开发者编写自定义脚本来处理流量。无论是自动篡改特定字段、记录统计数据,还是模拟复杂的服务器行为,都可以通过 Python 插件轻松实现。
【灵活的多模式交互方案】
提供了三种不同的使用体验。终端界面适合键盘流高效操作;基于浏览器的 UI 界面适合习惯图形化操作的用户;则专门用于命令行流水线和后台自动化任务。
【多协议与透明代理支持】
除了基础的正向代理,它还支持透明代理、反向代理以及上游代理模式。这使得它能够轻松接入各种复杂的网络环境,甚至在无法手动配置代理的设备上进行流量抓取。
【开源与跨平台兼容性】
作为一款成熟的开源工具,它在 Windows、macOS 和 Linux 上均能完美运行,且安装配置流程简洁,配合自签名的 CA 证书即可快速搭建起安全的调试环境。
使用简介
1、启动软件
推荐使用 mitmweb 模式,它会启动一个网页界面,操作最直观:
启动: 打开CMD或PowerShell,输入mitmweb并回车。
访问: 程序会自动打开浏览器跳转至http://127.0.0.1:8081(这是管理界面)。
代理端口: 软件默认监听 8081 端口进行 Web 展示,监听 8080 端口接收流量。
2、配置代理(关键步骤)
要让流量经过程序,必须设置客户端的代理服务器:
本机浏览器: 将系统代理或浏览器代理插件设置为 127.0.0.1:8080。
移动端 (Android/iOS): 确保手机与电脑在同一 Wi-Fi 下,在手机 Wi-Fi 设置中手动配置代理,IP 为电脑的局域网 IP,端口为 8080。
3、安装 CA 证书(解密 HTTPS)
如果不安装证书,所有的 HTTPS 流量都会显示为“加密连接错误”:
在配置好代理的设备上,访问网页:mitm.it。
根据你的操作系统(Windows, Android, iOS)下载对应的证书。
安装并信任: Windows需放入“受信任的根证书颁发机构”。
Android 需在安全设置中安装(部分高版本系统需 Root 权限移动证书至系统区)。
iOS 需在“设置 -> 通用 -> 关于本机 -> 证书信任设置”中手动开启。
4、核心操作
在mitmweb的网页界面中,你可以执行以下操作:
查看流量: 左侧列表显示所有请求,点击可查看具体的 Request(请求)和 Response(响应)详情。
过滤: 在顶部的 Filter 框输入关键词(如 google),只看特定域名的请求。
断点调试: * 在 Intercept 框输入过滤规则。
当符合条件的请求发出时会“暂停”,你可以手动修改数据包的内容,然后点击 Resume 继续发送。
重放: 选中一个请求,点击 Replay 按钮(通常是一个循环箭头图标),可以不通过操作手机直接重新发起该请求。



