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

Flutter+NodeJS API物理设备运行报错“Connection timed out”求助

解决方案:Flutter物理设备连接NodeJS API超时问题

1. 确认设备与服务器在同一网络

物理设备必须和运行NodeJS API的电脑连接同一个Wi-Fi网络,禁止使用手机流量,同时注意部分路由器存在有线无线隔离机制,避免电脑连有线、设备连无线的情况。

2. 修改NodeJS API的监听地址

默认NodeJS仅监听localhost(127.0.0.1),仅本机可访问,需修改为监听所有网络地址:

// 原监听代码(仅本机可访问)
app.listen(3000, 'localhost', () => { ... });

// 修改为监听所有地址
app.listen(3000, '0.0.0.0', () => {
  console.log('API running on http://0.0.0.0:3000');
});

3. 检查电脑防火墙设置

  • Windows:打开「Windows Defender防火墙」,确认NodeJS程序被允许通过防火墙,或临时关闭防火墙测试(测试后务必重新开启)。
  • macOS:进入「系统设置」→「网络」→「防火墙」,开启NodeJS的网络访问权限。
  • Linux:执行ufw allow 3000(替换为你的API端口)开放端口,或临时关闭防火墙验证。

4. 验证物理设备与电脑的网络连通性

在手机上使用ping工具(如Termux或专用ping应用)测试电脑IPv4地址,例如ping 192.168.1.100。若ping不通,检查路由器的AP隔离设置(部分路由器默认开启,会阻止设备间通信),需关闭该功能。

5. 修正Flutter代码中的API地址

确保Flutter代码使用电脑的真实IPv4地址,而非模拟器专用的10.0.2.2:

// 替换为你的电脑IPv4地址
const baseUrl = 'http://192.168.1.100:3000';

6. 跨网络场景的端口转发设置(可选)

若物理设备与电脑不在同一Wi-Fi,需在路由器后台设置端口转发,将API端口(如3000)映射到电脑的IPv4地址。建议先在同一网络环境下测试通后再尝试跨网络连接。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.19 01:42:02