Windows11下WSL+Podman运行ZAP扫描本地站点失败求助
解决ZAP容器无法访问Windows本地Juice Shop的问题
问题原因
Podman Machine在Windows上基于WSL2虚拟机运行,容器内的localhost指向的是WSL虚拟机本身,而非Windows主机。因此容器无法访问Windows主机上仅绑定localhost的Juice Shop服务。
修复步骤
1. 获取Windows主机的局域网IP
打开Windows命令提示符(CMD),执行:
ipconfig
找到当前网络适配器(如以太网、Wi-Fi)的IPv4地址,例如192.168.1.100。
2. 修改Juice Shop的绑定地址
默认Juice Shop仅绑定localhost,需改为绑定所有网络接口,让WSL/Podman能访问:
npm start -- --host 0.0.0.0
此时Juice Shop会运行在http://[你的WindowsIPv4]:3000,可以先在浏览器访问确认服务正常。
3. 调整ZAP扫描命令
将原命令中的http://localhost:3000替换为Windows主机的局域网IP地址:
podman run --rm --network=host -v ${PWD}\zap-reports:/zap/wrk:Z ghcr.io/zaproxy/zaproxy:stable zap-full-scan.py -t http://192.168.1.100:3000 -J /zap/wrk/zap_report.json
(注意替换192.168.1.100为你实际的IPv4地址)
4. 验证防火墙设置
确保Windows防火墙允许3000端口的入站连接,或者临时关闭防火墙测试(扫描完成后建议重新开启)。
替代方案:使用WSL内的Juice Shop
如果不想修改Windows端的绑定地址,也可以在WSL环境内安装Node.js并启动Juice Shop,此时容器和Juice Shop同属WSL网络,直接用localhost:3000即可正常扫描。
内容的提问来源于stack exchange,提问作者Europa
相关产品推荐
相关产品推荐

