如何在WSL2中使用Windows代理(如Burp/ZAP)进行Python请求?
解决WSL中Python Requests连接Windows代理失败的问题
出现Failed to establish a new connection: [Errno 111] Connection refused错误的核心原因是:WSL环境里的127.0.0.1指向的是WSL自身的环回接口,而非Windows主机的环回地址,所以直接用127.0.0.1:8080无法连接到Windows上的代理工具。
以下是具体解决步骤:
1. 获取Windows主机在WSL中的可访问IP
- 方法一(WSL内操作):执行命令
cat /etc/resolv.conf,找到nameserver字段后的IP地址,这个就是Windows主机的IP(WSL默认使用Windows的DNS服务器)。 - 方法二(Windows内操作):打开命令提示符执行
ipconfig,找到以太网适配器 vEthernet (WSL)下的IPv4地址,这也是WSL能访问到Windows的IP。
2. 修改Python代理配置
将原代码中的constants.PROXY = '127.0.0.1:8080'替换为刚才获取到的Windows IP,比如:
constants.PROXY = '192.168.1.100:8080' # 替换为你的Windows实际IP
代理字典配置保持不变:
{"http": constants.PROXY, "https": constants.PROXY}
3. 确保代理工具允许外部连接
Burp Suite设置:
进入Settings -> Proxy -> Proxy Listeners,编辑正在使用的监听器:
- 在
Bind to address选项中,选择All interfaces,或者直接指定Windows主机的IP,不要仅绑定127.0.0.1。
OWASP ZAP设置:
进入Tools -> Options -> Local Proxies:
- 将
Address字段改为0.0.0.0(允许所有接口访问),或者设置为Windows主机的IP。
4. 检查Windows防火墙规则
确保Windows防火墙允许代理工具的8080端口接收来自WSL的连接:
- 打开Windows Defender防火墙,创建入站规则,允许
TCP协议的8080端口,来源选择WSL所在的子网(或直接允许所有)。
内容的提问来源于stack exchange,提问作者Omar2535
相关产品推荐
相关产品推荐

