如何在Ubuntu上连接运行中的mitmproxy wsgi-flask-app
解决mitmproxy访问指定路由的配置步骤
核心概念澄清
- 你使用的
wsgi-flask-app.py是mitmproxy官方示例插件,它会在mitmproxy内部启动一个Flask服务,默认监听127.0.0.1:8000 - 本地
127.0.0.1:2108是独立HTTP服务,由python3 -m http.server 2108启动
场景1:通过mitmproxy代理访问本地2108的HTTP服务
修正upstream命令格式
你之前的upstream命令格式错误,正确的upstream模式语法为mitmproxy --mode upstream://<目标服务地址>:<端口>,执行以下命令:
mitmproxy --mode upstream://127.0.0.1:2108
验证访问
将客户端代理设置为mitmproxy默认端口(8080),访问任意域名(如http://example.com),mitmproxy会自动将请求转发到127.0.0.1:2108的服务。
场景2:访问wsgi-flask-app插件的指定路由
该插件本身在mitmproxy内部运行Flask服务,无需upstream模式,直接加载插件即可:
启动命令
mitmproxy -s wsgi-flask-app.py
直接访问插件路由
插件默认提供/hello路由,可直接访问http://127.0.0.1:8000/hello(此为插件服务端口,非mitmproxy代理端口)。
通过mitmproxy代理访问插件路由
若需通过mitmproxy代理访问,需配合hosts配置:
- 编辑hosts文件:
sudo nano /etc/hosts
- 添加自定义域名映射:
127.0.0.1 flask.local
- 保持mitmproxy加载插件运行,客户端配置代理指向mitmproxy(8080),访问
http://flask.local/hello即可。
常见错误排查
- 区分三个端口:mitmproxy代理端口(默认8080)、插件服务端口(默认8000)、目标服务端口(2108),不要混淆
- upstream模式参数必须是
upstream://<host>:<port>格式,禁止使用带@的HTTP URL - 若连接失败,检查mitmproxy端口是否被占用,或本地防火墙是否放行相关端口
内容的提问来源于stack exchange,提问作者iChux
相关产品推荐
相关产品推荐

