MacOS Sequoia无法通过IP访问本地NodeJS服务器,安卓模拟器也无法访问
解决方案
确认服务器监听地址
必须使用0.0.0.0作为监听地址(server.listen(4000, '0.0.0.0', () => {...}),因为127.0.0.1仅绑定本地回环接口,局域网设备无法访问。执行以下命令验证监听状态:netstat -an | grep 4000输出中如果看到
0.0.0.0:4000则说明绑定正确,若只有127.0.0.1:4000,则需修正启动代码。检查Mac防火墙设置
打开「系统设置->网络->防火墙」:- 若防火墙处于开启状态,点击「选项」,确认Node.js进程已被允许接收传入连接;
- 可临时关闭防火墙测试是否能访问,排除防火墙拦截问题。
验证局域网IP与网络环境
- 执行
ipconfig getifaddr en0(无线网卡)或ipconfig getifaddr en1(有线网卡),确认Mac的实际局域网IP是否为192.168.30.30; - 检查路由器是否开启AP隔离功能,该功能会阻止局域网内设备互相访问,需关闭后重试。
- 执行
安卓模拟器访问适配
Android Studio模拟器默认使用NAT网络,与主机局域网隔离:- 若要访问主机的localhost,使用
http://10.0.2.2:4000(这是模拟器映射主机回环地址的专用IP); - 若要使用局域网IP访问,需将模拟器网络模式改为「桥接模式」(部分模拟器需手动设置),确保模拟器与主机处于同一网络段。
- 若要访问主机的localhost,使用
测试端口连通性
- 在Mac本地执行
curl http://192.168.30.30:4000,排除浏览器权限或缓存问题; - 使用同一局域网内的其他设备(如手机)直接访问该IP端口,确认是否能正常连接,缩小问题范围。
- 在Mac本地执行
排查端口占用
执行以下命令查看4000端口是否被其他进程占用:lsof -i :4000若存在其他进程,关闭该进程后重新启动Node服务器。
内容的提问来源于stack exchange,提问作者lostintranslation
相关产品推荐
相关产品推荐

