Windows10环境下同一网络无法访问Node.js-Express本地服务器的解决方法
别慌,我来帮你一步步搞定这个Node-Express服务器的访问问题,我之前踩过类似的坑,按下面的步骤排查应该能解决:
第一步:确认Express服务器的监听地址
默认情况下,Express默认只监听localhost(也就是127.0.0.1),这时候只有本机能访问,其他设备根本连不上。你需要把服务器改成监听0.0.0.0,这样才能接受来自同一网络其他设备的请求:
- 打开你的Express启动代码,把原来的
app.listen(3000)改成:
(把3000换成你实际用的端口号)app.listen(3000, '0.0.0.0', () => { console.log('Server running on http://0.0.0.0:3000'); }); - 重启你的Node服务器,确保修改生效。
第二步:验证本地IP和端口的可达性
先确认服务器本身没问题,再排查网络:
- 在Windows10本机打开命令提示符(CMD),输入
ipconfig,找到你的本地IPv4地址(格式一般是192.168.x.x或者10.x.x.x)。 - 本机先测试:用浏览器访问
http://你的IPv4地址:端口号(比如http://192.168.1.105:3000),如果能正常访问,说明服务器监听设置没问题;如果不行,回到第一步检查代码。 - 测试跨设备连通性:在你的iPad上,先尝试ping这个IP地址(可以装个终端类APP,输入
ping 192.168.1.105)。如果ping不通,大概率是路由器开了AP隔离功能——去路由器后台(一般是192.168.1.1或192.168.0.1)找到AP隔离选项并关闭,这样同一网络的设备才能互相通信。
第三步:解决“连接不安全”的提示
这个提示是因为你用的是HTTP协议,浏览器会认为非HTTPS的连接不安全:
- 如果只是本地测试,可以直接忽略:在iPad的Safari里,点击“显示详细信息”,然后选择“访问此网站”就能继续访问了。
- 如果想要彻底消除这个提示,可以给本地服务器配置自签名证书:
- 用OpenSSL生成证书(Windows上可以装Git Bash来运行OpenSSL命令):
openssl req -x509 -newkey rsa:4096 -keyout key.pem -out cert.pem -days 365 -nodes - 修改Express代码,启用HTTPS:
const https = require('https'); const fs = require('fs'); const express = require('express'); const app = express(); const sslOptions = { key: fs.readFileSync('./key.pem'), cert: fs.readFileSync('./cert.pem') }; https.createServer(sslOptions, app).listen(3000, '0.0.0.0', () => { console.log('HTTPS Server running on https://0.0.0.0:3000'); }); - 重启服务器后,用
https://你的IPv4地址:3000访问,第一次需要在iPad的设置里安装并信任这个自签名证书。
- 用OpenSSL生成证书(Windows上可以装Git Bash来运行OpenSSL命令):
第四步:排查其他拦截因素
- 除了Windows防火墙,还要检查你有没有装第三方杀毒软件、安全卫士之类的工具,这些软件也可能会拦截端口连接,暂时关闭它们试试。
- 不需要设置路由器端口转发(那是外网访问用的),但要确保路由器没有限制内部设备之间的通信规则。
内容的提问来源于stack exchange,提问作者YulePale
相关产品推荐
相关产品推荐

