无法从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设置截图:

已排查项
- 服务监听
0.0.0.0,理论支持外部连接 - WSL2运行正常,终端无错误输出
解决方案
1. 直接使用WSL2虚拟机IP访问
WSL2拥有独立虚拟网络IP,先在WSL终端执行命令获取IP:
hostname -I
得到IP后,在Windows浏览器访问 http://[WSL_IP]:7070/(替换[WSL_IP]为实际获取的地址)
2. 添加Windows防火墙入站规则
防火墙可能拦截了端口转发,按以下步骤添加规则:
- 打开Windows Defender防火墙,进入「高级设置」
- 选择「入站规则」→「新建规则」
- 规则类型选「端口」,点击下一步
- 选择「TCP」,输入本地端口
7070,点击下一步 - 选择「允许连接」,点击下一步
- 勾选所有适用网络类型,点击下一步
- 命名规则(如「WSL2 Python HTTP 7070」),完成创建
3. 重置WSL网络
若端口转发异常,重置WSL网络恢复:
- 关闭所有WSL终端,在管理员权限的命令提示符执行:
wsl --shutdown
- 重新启动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
相关产品推荐
相关产品推荐

