You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

无法从Windows 11主机访问WSL2中Python http.server(端口7070)

解决WSL2中Python HTTP服务器无法从Windows主机访问的问题

问题重现

在WSL2(Ubuntu)终端执行以下命令启动Python HTTP服务器:

drown@DESKTOP-N9JM9BA:/mnt/c/Windows/system32$ python3 -m http.server 7070
Serving HTTP on 0.0.0.0 port 7070 (http://0.0.0.0:7070/) ...

尝试通过Windows 11主机浏览器访问以下URL均出现连接超时:

  • http://localhost:7070/
  • http://127.0.0.1:7070/
  • http://0.0.0.0:7070/

环境信息

  • 操作系统:Windows 11
  • WSL版本:WSL 2
  • WSL发行版:Ubuntu
  • WSL设置截图:WSL设置截图

已排查项

  • 服务监听0.0.0.0,理论支持外部连接
  • WSL2运行正常,终端无错误输出

解决方案

1. 直接使用WSL2虚拟机IP访问

WSL2拥有独立虚拟网络IP,先在WSL终端执行命令获取IP:

hostname -I

得到IP后,在Windows浏览器访问 http://[WSL_IP]:7070/(替换[WSL_IP]为实际获取的地址)

2. 添加Windows防火墙入站规则

防火墙可能拦截了端口转发,按以下步骤添加规则:

  1. 打开Windows Defender防火墙,进入「高级设置」
  2. 选择「入站规则」→「新建规则」
  3. 规则类型选「端口」,点击下一步
  4. 选择「TCP」,输入本地端口7070,点击下一步
  5. 选择「允许连接」,点击下一步
  6. 勾选所有适用网络类型,点击下一步
  7. 命名规则(如「WSL2 Python HTTP 7070」),完成创建

3. 重置WSL网络

若端口转发异常,重置WSL网络恢复:

  1. 关闭所有WSL终端,在管理员权限的命令提示符执行:
wsl --shutdown
  1. 重新启动WSL,再次尝试访问

4. 手动配置端口代理

如果默认localhost转发失效,手动添加端口代理:
在管理员命令提示符执行(替换[WSL_IP]为WSL虚拟机IP):

netsh interface portproxy add v4tov4 listenport=7070 listenaddress=0.0.0.0 connectport=7070 connectaddress=[WSL_IP]

配置完成后尝试用localhost:7070访问

内容的提问来源于stack exchange,提问作者Drown

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.08 02:13:10