Expo Go无法连接本地开发服务器的问题排查咨询
我之前也踩过一模一样的坑,折腾了好半天才搞明白问题出在哪,给你整理几个实用的排查方向,你按顺序试下来大概率能解决:
切换到隧道模式启动服务器
有时候局域网(LAN)模式会受路由器配置限制,试试用隧道模式绕开本地网络的问题。启动命令改成:npx expo start --tunnel
这个模式会通过Expo的中转服务器建立连接,不用依赖本地WiFi的局域网通信,很多同WiFi连不上的情况用这个就能搞定。手动指定局域网IP启动Metro
有时候Metro会默认绑定到127.0.0.1(只能电脑本地访问),而不是你的局域网IP。先查自己电脑的局域网IP:- Windows:打开命令提示符输入
ipconfig,找“无线局域网适配器 WLAN”下的“IPv4 地址” - Mac/Linux:打开终端输入
ifconfig或ip addr,找WiFi对应的inet地址(比如192.168.x.x)
然后用这个IP启动服务器:npx expo start --host [你的局域网IP]
比如npx expo start --host 192.168.1.105,之后在Expo Go里手动输入exp://[你的局域网IP]:8081试试。
- Windows:打开命令提示符输入
检查路由器的AP隔离功能
有些家用路由器默认开启了「AP隔离」(也叫客户端隔离),意思是同一个WiFi下的设备之间不能互相访问,哪怕连的是同一个网,手机也找不到电脑的服务器。你可以登录路由器的管理后台(一般是192.168.1.1或192.168.0.1),找WiFi设置里的AP隔离选项,把它关掉再试。确认Metro端口未被占用
默认的8081端口很容易被其他程序占用(比如其他Node服务、杀毒软件、甚至某些办公软件)。你可以查端口占用情况:- Windows:
netstat -ano | findstr :8081,找到PID后用任务管理器杀掉对应进程 - Mac/Linux:
lsof -i :8081,用kill -9 [PID]杀掉进程
或者直接换个端口启动Metro:npx expo start --port 8082
- Windows:
核对Expo Go的连接地址
服务器启动后会显示多个地址(localhost、LAN、隧道),你要确保扫的是LAN模式的二维码,或者手动输入的是LAN开头的exp://地址,别选localhost的——localhost只能电脑自己访问,手机是连不上的。暂时关闭IPv6
有些系统默认优先使用IPv6,导致Metro绑定了IPv6地址,但手机或路由器没配置好IPv6,就会连不上。你可以暂时关闭电脑的IPv6(Windows在网络适配器属性里取消勾选IPv6,Mac在网络设置里把IPv6改成「忽略」),重启Metro后再试。检查项目的app.json配置
打开项目根目录的app.json,看看expo字段下有没有hostUri配置,如果有的话,可能指定了错误的地址,把这个配置删掉,或者改成你的局域网IP(比如"hostUri": "192.168.1.105:8081")再重启服务器。
要是某个步骤解决了问题,或者碰到新的报错,随时说细节,我再帮你进一步排查!




