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

Flutter应用物理设备无法连接本地Flask服务器5000端口的解决方法

解决Flutter物理设备访问本地Flask API的端口问题

1. 替换API地址中的localhost为电脑局域网IP

  • 找到Flutter代码里调用API的基础URL,把原地址中的localhost替换成电脑在局域网内的IPv4地址。
  • 查看电脑局域网IP的方法:
    • Windows:打开命令提示符,执行ipconfig,找到对应网络适配器下的IPv4地址。
    • macOS/Linux:打开终端,执行ifconfig或ip addr,找到对应网络接口的inet地址。
  • 示例:若电脑IP为192.168.3.10,则API地址改为http://192.168.3.10:5000/api/xxx。

2. 调整Flask服务器的监听配置

  • 启动Flask时,不能仅绑定localhost,需绑定0.0.0.0以允许局域网设备访问:
    修改Flask启动代码:
    if __name__ == '__main__':
        app.run(host='0.0.0.0', port=5000, debug=True)
    
    或用命令行启动:flask run --host=0.0.0.0 --port=5000

3. 检查电脑防火墙设置

  • 确保Windows/macOS防火墙允许5000端口的TCP连接:
    • Windows:打开「Windows Defender防火墙」→ 高级设置 → 添加入站规则,允许5000端口的TCP请求。
    • macOS:打开「系统设置」→ 网络 → 防火墙 → 选项,添加Flask进程或直接允许5000端口。

4. 确认设备与电脑在同一局域网

  • 物理设备需和电脑连接同一WiFi(避免使用电脑热点,部分热点会隔离设备与主机),可通过ping命令验证连通性:
    在设备终端类APP中ping电脑的局域网IP,或在电脑上ping设备IP,能通则网络无问题。

5. Android设备额外配置

  • 检查AndroidManifest.xml是否添加网络权限:
    <uses-permission android:name="android.permission.INTERNET" />
    
  • Android 9及以上默认禁止明文HTTP请求,开发阶段可在<application>标签中添加:
    android:usesCleartextTraffic="true"
    
    注:正式发布应用请勿使用此配置,需改用HTTPS。

6. 验证端口监听状态

  • 在电脑上检查5000端口是否被Flask占用:
    • Windows:执行netstat -ano | findstr :5000
    • macOS/Linux:执行lsof -i :5000
      确保输出中存在Flask进程的相关信息,说明端口正常监听。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.22 00:20:57