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

Android Emulator访问宿主机已转发端口失败的配置咨询

核心原因

你当前使用的vagrant ssh -- -L 3000:localhost:3000本地端口转发规则,默认只绑定宿主机的回环地址127.0.0.1,仅响应宿主机本机发起的访问请求。Android模拟器通过10.0.2.2访问宿主机端口时,流量来自模拟器专属虚拟网段,不属于宿主机本地回环流量,会被转发规则直接丢弃,所以无法连通。

具体配置方案

方案一:调整SSH转发绑定地址(最直接)

  • 先终止当前运行的vagrant SSH转发会话
  • 重新执行端口转发命令,增加0.0.0.0绑定参数,让转发端口监听宿主机所有网卡地址,允许来自虚拟网段的请求接入:
vagrant ssh -- -L 0.0.0.0:3000:localhost:3000
  • 检查宿主机防火墙设置,放通TCP 3000端口的入站请求,避免系统防火墙拦截模拟器发来的流量:
    • Windows:在高级安全防火墙中添加入站规则,允许TCP 3000端口访问
    • Linux:若启用了ufw/firewalld,对应放通3000/tcp端口即可
    • macOS:在系统设置的网络防火墙中,确认没有拦截SSH进程、Node服务的入站连接
  • 配置完成后,模拟器内直接访问http://10.0.2.2:3000即可正常连通服务,不需要额外修改模拟器网络配置。

方案二:使用adb反向代理(更安全,无需暴露端口到全网卡)

如果不想把转发端口暴露给宿主机所有网卡,可以直接用Android调试桥做反向代理,不需要修改原有SSH转发规则:

  • 保持原有vagrant ssh -- -L 3000:localhost:3000命令正常运行,宿主机可以正常访问localhost:3000的状态下,在宿主机终端执行adb命令:
adb reverse tcp:3000 tcp:3000
  • 执行完成后,模拟器内直接访问http://localhost:3000就能连通Vagrant里的Node服务,这种方式流量仅在adb通道内传输,不需要调整防火墙规则,也不会把端口暴露给外部网络。

注意:如果执行adb命令提示找不到设备,先确认模拟器已经正常启动,且adb devices列表里能看到对应模拟器实例。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.27 02:18:03