mitmproxy:一个拦截代理,三种用法
mitmproxy:一个拦截代理,三种用法
mitmproxy 在 GitHub 上已经拿到 43,525 Star 了。
这个项目提供了一套 HTTP 拦截代理工具,支持 SSL/TLS 解密,覆盖 HTTP/1、HTTP/2 和 WebSocket。它自带三种交互方式:命令行界面、纯命令行工具、Web 界面,分别对应不同的使用场景。

1、这玩意儿是干嘛的
核心功能就一个:拦截和分析 HTTP 流量。
在客户端和服务器之间搭一个中间人,所有请求和响应都经过它,你可以实时查看、修改、重放。因为支持 SSL/TLS,所以 HTTPS 流量也能解密查看。

2、三种工具,三种用法
mitmproxy 不是单一工具,而是三个:
mitmproxy:带交互式控制台界面的拦截代理。启动后进入一个 TUI 界面,用键盘导航查看请求列表、详情、流量统计。适合在现场调试时快速翻查。
mitmdump:纯命令行版本,类似 tcpdump 的 HTTP 版。没有交互界面,直接输出流量到终端或文件,适合脚本化、自动化场景,比如 CI 流水线里抓包验证。
mitmweb:Web 版界面。在浏览器里打开就能用,有图形化的请求列表和详情页,适合不习惯命令行的人,或者需要截图分享调试结果的时候。
三种工具共用同一套核心,抓包逻辑完全一致,只是交互层不同。你习惯哪种就用哪种,随时切换。
3、能干什么
API 调试:前后端联调时,看请求参数、响应体、状态码,不用在代码里打日志。请求发出去没反应,第一反应不再是怀疑代码,而是打开 mitmproxy 看看到底发生了什么。
HTTPS 解密:安装根证书后,可以查看加密流量的明文内容。测试自己的服务时很有用,但别用在别人的网站上。
请求重放:把某个请求保存下来,修改参数后重新发送,快速验证接口行为。不用写脚本,不用开 Postman,在界面里按几个键就能完成。
流量录制:用 mitmdump 把一段时间内的所有流量存成文件,事后离线分析。排查偶现的 Bug 时,先把流量录下来,再慢慢翻。
自动化测试:在测试脚本里嵌入 mitmdump,验证应用发出的请求是否符合预期。比如确认某个按钮点击后确实调了正确的接口,参数也没错。
4、安装
Python 用户直接 pip:
pip install mitmproxy
装完后三个命令都可以用:mitmproxy、mitmdump、mitmweb。
也可以去官网下载预编译的二进制文件,Windows、macOS、Linux 都有。
5、适合哪些人用
- 做 Web 开发、需要调试 HTTP/HTTPS 请求的开发者
- 做 API 测试、需要抓包验证接口行为的测试工程师
- 做安全分析、需要审计网络流量的人
- 做自动化测试、需要在 CI 里集成流量抓取的团队
项目文档在 mitmproxy.org,有完整的教程和命令参考。

浙公网安备 33010602011771号