如何让虚拟机中mitmproxy捕获主机访问DVWA的流量?
解决虚拟机mitmproxy无法捕获主机访问DVWA流量的问题
问题根源
主机直接访问虚拟机IP上的DVWA时,请求是直接通过网络层到达虚拟机的XAMPP服务,并未经过mitmproxy的代理端口,因此无法被捕获。而虚拟机本地访问时,请求走了mitmproxy监听的本地回环地址,所以可以正常捕获。
解决步骤
修改mitmproxy监听地址:默认mitmproxy仅监听127.0.0.1,需改为监听虚拟机所有网卡,启动命令改为:
mitmproxy --listen-host 0.0.0.0确保mitmproxy可以接收来自主机的代理请求。
配置主机端代理:将主机的浏览器或系统代理指向虚拟机的IP地址与mitmproxy默认端口(8080):
- 打开Windows设置 → 网络和Internet → 代理 → 手动设置代理,开启后填写:
- 地址:虚拟机的IP(如192.168.1.100)
- 端口:8080
- Chrome/Firefox等浏览器可直接使用系统代理,或单独配置代理设置。
- 打开Windows设置 → 网络和Internet → 代理 → 手动设置代理,开启后填写:
安装mitmproxy证书到主机:主机需信任mitmproxy的CA证书才能正常通过代理访问HTTPS(若DVWA用HTTP可跳过,但建议安装):
- 主机已设置代理的前提下,访问
http://mitm.it - 下载对应Windows版本的证书文件
- 双击证书,选择“安装证书” → 选择“本地计算机” → 下一步 → 选择“将所有证书放入下列存储” → 浏览选择“受信任的根证书颁发机构” → 完成并确认。
- 主机已设置代理的前提下,访问
开放虚拟机防火墙端口:Windows虚拟机需允许mitmproxy的8080端口入站:
- 打开Windows Defender防火墙 → 高级设置 → 入站规则 → 新建规则
- 规则类型选择“端口” → 下一步 → 选择TCP,指定本地端口8080 → 下一步 → 允许连接 → 完成。
验证捕获效果:主机设置代理后,访问
http://[虚拟机IP]/dvwa,此时所有请求会先经过mitmproxy转发,即可在mitmproxy界面看到捕获的流量。
额外注意事项
- 无论使用VMware的NAT还是桥接模式,只要主机能ping通虚拟机IP,上述配置均可生效。
- 若mitmproxy使用自定义端口,需同步修改主机代理端口与虚拟机防火墙规则。
内容的提问来源于stack exchange,提问作者Ersin Kaya
相关产品推荐
相关产品推荐

