同一WiFi下手机访问笔记本本地Node.js服务报ERR_CONNECTION_REFUSED如何解决
问题核心原因
你当前的Express服务默认仅绑定了本地回环地址127.0.0.1,仅能在笔记本本机访问,同局域网的其他设备无法发起请求。
解决步骤
- 修改服务监听配置
给app.listen添加第二个参数0.0.0.0,让服务监听所有网卡的请求,修改后的代码如下:
const express=require("express") const app=express() app.get("/",(req,res)=>{ res.status(200).send("<h1>hiiii</h1><a href='/home'>hii</a>") }) app.get("/home",(req,res)=>{ res.status(200).send("<h1>yooo</h1>") }) // 增加0.0.0.0参数,监听所有网卡 app.listen(80, '0.0.0.0', ()=>{ console.log("App is running"); })- 修改服务监听配置
- 处理80端口的权限问题
80端口属于系统级特权端口,Windows下需要使用管理员权限启动Node进程才能正常绑定。如果不想申请管理员权限,可将监听端口改为非特权端口(比如3000、8080),同时手机访问时替换为对应端口即可。
启动服务后可在PowerShell执行以下命令确认监听状态:
正常返回结果中应该能看到netstat -ano | findstr :<你的端口号>0.0.0.0:<你的端口号>的监听记录。- 处理80端口的权限问题
- 确认访问地址正确
笔记本上执行ipconfig,找到「无线局域网适配器 WLAN」分类下的IPv4地址,格式一般为192.168.x.x。手机访问时输入完整地址http://<笔记本局域网IP>:<端口>/home,注意不要省略http://前缀,避免浏览器默认走HTTPS协议导致请求失败。
- 确认访问地址正确
- 可选:防火墙入站规则配置
如果你后续需要重新开启Windows Defender防火墙,可添加入站规则:允许TCP协议的对应端口(或Node.js程序)接收外部请求,避免拦截。
- 可选:防火墙入站规则配置
- 其他排查项
确认笔记本和手机都没有开启VPN、代理类软件,也没有安装第三方网络拦截、安全管控类软件,避免请求被额外拦截。
- 其他排查项
内容的提问来源于stack exchange,提问作者Nish animal69
相关产品推荐
相关产品推荐

