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

WSL2中Node.js服务localhost:5060无法访问问题求助

问题解决步骤

1. 修复Express代码错误

你的server.js存在语法错误,导致Express应用实例未正确初始化:

// 错误写法
const express = require("express")();
const app = express;

// 正确写法二选一:
// 写法一
const express = require("express");
const app = express();

// 写法二(更简洁)
const app = require("express")();

错误原因:require("express")()已经返回Express应用实例,你却将app赋值为Express模块本身,而非该实例。这会导致app.get、app.listen调用不符合预期,服务实际未正常启动。

2. 确保服务监听0.0.0.0

WSL2网络与Windows主机隔离,默认Express仅监听WSL2内部的127.0.0.1,Windows主机无法直接访问。需修改app.listen的监听地址:

// 第三个参数指定监听所有网络接口,允许Windows主机访问
app.listen(process.env.PORT || 5060, '0.0.0.0', () => console.log("server running on port 5060..."));

3. 验证服务监听状态

在WSL2终端执行命令,确认服务是否监听0.0.0.0:5060:

netstat -tulpn | grep 5060

输出包含0.0.0.0:5060则监听正常;若为127.0.0.1:5060,说明仍仅监听WSL2内部。

4. 测试跨网络访问

  • 获取WSL2的IP地址:在WSL2终端执行hostname -I,得到类似172.18.xxx.xxx的地址
  • 在Windows Chrome中访问http://172.18.xxx.xxx:5060,若能打开,说明自动端口转发失效,可重启WSL2修复:
    # 在Windows PowerShell中执行
    wsl --shutdown
    
    重启后重新启动Node服务,再尝试访问localhost:5060。

5. 排除其他干扰项

  • 卸载WSL2中的Apache,避免多余服务干扰网络栈
  • 检查Windows端是否有其他应用占用5060端口:在PowerShell执行netstat -ano | findstr :5060,若有结果,通过任务管理器根据PID结束对应进程

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.11 03:43:21