You need to enable JavaScript to run this app.
最新活动
大模型
产品
解决方案
定价
生态与合作
支持与服务
开发者
了解我们

Expo Go无法连接本地开发服务器的问题排查咨询

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:打开终端输入ifconfigip 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试试。
  • 检查路由器的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
  • 核对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")再重启服务器。

要是某个步骤解决了问题,或者碰到新的报错,随时说细节,我再帮你进一步排查!

火山引擎 最新活动