首页 > 解决方案 > 在 WSL2 中运行时无法从浏览器访问 Express 服务器

问题描述

所以,我一直在尝试从 WSL2 内部的 3000 端口启动一个基本的快速服务器。每次我去浏览器时,它都会说“localhost:3000”是无法访问的。我不确定问题出在哪里。我已经能够毫无问题地启动和访问在 WSL2 的端口 3000 上运行的反应应用程序。此外,我已经能够在 WSL2 中从我机器上的其他端口启动 Flask 服务器,而不会出现问题。这个问题似乎与 Express JS 服务器无关,这对我来说没有多大意义。

我已经确认该应用程序已在所有接口上公开,因此应该可以访问 localhost。启动应用程序时,我一直在使用netstat -ltp. 节点进程确实显示在输出中,这表明端口正在侦听。

有没有我错过的奇怪的 WSL2 配置步骤。奇怪的是,其他不使用 Express JS 的应用程序,应用程序似乎在所有端口上都运行得很好。

我也已经可以通过 Windows 防火墙访问所有本地端口,并通过以下命令在 Windows 端访问这些端口:netsh interface portproxy add v4tov4 listenport=3000 listenaddress=0.0.0.0 connectport=3000 connectaddress=127.0.0.x

我也一直在测试它npx express-generator your-project-name --no-view以创建标准的 Express JS 模板。

更新:可以从我的网络上的 IP 地址访问服务器,但无法从 localhost 访问。

标签: node.jsexpresswindows-subsystem-for-linuxwsl-2

解决方案


推荐阅读