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

Expo应用经Metro Bundler运行时出现SocketTimeoutException连接超时问题求助

Expo 运行时连接 exp.host 443 端口超时(SocketTimeoutException)解决方案

报错本质说明:该问题触发的核心原因是开发机、运行Expo客户端的移动设备,无法和Expo官方exp.host服务节点建立正常的443端口TCP连接,仅调整expo-cli版本、关闭本地防火墙与杀毒软件,无法解决跨网络访问层面的连通性障碍

可落地排查解决步骤

  • 先校验两端的基础连通性
    • 在运行Expo客户端的移动设备浏览器直接访问 https://exp.host,如果页面加载超时,优先检查移动设备端的VPN、代理、运营商网络拦截规则,可临时断开所有代理,将设备连至和开发机同一局域网下的无特殊限制的热点重试
    • 在开发机终端执行连通性测试命令 curl -v https://exp.host --max-time 10,如果命令返回同样的连接超时,说明当前开发机所在网络对exp.host所属IP段的443端口做了拦截,可临时将开发机切换为手机热点网络,排除原有家庭/办公网络的端口管控规则
  • 切换离线本地运行模式绕开外网依赖
    • 启动Metro Bundler时添加离线参数,跳过对exp.host服务的外网校验流程,执行启动命令 expo start --offline
    • 替换使用版本过旧的Expo Go客户端(低于2.25.0版本),这类旧版本客户端连接时会强制向exp.host发起版本校验请求,网络不通时会直接抛出指定的SocketTimeout报错
    • 可搭配对应SDK版本的Expo Dev Client,直接扫描局域网生成的启动二维码运行,完全规避对exp.host外网节点的访问需求
  • 适配正确的网络代理规则
    如果所在网络必须通过代理才能访问海外服务,不要直接依赖系统全局代理,需要为当前执行expo命令的终端会话单独配置HTTPS代理环境变量,避免Metro的请求走到无效分流节点:
    # 终端配置示例,将代理地址和端口替换为本地实际可用的代理配置
    export HTTP_PROXY=http://127.0.0.1:本地代理端口
    export HTTPS_PROXY=http://127.0.0.1:本地代理端口
    expo start
    
  • hosts兜底修正方案
    当确认网络连通性、代理配置都无问题,但DNS解析拿到的exp.host对应IP(示例中104.197.216.164)不可达时,可手动查询exp.host对应的可连通节点IP,将IP与域名的映射关系分别写入开发机、移动设备的hosts文件,替换默认解析的不可达节点地址

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.28 00:54:00