文章目录
- [mitmproxy:拦截、调试、分析 HTTPS 流量的开源工具](#mitmproxy:拦截、调试、分析 HTTPS 流量的开源工具)
mitmproxy:拦截、调试、分析 HTTPS 流量的开源工具
mitmproxy 是一款开源的交互式代理工具,用于拦截和分析网络流量,在 GitHub 上获得了 4.3 万 Star。

mitmproxy 安装后提供三个命令:
- mitmproxy:终端交互界面,实时查看和操作拦截到的流量
- mitmdump:纯命令行版本,适合写脚本做自动化处理,类似 tcpdump 但专注 HTTP
- mitmweb:Web 界面,在浏览器中查看和过滤请求
它支持 HTTP/1、HTTP/2 和 WebSockets 协议,具备 SSL/TLS 能力,HTTPS 加密流量同样可以拦截分析。项目基于 Python 开发,社区活跃。
拦截原理
mitmproxy 作为一个中间人代理运行在客户端和服务器之间。客户端的请求先经过 mitmproxy,再由它转发给目标服务器,响应同样经过中间人返回。首次使用时需要安装 mitmproxy 的根证书,之后就能解密和查看 HTTPS 通信内容。
典型使用场景
开发调试接口时,用 mitmproxy 能看到客户端发出的完整请求和响应,Header、Body 一目了然。
测试移动端应用时,手机配置代理指向 mitmproxy,App 的所有网络请求实时展示,排查接口问题很方便。
安全审计场景下,可以检查应用是否存在敏感信息明文传输、证书校验不严格等情况。
安装和启动
通过 pip 安装:
nginx
pip install mitmproxy
安装完成后三个命令都可以直接使用。
启动交互式终端代理:
nginx
mitmproxy
终端中实时显示流量列表,方向键导航,回车查看请求详情。
启动 Web 界面:
nginx
mitmweb
默认 8080 端口作为代理,8081 端口提供 Web 界面,浏览器打开 localhost:8081 即可操作。

过滤和脚本扩展
mitmproxy 支持过滤表达式,可以按域名、URL、状态码、Content-Type 等条件筛选流量,快速定位目标请求。比如只看某个域名的请求,或者只看返回 500 错误的响应,一行过滤语句就能实现。
通过 Python 脚本编写自定义拦截逻辑,配合 mitmdump 能实现请求改写、模拟响应、批量录制流量等操作。脚本 hook 覆盖了请求和响应的各个阶段,灵活性很高。
官方文档在 mitmproxy.org,从安装到高级用法都有完整覆盖,入门门槛不高。
和响应的各个阶段,灵活性很高。
官方文档在 mitmproxy.org,从安装到高级用法都有完整覆盖,入门门槛不高。