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

如何用手机访问同一局域网下的Node.js+Express本地服务器?

同一局域网下手机无法访问电脑上的Node.js/Express服务器

问题现象

电脑上搭建Node.js + Express服务器后,桌面浏览器输入localhost:3000可正常访问,但同局域网的手机输入电脑IP192.168.0.100:3000时,页面空白无内容,无报错提示。

初始服务器代码

var express = require('express');

var app = express();

var server = app.listen(process.env.PORT || 3000, listen);

function listen() {
  var host = server.address().address;
  var port = server.address().port;
  console.log('Example app listening at http://' + host + ':' + port);
}

尝试步骤及更新

更新1:绑定127.0.0.1

修改代码为:

var server = app.listen(3000, "127.0.0.1", listen);

此时127.0.0.1:3000和localhost:3000可正常访问,但192.168.0.100:3000仍显示空白页面,无报错。

更新2:绑定局域网IP

根据ipconfig获取的IP修改代码:

var server = app.listen(3000, "192.168.0.100", listen);

此时localhost:3000无法访问且报错,127.0.0.1:3000正常,尝试用ngrok作为临时方案。

更新3:尝试ngrok隧道

使用ngrok后,本机可通过转发链接访问服务器,但手机/其他电脑点击链接提示连接被拒绝。

解决思路与方案

  • 修正服务器绑定地址
    将服务器绑定到0.0.0.0,确保监听所有可用网卡:

    var server = app.listen(3000, '0.0.0.0', listen);
    

    此配置下服务器可同时响应localhost、127.0.0.1及局域网IP的请求。

  • 排查防火墙与网络连通性

    • 临时关闭电脑防火墙测试,若能访问,再在防火墙设置中添加3000端口的入站规则,允许私有网络访问。
    • 确认电脑与手机连接同一WiFi,且电脑IP未变动,避免输入错误。
    • 在手机或其他电脑上用ping 192.168.0.100测试网络连通性,不通则优先解决网络问题。
  • ngrok问题排查
    确保启动ngrok时指定正确端口(ngrok http 3000),且电脑无代理、VPN干扰,关闭后重试。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.10 10:55:23